|
@@ -6,40 +6,27 @@ leaHdr * getHeader(const char * ptr) {
|
|
|
}
|
|
|
|
|
|
|
|
|
-unsigned int getSize (const char * ptr) {
|
|
|
+size_t getSize (void *ptr) {
|
|
|
return (getHeader(ptr)->size >> 1);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-unsigned int getPrevSize (const char * ptr) {
|
|
|
- unsigned int sz = getHeader(ptr)->prevSize;
|
|
|
+size_t getPrevSize (void *ptr) {
|
|
|
+ size_t sz = getHeader(ptr)->prevSize;
|
|
|
return sz >> 1;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-void setSize (char * ptr, const unsigned int sz) {
|
|
|
- unsigned int size = getSize(ptr);
|
|
|
+void setSize(void *ptr, size_t sz) {
|
|
|
+ size_t size = getSize(ptr);
|
|
|
size = ((size & 1) | (sz << 1));
|
|
|
getHeader(ptr)->size = size;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-void setPrevSize (char * ptr, const unsigned int sz) {
|
|
|
- unsigned int prevSize = getHeader(ptr)->prevSize;
|
|
|
+void setPrevSize (void *ptr, size_t sz) {
|
|
|
+ size_t prevSize = getHeader(ptr)->prevSize;
|
|
|
prevSize = (prevSize & 1) | (sz << 1);
|
|
|
getHeader(ptr)->prevSize = prevSize;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-//returns a pointer (that points) to the next block
|
|
|
-char * getNext (const char * ptr) {
|
|
|
- return (char *)(ptr + HDR_SIZE + getSize(ptr));
|
|
|
-}
|
|
|
-
|
|
|
-char * getPrev (const char * ptr) {
|
|
|
- return (char *)(ptr - HDR_SIZE - getPrevSize(ptr));
|
|
|
-}
|
|
|
-
|
|
|
void markPrevFree (char * ptr) {
|
|
|
getHeader(ptr)->prevSize &= (~ 1);
|
|
|
}
|