Changeset 29ad0ac for src/examples/gc_no_raii/src/internal/gc_tools.h
- Timestamp:
- Apr 15, 2016, 3:04:25 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 356bb95
- Parents:
- 0f9e4403
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/examples/gc_no_raii/src/internal/gc_tools.h
r0f9e4403 r29ad0ac 12 12 } 13 13 14 inline void* gc_get_aligned_ptr(void* address)15 {16 return (void*)(((intptr_t)address) & (OBJECT_PTR_MASK));17 }18 19 inline void* gc_write_aligned_ptr(void** reference, void* address)20 {21 size_t ref_last_bits = ((intptr_t)*reference) & (~OBJECT_PTR_MASK);22 23 size_t new_val = ((intptr_t)address) & OBJECT_PTR_MASK;24 25 (*reference) = (void*)(new_val | ref_last_bits);26 27 return *reference;28 }29 30 inline size_t gc_compute_size(size_t size)31 {32 size_t word_size = ((size - 1) / OBJECT_ALLIGNMENT) + 1;33 size_t ret = word_size * OBJECT_ALLIGNMENT;34 35 check(ret >= size);36 check((ret % OBJECT_ALLIGNMENT) == 0);37 check( ((size % OBJECT_ALLIGNMENT) != 0) || (ret == size) );38 39 return ret;40 }14 // inline void* gc_get_aligned_ptr(void* address) 15 // { 16 // return (void*)(((intptr_t)address) & (OBJECT_PTR_MASK)); 17 // } 18 // 19 // inline void* gc_write_aligned_ptr(void** reference, void* address) 20 // { 21 // size_t ref_last_bits = ((intptr_t)*reference) & (~OBJECT_PTR_MASK); 22 // 23 // size_t new_val = ((intptr_t)address) & OBJECT_PTR_MASK; 24 // 25 // (*reference) = (void*)(new_val | ref_last_bits); 26 // 27 // return *reference; 28 // } 29 // 30 // inline size_t gc_compute_size(size_t size) 31 // { 32 // size_t word_size = ((size - 1) / OBJECT_ALLIGNMENT) + 1; 33 // size_t ret = word_size * OBJECT_ALLIGNMENT; 34 // 35 // check(ret >= size); 36 // check((ret % OBJECT_ALLIGNMENT) == 0); 37 // check( ((size % OBJECT_ALLIGNMENT) != 0) || (ret == size) ); 38 // 39 // return ret; 40 // }
Note: See TracChangeset
for help on using the changeset viewer.