亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? suballoc.hpp

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標準數據庫控件
?? HPP
字號:
/****************************************************************************
 *  This file is part of PPMd project                                       *
 *  Written and distributed to public domain by Dmitry Shkarin 1997,        *
 *  1999-2000                                                               *
 *  Contents: memory allocation routines                                    *
 ****************************************************************************/
#pragma hdrstop
//#include "SubAlloc.h"
const UINT N1=4, N2=4, N3=4, N4=(128+3-1*N1-2*N2-3*N3)/4;
const UINT UNIT_SIZE=12, N_INDEXES=N1+N2+N3+N4;

static long SubAllocatorSize=0;
static BYTE Indx2Units[N_INDEXES], Units2Indx[128];
static BYTE* HeapStart, * LoUnit, * HiUnit, * LastBreath;
static struct NODE { NODE* next; } FreeList[N_INDEXES];

inline void InsertNode(void* p,int indx) {
    ((NODE*) p)->next=FreeList[indx].next;  FreeList[indx].next=(NODE*) p;
}
inline void* RemoveNode(int indx) {
    NODE* RetVal=FreeList[indx].next;       FreeList[indx].next=RetVal->next;
    return RetVal;
}
inline UINT I2B(int indx) { return UNIT_SIZE*Indx2Units[indx]; }
inline void SplitBlock(void* pv,int OldIndx,int NewIndx)
{
    int i, UDiff=Indx2Units[OldIndx]-Indx2Units[NewIndx];
    BYTE* p=((BYTE*) pv)+I2B(NewIndx);
    if (Indx2Units[i=Units2Indx[UDiff-1]] != UDiff) {
        InsertNode(p,--i);                  p += I2B(i);
        UDiff -= Indx2Units[i];
    }
    InsertNode(p,Units2Indx[UDiff-1]);
}

DWORD _STDCALL GetUsedMemory()
{
    DWORD i, k, RetVal=SubAllocatorSize-(HiUnit-LoUnit);
    for (k=i=0;i < N_INDEXES;i++, k=0) {
        for (NODE* pn=FreeList+i;(pn=pn->next) != NULL;k++)
                ;
        RetVal -= UNIT_SIZE*Indx2Units[i]*k;
    }
    if ( LastBreath )                       RetVal -= 128*128*UNIT_SIZE;
    return (RetVal >> 2);
}


void _STDCALL StopSubAllocator()
{

    if ( SubAllocatorSize ) {
        SubAllocatorSize=0;
#ifdef FOR_DELPHI
     aa_free((char *)HeapStart);
     HeapStart = NULL;
#else
        delete[] HeapStart;
#endif
    }

}

BOOL _STDCALL StartSubAllocator(int SASize)
{

    DWORD t=SASize<<20;
    if (SubAllocatorSize == t)
     return TRUE;
    StopSubAllocator();

#ifdef FOR_DELPHI
    HeapStart = aa_malloc(t);
	 if (HeapStart == NULL)
#else
    if ((HeapStart=new BYTE[t]) == NULL)
#endif
     return FALSE;
    SubAllocatorSize=t;
    return TRUE;

}
void InitSubAllocator()
{
    int i, k;
    memset(FreeList,0,sizeof(FreeList));
    HiUnit=(LoUnit=HeapStart)+UNIT_SIZE*(SubAllocatorSize/UNIT_SIZE);
    LastBreath=LoUnit;                      LoUnit += 128*128*UNIT_SIZE;
    for (i=0,k=1;i < N1     ;i++,k += 1)    Indx2Units[i]=k;
    for (k++;i < N1+N2      ;i++,k += 2)    Indx2Units[i]=k;
    for (k++;i < N1+N2+N3   ;i++,k += 3)    Indx2Units[i]=k;
    for (k++;i < N1+N2+N3+N4;i++,k += 4)    Indx2Units[i]=k;
    for (k=i=0;k < 128;k++) {
        i += (Indx2Units[i] < k+1);         Units2Indx[k]=i;
    }
}
void* _FASTCALL AllocUnitsRare(int NU)
{


    int i, indx=Units2Indx[NU-1];
    if ( FreeList[indx].next )
     return RemoveNode(indx);
    void* RetVal=LoUnit;
          LoUnit += I2B(indx);
    if (LoUnit <= HiUnit)
     return RetVal;
    if ( LastBreath )
    {
        for (i=0;i < 128;i++)
        {
            InsertNode(LastBreath,N_INDEXES-1);
            LastBreath += 128*UNIT_SIZE;
        }
        LastBreath=NULL;
    }
    LoUnit -= I2B(indx);                    i=indx;
    do {
        if (++i == N_INDEXES)
         return NULL;
    } while ( !FreeList[i].next );
    SplitBlock(RetVal=RemoveNode(i),i,indx);
    return RetVal;

}
void* AllocContext()
{
    if (HiUnit != LoUnit)
     return (HiUnit -= UNIT_SIZE);
    return AllocUnitsRare(1);
}
void* _FASTCALL ExpandUnits(void* OldPtr,int OldNU)
{
    int i0=Units2Indx[OldNU-1], i1=Units2Indx[OldNU-1+1];
    if (i0 == i1)                           return OldPtr;
    void* ptr=AllocUnitsRare(OldNU+1);
    if ( ptr ) {
        memcpy(ptr,OldPtr,I2B(i0));
                InsertNode(OldPtr,i0);
    }
    return ptr;
}
void* _FASTCALL ShrinkUnits(void* OldPtr,int OldNU,int NewNU)
{
    int i0=Units2Indx[OldNU-1], i1=Units2Indx[NewNU-1];
    if (i0 == i1)                           return OldPtr;
    if ( FreeList[i1].next ) {
        void* ptr=RemoveNode(i1);
                memcpy(ptr,OldPtr,I2B(i1));
        InsertNode(OldPtr,i0);              return ptr;
    } else {
        SplitBlock(OldPtr,i0,i1);           return OldPtr;
    }
}
void _FASTCALL FreeUnits(void* ptr,int OldNU)
{
    InsertNode(ptr,Units2Indx[OldNU-1]);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人影院| 久久精品一区二区三区不卡牛牛| 亚洲一二三四久久| 欧美怡红院视频| 日韩电影在线一区二区三区| 日韩精品一区二区三区三区免费| 国产自产视频一区二区三区| 国产精品视频一二| 日本精品裸体写真集在线观看| 香蕉久久一区二区不卡无毒影院| 日韩欧美你懂的| 国产精品一二三四区| 亚洲色图在线视频| 91精品国产综合久久精品麻豆 | 蜜桃视频第一区免费观看| wwww国产精品欧美| 99re这里都是精品| 婷婷六月综合网| 久久久久久久久久久99999| av动漫一区二区| 香蕉加勒比综合久久| 欧美精品一区二区蜜臀亚洲| 成年人午夜久久久| 亚洲高清免费观看| 久久久精品免费观看| 日本久久电影网| 裸体歌舞表演一区二区| 中文字幕一区二区三区乱码在线| 欧美日韩精品一区二区天天拍小说| 久99久精品视频免费观看| 中文字幕亚洲精品在线观看| 欧美日韩国产小视频在线观看| 国模无码大尺度一区二区三区| 亚洲日本中文字幕区| 日韩欧美精品在线| 99在线精品免费| 老司机午夜精品| 亚洲免费在线视频| 精品国产凹凸成av人导航| 色婷婷综合中文久久一本| 久久精品免费观看| 亚洲男人电影天堂| 久久无码av三级| 欧美日韩在线播放| 国产成人啪免费观看软件| 五月天久久比比资源色| 国产精品久久久久天堂| 欧美精品日韩一本| 99免费精品在线| 激情综合色综合久久| 亚洲五码中文字幕| 欧美激情一区三区| 欧美一区二区三区在线观看视频| 不卡在线视频中文字幕| 裸体一区二区三区| 一区二区三区小说| 国产色产综合产在线视频| 91精品久久久久久久99蜜桃| 色哟哟一区二区| 国产精品99久久久久久宅男| 日韩av不卡一区二区| 亚洲人123区| 久久精品无码一区二区三区| 欧美美女喷水视频| 色偷偷一区二区三区| 成人综合在线观看| 久久成人18免费观看| 亚洲一区二区av在线| 国产乱人伦精品一区二区在线观看| 亚洲国产视频一区| 中文字幕一区二区三区蜜月| 久久久国产精品午夜一区ai换脸| 欧美一区二区二区| 欧美日韩国产高清一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 国产麻豆日韩欧美久久| 日本 国产 欧美色综合| 亚洲成人你懂的| 亚洲激情图片一区| 亚洲同性gay激情无套| 国产午夜精品一区二区| 欧美变态口味重另类| 4438成人网| 欧美日韩一区二区在线观看视频| 91视频观看视频| 成人免费精品视频| 国产成人a级片| 国产又粗又猛又爽又黄91精品| 蜜臀精品久久久久久蜜臀| 午夜伦欧美伦电影理论片| 一区二区三国产精华液| 亚洲色图.com| 亚洲三级电影网站| 亚洲视频一区在线| 亚洲欧洲日产国产综合网| 国产亲近乱来精品视频 | 夜夜亚洲天天久久| 亚洲欧美一区二区三区极速播放| 亚洲欧洲成人av每日更新| 国产精品欧美一区喷水| 国产精品美女久久久久久久网站| 日本一区二区三区四区| 亚洲国产精品精华液ab| 国产精品欧美久久久久无广告| 欧美国产精品劲爆| 国产精品国产三级国产普通话蜜臀 | 国产精品丝袜久久久久久app| 亚洲国产精品成人综合| 国产性天天综合网| 国产日韩综合av| 国产精品久久久久影院老司| 亚洲欧洲色图综合| 一区二区三区中文字幕| 亚洲永久免费av| 日韩制服丝袜av| 六月丁香综合在线视频| 精品午夜一区二区三区在线观看| 国产麻豆欧美日韩一区| 成人午夜激情视频| 99久久免费精品高清特色大片| 97aⅴ精品视频一二三区| 色猫猫国产区一区二在线视频| 欧美一a一片一级一片| 在线电影欧美成精品| 日韩午夜av一区| 久久久久国色av免费看影院| 欧美国产精品中文字幕| 亚洲人成人一区二区在线观看| 亚洲伊人伊色伊影伊综合网| 日韩电影在线免费看| 国模无码大尺度一区二区三区| 国产91精品一区二区麻豆亚洲| 94-欧美-setu| 欧美另类高清zo欧美| 欧美电视剧在线看免费| 国产日韩精品一区二区浪潮av | 26uuu另类欧美| 国产欧美视频一区二区| 亚洲天堂av老司机| 天堂av在线一区| 国产精品一区二区在线观看不卡 | 美腿丝袜在线亚洲一区| 国产精品一区二区三区网站| av男人天堂一区| 欧美日韩国产三级| 精品久久人人做人人爽| 成人免费在线视频| 天堂午夜影视日韩欧美一区二区| 韩国欧美国产1区| 色视频成人在线观看免| 欧美一级片免费看| 国产精品美女久久久久高潮| 亚洲成人一区二区在线观看| 国内精品国产三级国产a久久| 91麻豆免费观看| 欧美巨大另类极品videosbest| 久久精品人人做人人综合| 夜夜精品浪潮av一区二区三区| 免费视频最近日韩| a美女胸又www黄视频久久| 欧美精品一级二级三级| 日本一区二区三区在线观看| 亚洲午夜电影在线观看| 国产精品一区二区久久精品爱涩| 日本精品视频一区二区三区| 精品伦理精品一区| 亚洲自拍偷拍欧美| 国产精品一区在线| 欧美视频在线一区二区三区 | 亚洲v日本v欧美v久久精品| 国内精品写真在线观看| 欧洲精品一区二区| 久久久久九九视频| 亚洲123区在线观看| 成人久久18免费网站麻豆| 欧美一卡二卡三卡| 一区二区三区中文字幕| 国产成人在线电影| 欧美裸体一区二区三区| 亚洲欧洲精品天堂一级| 精品无人码麻豆乱码1区2区| 欧美在线观看一区二区| 国产女同互慰高潮91漫画| 日韩av一区二区在线影视| 91免费视频网| 久久精品一区二区三区不卡牛牛 | 亚洲二区视频在线| 成人手机在线视频| 日韩欧美激情一区| 亚洲午夜久久久久久久久久久| 成人国产精品免费| 精品国产欧美一区二区| 一区二区三区在线视频免费 | 中文字幕一区二区三区在线观看 | 欧美电影免费观看高清完整版在| 亚洲激情自拍视频| 成人毛片视频在线观看| 精品久久人人做人人爽| 日本强好片久久久久久aaa| 91精品福利在线|