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

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

?? classfun.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
       break;   if (deletedIndex == src->classCount)     return;   if (src->classCount > 1)     {      dst.classArray = (DEFCLASS **) gm2(theEnv,(sizeof(DEFCLASS *) * (src->classCount - 1)));      if (deletedIndex != 0)        GenCopyMemory(DEFCLASS *,deletedIndex,dst.classArray,src->classArray);      GenCopyMemory(DEFCLASS *,src->classCount - deletedIndex - 1,                 dst.classArray + deletedIndex,src->classArray + deletedIndex + 1);     }   else     dst.classArray = NULL;   dst.classCount = (unsigned short) (src->classCount - 1);   DeletePackedClassLinks(theEnv,src,FALSE);   src->classCount = dst.classCount;   src->classArray = dst.classArray;  }/**************************************************************  NAME         : NewClass  DESCRIPTION  : Allocates and initalizes a new class structure  INPUTS       : The symbolic name of the new class  RETURNS      : The address of the new class  SIDE EFFECTS : None  NOTES        : None **************************************************************/globle DEFCLASS *NewClass(  void *theEnv,  SYMBOL_HN *className)  {   register DEFCLASS *cls;   cls = get_struct(theEnv,defclass);   InitializeConstructHeader(theEnv,"defclass",(struct constructHeader *) cls,className);   cls->id = 0;   cls->installed = 0;   cls->busy = 0;   cls->system = 0;   cls->abstract = 0;   cls->reactive = 1;#if DEBUGGING_FUNCTIONS   cls->traceInstances = DefclassData(theEnv)->WatchInstances;   cls->traceSlots = DefclassData(theEnv)->WatchSlots;#endif   cls->hashTableIndex = 0;   cls->directSuperclasses.classCount = 0;   cls->directSuperclasses.classArray = NULL;   cls->directSubclasses.classCount = 0;   cls->directSubclasses.classArray = NULL;   cls->allSuperclasses.classCount = 0;   cls->allSuperclasses.classArray = NULL;   cls->slots = NULL;   cls->instanceTemplate = NULL;   cls->slotNameMap = NULL;   cls->instanceSlotCount = 0;   cls->localInstanceSlotCount = 0;   cls->slotCount = 0;   cls->maxSlotNameID = 0;   cls->handlers = NULL;   cls->handlerOrderMap = NULL;   cls->handlerCount = 0;   cls->instanceList = NULL;   cls->instanceListBottom = NULL;   cls->nxtHash = NULL;   cls->scopeMap = NULL;   ClearBitString(cls->traversalRecord,TRAVERSAL_BYTES);   return(cls);  }  /***************************************************  NAME         : DeletePackedClassLinks  DESCRIPTION  : Dealloacates a contiguous array                 holding class links  INPUTS       : 1) The class link segment                 2) A flag indicating whether to                    delete the top pack structure  RETURNS      : Nothing useful  SIDE EFFECTS : Class links deallocated  NOTES        : None ***************************************************/globle void DeletePackedClassLinks(  void *theEnv,  PACKED_CLASS_LINKS *plp,  int deleteTop)  {   if (plp->classCount > 0)     {      rm(theEnv,(void *) plp->classArray,(sizeof(DEFCLASS *) * plp->classCount));      plp->classCount = 0;      plp->classArray = NULL;     }   if (deleteTop)     rtn_struct(theEnv,packedClassLinks,plp);  }/***************************************************  NAME         : AssignClassID  DESCRIPTION  : Assigns a unique id to a class                 and puts its address in the                 id map  INPUTS       : The class  RETURNS      : Nothing useful  SIDE EFFECTS : Class id assigned and map set  NOTES        : None ***************************************************/globle void AssignClassID(  void *theEnv,  DEFCLASS *cls)  {   register unsigned i;   if ((DefclassData(theEnv)->MaxClassID % CLASS_ID_MAP_CHUNK) == 0)     {      DefclassData(theEnv)->ClassIDMap = (DEFCLASS **) genrealloc(theEnv,(void *) DefclassData(theEnv)->ClassIDMap,                       (unsigned) (DefclassData(theEnv)->MaxClassID * sizeof(DEFCLASS *)),                       (unsigned) ((DefclassData(theEnv)->MaxClassID + CLASS_ID_MAP_CHUNK) * sizeof(DEFCLASS *)));      DefclassData(theEnv)->AvailClassID += (unsigned short) CLASS_ID_MAP_CHUNK;      for (i = DefclassData(theEnv)->MaxClassID ; i < (unsigned) (DefclassData(theEnv)->MaxClassID + CLASS_ID_MAP_CHUNK) ; i++)        DefclassData(theEnv)->ClassIDMap[i] = NULL;     }   DefclassData(theEnv)->ClassIDMap[DefclassData(theEnv)->MaxClassID] = cls;   cls->id = DefclassData(theEnv)->MaxClassID++;  }/*********************************************************  NAME         : AddSlotName  DESCRIPTION  : Adds a new slot entry (or increments                 the use count of an existing node).  INPUTS       : 1) The slot name                 2) The new canonical id for the slot name                 3) A flag indicating whether the                    given id must be used or not  RETURNS      : The id of the (old) node  SIDE EFFECTS : Slot name entry added or use count                 incremented  NOTES        : None *********************************************************/globle SLOT_NAME *AddSlotName(  void *theEnv,  SYMBOL_HN *slotName,  int newid,  int usenewid)  {   SLOT_NAME *snp;   unsigned hashTableIndex;   char *buf;   size_t bufsz;   hashTableIndex = HashSlotName(slotName);   snp = DefclassData(theEnv)->SlotNameTable[hashTableIndex];   while ((snp != NULL) ? (snp->name != slotName) : FALSE)     snp = snp->nxt;   if (snp != NULL)     {      if (usenewid && (newid != snp->id))        {         SystemError(theEnv,"CLASSFUN",1);         EnvExitRouter(theEnv,EXIT_FAILURE);        }      snp->use++;     }   else     {      snp = get_struct(theEnv,slotName);      snp->name = slotName;      snp->hashTableIndex = hashTableIndex;      snp->use = 1;      snp->id = usenewid ? newid : NewSlotNameID(theEnv);      snp->nxt = DefclassData(theEnv)->SlotNameTable[hashTableIndex];      DefclassData(theEnv)->SlotNameTable[hashTableIndex] = snp;      IncrementSymbolCount(slotName);      bufsz = (sizeof(char) *                     (PUT_PREFIX_LENGTH + strlen(ValueToString(slotName)) + 1));      buf = (char *) gm2(theEnv,bufsz);      genstrcpy(buf,PUT_PREFIX);      genstrcat(buf,ValueToString(slotName));      snp->putHandlerName = (SYMBOL_HN *) EnvAddSymbol(theEnv,buf);      IncrementSymbolCount(snp->putHandlerName);      rm(theEnv,(void *) buf,bufsz);      snp->bsaveIndex = 0L;    }   return(snp);  }/***************************************************  NAME         : DeleteSlotName  DESCRIPTION  : Removes a slot name entry from                 the table of all slot names if                 no longer in use  INPUTS       : The slot name hash node  RETURNS      : Nothing useful  SIDE EFFECTS : Slot name entry deleted or use                 count decremented  NOTES        : None ***************************************************/globle void DeleteSlotName(  void *theEnv,  SLOT_NAME *slotName)  {   SLOT_NAME *snp,*prv;   if (slotName == NULL)     return;   prv = NULL;   snp = DefclassData(theEnv)->SlotNameTable[slotName->hashTableIndex];   while (snp != slotName)     {      prv = snp;      snp = snp->nxt;     }   snp->use--;   if (snp->use != 0)     return;   if (prv == NULL)     DefclassData(theEnv)->SlotNameTable[snp->hashTableIndex] = snp->nxt;   else     prv->nxt = snp->nxt;   DecrementSymbolCount(theEnv,snp->name);   DecrementSymbolCount(theEnv,snp->putHandlerName);   rtn_struct(theEnv,slotName,snp);  }/*******************************************************************  NAME         : RemoveDefclass  DESCRIPTION  : Deallocates a class structure and                 all its fields - returns all symbols                 in use by the class back to the symbol                 manager for ephemeral removal  INPUTS       : The address of the class  RETURNS      : Nothing useful  SIDE EFFECTS : None  NOTES        : Assumes class has no subclasses                 IMPORTANT WARNING!! : Assumes class                   busy count and all instances' busy                   counts are 0 and all handlers' busy counts are 0! *******************************************************************/LOCALE void RemoveDefclass(  void *theEnv,  void *vcls)  {   DEFCLASS *cls = (DEFCLASS *) vcls;   HANDLER *hnd;   long i;   /* ====================================================      Remove all of this class's superclasses' links to it      ==================================================== */   for (i = 0 ; i < cls->directSuperclasses.classCount ; i++)     DeleteSubclassLink(theEnv,cls->directSuperclasses.classArray[i],cls);   RemoveClassFromTable(theEnv,cls);   InstallClass(theEnv,cls,FALSE);   DeletePackedClassLinks(theEnv,&cls->directSuperclasses,FALSE);   DeletePackedClassLinks(theEnv,&cls->allSuperclasses,FALSE);   DeletePackedClassLinks(theEnv,&cls->directSubclasses,FALSE);   for (i = 0 ; i < cls->slotCount ; i++)     {      if (cls->slots[i].defaultValue != NULL)        {         if (cls->slots[i].dynamicDefault)           ReturnPackedExpression(theEnv,(EXPRESSION *) cls->slots[i].defaultValue);         else           rtn_struct(theEnv,dataObject,cls->slots[i].defaultValue);        }      DeleteSlotName(theEnv,cls->slots[i].slotName);      RemoveConstraint(theEnv,cls->slots[i].constraint);     }   if (cls->instanceSlotCount != 0)     {      rm(theEnv,(void *) cls->instanceTemplate,         (sizeof(SLOT_DESC *) * cls->instanceSlotCount));      rm(theEnv,(void *) cls->slotNameMap,         (sizeof(unsigned) * (cls->maxSlotNameID + 1)));     }   if (cls->slotCount != 0)     rm(theEnv,(void *) cls->slots,(sizeof(SLOT_DESC) * cls->slotCount));   for (i = 0 ; i < cls->handlerCount ; i++)     {      hnd = &cls->handlers[i];      if (hnd->actions != NULL)        ReturnPackedExpression(theEnv,hnd->actions);      if (hnd->ppForm != NULL)        rm(theEnv,(void *) hnd->ppForm,(sizeof(char) * (strlen(hnd->ppForm)+1)));      if (hnd->usrData != NULL)        { ClearUserDataList(theEnv,hnd->usrData); }     }   if (cls->handlerCount != 0)     {      rm(theEnv,(void *) cls->handlers,(sizeof(HANDLER) * cls->handlerCount));      rm(theEnv,(void *) cls->handlerOrderMap,(sizeof(unsigned) * cls->handlerCount));     }        SetDefclassPPForm((void *) cls,NULL);   DeassignClassID(theEnv,(unsigned) cls->id);   rtn_struct(theEnv,defclass,cls);  } #endif /*******************************************************************  NAME         : DestroyDefclass  DESCRIPTION  : Deallocates a class structure and                 all its fields.  INPUTS       : The address of the class  RETURNS      : Nothing useful  SIDE EFFECTS : None  NOTES        :  *******************************************************************/LOCALE void DestroyDefclass(  void *theEnv,  void *vcls)  {   DEFCLASS *cls = (DEFCLASS *) vcls;   long i;#if ! RUN_TIME   HANDLER *hnd;   DeletePackedClassLinks(theEnv,&cls->directSuperclasses,FALSE);   DeletePackedClassLinks(theEnv,&cls->allSuperclasses,FALSE);   DeletePackedClassLinks(theEnv,&cls->directSubclasses,FALSE);#endif   for (i = 0 ; i < cls->slotCount ; i++)     {      if (cls->slots[i].defaultValue != NULL)        {#if ! RUN_TIME         if (cls->slots[i].dynamicDefault)           ReturnPackedExpression(theEnv,(EXPRESSION *) cls->slots[i].defaultValue);         else           rtn_struct(theEnv,dataObject,cls->slots[i].defaultValue);#else         if (cls->slots[i].dynamicDefault == 0)           rtn_struct(theEnv,dataObject,cls->slots[i].defaultValue);#endif        }     }     #if ! RUN_TIME   if (cls->instanceSlotCount != 0)     {      rm(theEnv,(void *) cls->instanceTemplate,         (sizeof(SLOT_DESC *) * cls->instanceSlotCount));      rm(theEnv,(void *) cls->slotNameMap,         (sizeof(unsigned) * (cls->maxSlotNameID + 1)));     }   if (cls->slotCount != 0)     rm(theEnv,(void *) cls->slots,(sizeof(SLOT_DESC) * cls->slotCount));   for (i = 0 ; i < cls->handlerCount ; i++)     {      hnd = &cls->handlers[i];      if (hnd->actions != NULL)        ReturnPackedExpression(theEnv,hnd->actions);      if (hnd->ppForm != NULL)        rm(theEnv,(void *) hnd->ppForm,(sizeof(char) * (strlen(hnd->ppForm)+1)));            if (hnd->usrData != NULL)        { ClearUserDataList(theEnv,hnd->usrData); }     }   if (cls->handlerCount != 0)     {      rm(theEnv,(void *) cls->handlers,(sizeof(HANDLER) * cls->handlerCount));      rm(theEnv,(void *) cls->handlerOrderMap,(sizeof(unsigned) * cls->handlerCount));     }        DestroyConstructHeader(theEnv,&cls->header);   rtn_struct(theEnv,defclass,cls);#else#if MAC_MCW || IBM_MCW || MAC_XCD#pragma unused(hnd)#endif#endif  }  #if ! RUN_TIME/***************************************************  NAME         : InstallClass  DESCRIPTION  : In(De)crements all symbol counts for                 for symbols in use by class                 Disallows (allows) symbols to become                 ephemeral.  INPUTS       : 1) The class address                 2) 1 - install, 0 - deinstall  RETURNS      : Nothing useful  SIDE EFFECTS : None  NOTES        : None ***************************************************/globle void InstallClass(  void *theEnv,  DEFCLASS *cls,  int set)  {   SLOT_DESC *slot;   HANDLER *hnd;   long i;   if ((set && cls->installed) ||       ((set == FALSE) && (cls->installed == 0)))     return;   /* ==================================================================      Handler installation is handled when message-handlers are defined:      see ParseDefmessageHandler() in MSGCOM.C      Slot installation is handled by ParseSlot() in CLASSPSR.C      Scope map installation is handled by CreateClassScopeMap()      ================================================================== */   if (set == FALSE)     {      cls->installed = 0;      DecrementSymbolCount(theEnv,cls->header.name);#if DEFMODULE_CONSTRUCT      DecrementBitMapCount(theEnv,cls->scopeMap);#endif      ClearUserDataList(theEnv,cls->header.usrData);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品综合久久| 国产欧美精品一区二区色综合| 亚洲精品视频在线看| 99视频精品全部免费在线| 最近中文字幕一区二区三区| 91论坛在线播放| 亚洲成人精品一区二区| 91精品在线观看入口| 激情国产一区二区| 国产精品无圣光一区二区| 色综合久久久久| 亚洲r级在线视频| 欧美成人一区二区三区| 国产成人aaa| 亚洲黄色小说网站| 91精品福利在线一区二区三区 | 美女被吸乳得到大胸91| 日韩一区二区三区精品视频| 国产一区二区三区美女| 自拍偷拍亚洲激情| 制服丝袜日韩国产| 国产精品自在欧美一区| 一区二区三区中文在线观看| 制服.丝袜.亚洲.中文.综合| 国产一区二区久久| 亚洲日本免费电影| 欧美一区二区三区免费大片| 国产成人自拍网| 亚洲成人精品影院| 欧美高清在线一区二区| 在线电影欧美成精品| 国产精品一区二区久久不卡| 亚洲在线免费播放| 日本一区二区三区dvd视频在线| 欧美怡红院视频| 国产精品99精品久久免费| 亚洲国产一区视频| 国产三级精品视频| 欧美嫩在线观看| 成人av电影在线播放| 老司机精品视频导航| 亚洲精品乱码久久久久久日本蜜臀 | 国产精品动漫网站| 欧美一级免费大片| 91国产免费观看| 国产精品系列在线播放| 日日骚欧美日韩| 亚洲人成网站在线| 国产精品色呦呦| 精品人在线二区三区| 欧美三级资源在线| 91在线视频免费观看| 国产精品自拍av| 日韩av网站在线观看| 亚洲另类在线视频| 久久精品在线免费观看| 日韩三级伦理片妻子的秘密按摩| 91亚洲国产成人精品一区二三| 国内精品在线播放| 免费欧美在线视频| 午夜精品久久久久影视| 亚洲一区二区精品久久av| 中文字幕在线观看不卡| 国产欧美一区二区精品忘忧草| 欧美mv日韩mv国产网站app| 91精品午夜视频| 欧美电影影音先锋| 51精品国自产在线| 欧美一区二区三区人| 69久久99精品久久久久婷婷| 欧美区在线观看| 在线成人午夜影院| 欧美一卡二卡三卡| 日韩精品一区二区三区在线观看| 欧美一区二区在线视频| 欧美一级一区二区| 精品精品欲导航| 久久久三级国产网站| 国产亚洲综合性久久久影院| 久久久噜噜噜久噜久久综合| 2024国产精品| 久久久不卡网国产精品一区| 久久在线观看免费| 日本一二三不卡| 亚洲国产成人在线| 一色桃子久久精品亚洲| 亚洲女同ⅹxx女同tv| 亚洲国产精品天堂| 免费在线观看精品| 国产高清在线观看免费不卡| 成人高清免费观看| 欧美午夜理伦三级在线观看| 欧美日韩成人综合| 欧美本精品男人aⅴ天堂| 精品国产免费人成在线观看| 国产欧美精品区一区二区三区 | 136国产福利精品导航| 亚洲视频一区二区在线观看| 亚洲免费高清视频在线| 视频一区视频二区在线观看| 久久国产精品露脸对白| 国产精品1区2区3区| 91色九色蝌蚪| 欧美精三区欧美精三区| 日韩欧美一区二区久久婷婷| 久久久久久久久久电影| 亚洲另类在线制服丝袜| 日韩精品一二三四| 成人免费va视频| 欧美剧在线免费观看网站| 精品国产91亚洲一区二区三区婷婷| 久久亚洲私人国产精品va媚药| 国产精品福利av| 偷拍日韩校园综合在线| 国产成人精品一区二区三区网站观看| 91在线看国产| 日韩欧美一二三| 亚洲蜜臀av乱码久久精品| 免播放器亚洲一区| 99re热视频这里只精品| 日韩精品一区二区在线观看| 亚洲婷婷综合色高清在线| 免费观看成人鲁鲁鲁鲁鲁视频| 丁香天五香天堂综合| 欧美肥胖老妇做爰| 国产欧美一区二区三区鸳鸯浴| 亚洲成人自拍一区| 国产精品亚洲а∨天堂免在线| 在线一区二区视频| 精品国产91洋老外米糕| 亚洲一级不卡视频| 丰满白嫩尤物一区二区| 91精品国产免费久久综合| 亚洲伦理在线精品| 国产黄人亚洲片| 日韩视频免费观看高清完整版 | 盗摄精品av一区二区三区| 欧美群妇大交群的观看方式| 国产精品每日更新| 精品一区二区三区在线播放视频| 日本黄色一区二区| 中文字幕在线观看不卡视频| 奇米精品一区二区三区在线观看| 成人黄色一级视频| 国产午夜亚洲精品羞羞网站| 日韩不卡手机在线v区| 欧美在线短视频| 亚洲人成在线观看一区二区| 国产精品一区二区视频| 91精品免费在线| 亚洲综合色自拍一区| 91麻豆免费观看| 国产精品护士白丝一区av| 国内一区二区视频| 制服丝袜亚洲播放| 爽好多水快深点欧美视频| 色综合欧美在线| 亚洲视频一二三区| 99久久伊人网影院| 国产精品素人一区二区| 成人av综合在线| 一区在线播放视频| 92精品国产成人观看免费| 午夜免费欧美电影| 一本一道综合狠狠老| 一区二区中文视频| 色综合网色综合| 亚洲人成小说网站色在线| 91视频免费看| 一区二区三区日韩欧美精品| 色噜噜久久综合| 亚洲综合色婷婷| 精品视频一区二区三区免费| 亚洲电影在线播放| 在线播放中文字幕一区| 久久激五月天综合精品| 精品国产91久久久久久久妲己 | 亚洲一区二区三区四区在线免费观看| 91丨porny丨蝌蚪视频| 亚洲色图欧美激情| 欧美另类久久久品| 久久99深爱久久99精品| 国产欧美一区二区精品性色| 99re热这里只有精品视频| 亚洲一区二区在线免费观看视频| 91福利精品视频| 午夜精品一区在线观看| 精品国产91久久久久久久妲己| 国产成人av在线影院| 亚洲天堂精品在线观看| 欧美三级欧美一级| 精品亚洲porn| 综合久久国产九一剧情麻豆| 欧美性xxxxxx少妇| 久久er精品视频| 国产精品美女久久久久久久 | 亚洲精品中文字幕乱码三区| 欧美中文字幕一二三区视频| 日韩av在线播放中文字幕| 国产欧美一区二区精品忘忧草 |