mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
Merge continued
git-svn-id: svn://ultimatepp.org/upp/trunk@10263 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
adf46bd64e
commit
2e4b276e07
3860 changed files with 1161787 additions and 438 deletions
50
uppdev/Malloc.bak/Malloc7.h
Normal file
50
uppdev/Malloc.bak/Malloc7.h
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
#define V7
|
||||
|
||||
struct MSmall {
|
||||
enum { CACHE = 64 };
|
||||
|
||||
struct FreeLink {
|
||||
FreeLink *next;
|
||||
};
|
||||
|
||||
struct Page {
|
||||
Page *next;
|
||||
Page *prev;
|
||||
byte klass;
|
||||
byte active;
|
||||
MSmall *heap;
|
||||
FreeLink *freelist;
|
||||
|
||||
void LinkSelf() { prev = next = this; }
|
||||
void Unlink() { prev->next = next; next->prev = prev; }
|
||||
void Link(Page *lnk) { prev = lnk; next = lnk->next; next->prev = this; lnk->next = this; }
|
||||
|
||||
void Format(int k);
|
||||
byte *Begin() { return (byte *)this + sizeof(Page); }
|
||||
byte *End() { return (byte *)this + 4096; }
|
||||
};
|
||||
|
||||
static int Ksz(int k) { return (k + 1) << 4; }
|
||||
|
||||
|
||||
static Page *global_empty[16];
|
||||
static StaticMutex global_lock;
|
||||
|
||||
Page full[16][1];
|
||||
Page work[16][1];
|
||||
Page *empty[16];
|
||||
FreeLink *cache[16];
|
||||
int level[16];
|
||||
|
||||
void Init();
|
||||
|
||||
void *AllocK(int k);
|
||||
void FreeK(void *ptr, Page *page, int k);
|
||||
void *Alloc(size_t sz);
|
||||
void Free(void *ptr);
|
||||
|
||||
static void *CheckFree(void *p, int k);
|
||||
static void FillFree(void *ptr, int k);
|
||||
|
||||
void Check();
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue