Skip to content

Commit

Permalink
Refactored a bit.
Browse files Browse the repository at this point in the history
  • Loading branch information
emeryberger committed Jan 12, 2020
1 parent 708b5f0 commit 7c841c8
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions heaps/objectrep/sizeheap.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ namespace HL {
// char _buf[HL::MallocInfo::Alignment];
};

enum { MAGIC_NUMBER = 0xCAFEBABE };

public:

enum { Alignment = gcd<(int) SuperHeap::Alignment,
Expand All @@ -65,25 +67,31 @@ namespace HL {
inline void * malloc (size_t sz) {
freeObject * p = (freeObject *) SuperHeap::malloc (sz + sizeof(freeObject));
p->_sz = sz;
p->_magic = 0xcafebabe;
p->_magic = MAGIC_NUMBER;
return (void *) (p + 1);
}

inline void free (void * ptr) {
assert (getHeader(ptr)->_magic == 0xcafebabe);
SuperHeap::free (getHeader(ptr));
if (getHeader(ptr)->_magic == MAGIC_NUMBER) {
// Probably one of our objects.
SuperHeap::free (getHeader(ptr));
}
}

inline static size_t getSize (const void * ptr) {
assert (getHeader(ptr)->_magic == 0xcafebabe);
size_t size = getHeader(ptr)->_sz;
return size;
if (getHeader(ptr)->_magic == MAGIC_NUMBER) {
size_t size = getHeader(ptr)->_sz;
return size;
} else {
// Probably not one of our objects.
return 0;
}
}

private:

inline static void setSize (void * ptr, size_t sz) {
assert (getHeader(ptr)->_magic == 0xcafebabe);
assert (getHeader(ptr)->_magic == MAGIC_NUMBER);
getHeader(ptr)->_sz = sz;
}

Expand Down

0 comments on commit 7c841c8

Please sign in to comment.