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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? classpsr.c

?? clips源代碼
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/*******************************************************  NAME         : BuildSubclassLinks  DESCRIPTION  : Follows the list of superclasses                 for a class and puts the class in                 each of the superclasses' subclass                 list.  INPUTS       : The address of the class  RETURNS      : Nothing useful  SIDE EFFECTS : The subclass lists for every superclass                 are modified.  NOTES        : Assumes the superclass list is formed. *******************************************************/static void BuildSubclassLinks(  void *theEnv,  DEFCLASS *cls)  {   long i;   for (i = 0 ; i < cls->directSuperclasses.classCount ; i++)     AddClassLink(theEnv,&cls->directSuperclasses.classArray[i]->directSubclasses,cls,-1);  }/**********************************************************  NAME         : FormInstanceTemplate  DESCRIPTION  : Forms a contiguous array of instance                  slots for use in creating instances later                 Also used in determining instance slot                  indices a priori during handler defns  INPUTS       : The class  RETURNS      : Nothing useful  SIDE EFFECTS : Contiguous array of instance slots formed  NOTES        : None **********************************************************/static void FormInstanceTemplate(  void *theEnv,  DEFCLASS *cls)  {   TEMP_SLOT_LINK *islots = NULL,*stmp;   short scnt = 0;   long i;   /* ========================      Get direct class's slots      ======================== */   islots = MergeSlots(theEnv,islots,cls,&scnt,DIRECT);   /* ===================================================================      Get all inherited slots - a more specific slot takes precedence      over more general, i.e. the first class in the precedence list with      a particular slot gets to specify its default value      =================================================================== */   for (i = 1 ; i < cls->allSuperclasses.classCount ; i++)     islots = MergeSlots(theEnv,islots,cls->allSuperclasses.classArray[i],&scnt,INHERIT);   /* ===================================================      Allocate a contiguous array to store all the slots.      =================================================== */   cls->instanceSlotCount = scnt;   cls->localInstanceSlotCount = 0;   if (scnt > 0)     cls->instanceTemplate = (SLOT_DESC **) gm2(theEnv,(scnt * sizeof(SLOT_DESC *)));   for (i = 0 ; i < scnt ; i++)     {      stmp = islots;      islots = islots->nxt;      cls->instanceTemplate[i] = stmp->desc;      if (stmp->desc->shared == 0)        cls->localInstanceSlotCount++;      rtn_struct(theEnv,tempSlotLink,stmp);     }  }/**********************************************************  NAME         : FormSlotNameMap  DESCRIPTION  : Forms a mapping of the slot name ids into                 the instance template.  Given the slot                 name id, this map provides a much faster                 lookup of a slot.  The id is stored                 statically in object patterns and can                 be looked up via a hash table at runtime                 as well.  INPUTS       : The class  RETURNS      : Nothing useful  SIDE EFFECTS : Contiguous array of integers formed                 The position in the array corresponding                 to a slot name id holds an the index                 into the instance template array holding                 the slot                 The max slot name id for the class is                 also stored to make deletion of the slots                 easier  NOTES        : Assumes the instance template has already                 been formed **********************************************************/static void FormSlotNameMap(  void *theEnv,  DEFCLASS *cls)  {   long i;   cls->maxSlotNameID = 0;   cls->slotNameMap = NULL;   if (cls->instanceSlotCount == 0)     return;   for (i = 0 ; i < cls->instanceSlotCount ; i++)     if (cls->instanceTemplate[i]->slotName->id > cls->maxSlotNameID)       cls->maxSlotNameID = cls->instanceTemplate[i]->slotName->id;   cls->slotNameMap = (unsigned *) gm2(theEnv,(sizeof(unsigned) * (cls->maxSlotNameID + 1)));   for (i = 0 ; i <= cls->maxSlotNameID ; i++)     cls->slotNameMap[i] = 0;   for (i = 0 ; i < cls->instanceSlotCount ; i++)     cls->slotNameMap[cls->instanceTemplate[i]->slotName->id] = i + 1;  }/********************************************************************  NAME         : MergeSlots  DESCRIPTION  : Adds non-duplicate slots to list and increments                   slot count for the class instance template  INPUTS       : 1) The old slot list                 2) The address of class containing new slots                 3) Caller's buffer for # of slots                 4) A flag indicating whether the new list of slots                    is from the direct parent-class or not.  RETURNS      : The address of the new expanded list, or NULL                   for an empty list  SIDE EFFECTS : The list is expanded                 Caller's slot count is adjusted.  NOTES        : Lists are assumed to contain no duplicates *******************************************************************/static TEMP_SLOT_LINK *MergeSlots(  void *theEnv,  TEMP_SLOT_LINK *old,  DEFCLASS *cls,  short *scnt,  int src)  {   TEMP_SLOT_LINK *cur,*tmp;   register int i;   SLOT_DESC *newSlot;   /* ======================================      Process the slots in reverse order      since we are pushing them onto a stack      ====================================== */   for (i = (int) (cls->slotCount - 1) ; i >= 0 ; i--)     {      newSlot = &cls->slots[i];      /* ==========================================         A class can prevent it slots from being         propagated to all but its direct instances         ========================================== */      if ((newSlot->noInherit == 0) ? TRUE : (src == DIRECT))        {         cur = old;         while ((cur != NULL) ? (newSlot->slotName != cur->desc->slotName) : FALSE)           cur = cur->nxt;         if (cur == NULL)           {            tmp = get_struct(theEnv,tempSlotLink);            tmp->desc = newSlot;            tmp->nxt = old;            old = tmp;            (*scnt)++;           }        }     }   return(old);  }/***********************************************************************  NAME         : PackSlots  DESCRIPTION  : Groups class-slots into a contiguous array                  "slots" field points to array                  "slotCount" field set  INPUTS       : 1) The class                 2) The list of slots  RETURNS      : Nothing useful  SIDE EFFECTS : Temporary list deallocated, contiguous array allocated,                   and nxt pointers linked                 Class pointer set for slots  NOTES        : Assumes class->slotCount == 0 && class->slots == NULL ***********************************************************************/static void PackSlots(  void *theEnv,  DEFCLASS *cls,  TEMP_SLOT_LINK *slots)  {   TEMP_SLOT_LINK *stmp,*sprv;   long i;   stmp = slots;   while  (stmp != NULL)     {      stmp->desc->cls = cls;      cls->slotCount++;      stmp = stmp->nxt;     }   cls->slots = (SLOT_DESC *) gm2(theEnv,(sizeof(SLOT_DESC) * cls->slotCount));   stmp = slots;   for (i = 0 ; i < cls->slotCount ; i++)     {      sprv = stmp;      stmp = stmp->nxt;      GenCopyMemory(SLOT_DESC,1,&(cls->slots[i]),sprv->desc);      cls->slots[i].sharedValue.desc = &(cls->slots[i]);      cls->slots[i].sharedValue.value = NULL;      rtn_struct(theEnv,slotDescriptor,sprv->desc);      rtn_struct(theEnv,tempSlotLink,sprv);     }  }#if DEFMODULE_CONSTRUCT/********************************************************  NAME         : CreateClassScopeMap  DESCRIPTION  : Creates a bitmap where each bit position                 corresponds to a module id. If the bit                 is set, the class is in scope for that                 module, otherwise it is not.  INPUTS       : The class  RETURNS      : Nothing useful  SIDE EFFECTS : Scope bitmap created and attached  NOTES        : Uses FindImportedConstruct() ********************************************************/static void CreateClassScopeMap(  void *theEnv,  DEFCLASS *theDefclass)  {   unsigned scopeMapSize;   char *scopeMap;   char *className;   struct defmodule *matchModule,                    *theModule;   int moduleID,count;   className = ValueToString(theDefclass->header.name);   matchModule = theDefclass->header.whichModule->theModule;   scopeMapSize = (sizeof(char) * ((GetNumberOfDefmodules(theEnv) / BITS_PER_BYTE) + 1));   scopeMap = (char *) gm2(theEnv,scopeMapSize);   ClearBitString((void *) scopeMap,scopeMapSize);   SaveCurrentModule(theEnv);   for (theModule = (struct defmodule *) EnvGetNextDefmodule(theEnv,NULL) ;        theModule != NULL ;        theModule = (struct defmodule *) EnvGetNextDefmodule(theEnv,(void *) theModule))     {      EnvSetCurrentModule(theEnv,(void *) theModule);      moduleID = (int) theModule->bsaveID;      if (FindImportedConstruct(theEnv,"defclass",matchModule,                                className,&count,TRUE,NULL) != NULL)        SetBitMap(scopeMap,moduleID);     }   RestoreCurrentModule(theEnv);   theDefclass->scopeMap = (BITMAP_HN *) AddBitMap(theEnv,scopeMap,scopeMapSize);   IncrementBitMapCount(theDefclass->scopeMap);   rm(theEnv,(void *) scopeMap,scopeMapSize);  }#endif/*****************************************************************************  NAME         : CreatePublicSlotMessageHandlers  DESCRIPTION  : Creates a get-<slot-name> and                 put-<slot-name> handler for every                 public slot in a class.                 The syntax of the message-handlers                 created are:                 (defmessage-handler <class> get-<slot-name> primary ()                    ?self:<slot-name>)                 For single-field slots:                 (defmessage-handler <class> put-<slot-name> primary (?value)                    (bind ?self:<slot-name> ?value))                 For multifield slots:                 (defmessage-handler <class> put-<slot-name> primary ($?value)                    (bind ?self:<slot-name> ?value))  INPUTS       : The defclass  RETURNS      : Nothing useful  SIDE EFFECTS : Message-handlers created  NOTES        : None ******************************************************************************/static void CreatePublicSlotMessageHandlers(  void *theEnv,  DEFCLASS *theDefclass)  {   long i;   register SLOT_DESC *sd;   for (i = 0 ; i < theDefclass->slotCount ; i++)     {      sd = &theDefclass->slots[i];        CreateGetAndPutHandlers(theEnv,sd);     }   for (i = 0 ; i < theDefclass->handlerCount ; i++)     theDefclass->handlers[i].system = TRUE;  }#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美综合在线| 国产永久精品大片wwwapp| 亚洲va欧美va人人爽午夜| 美女视频一区二区| 国产精品66部| 91豆麻精品91久久久久久| 欧洲激情一区二区| wwwwxxxxx欧美| 一区二区三区不卡视频在线观看| 婷婷久久综合九色国产成人 | 国产成人高清在线| 在线观看日韩电影| 精品国产99国产精品| 亚洲二区在线观看| 成人免费电影视频| 精品播放一区二区| 一区二区免费视频| 成人美女在线视频| 精品电影一区二区三区| 一片黄亚洲嫩模| 大胆亚洲人体视频| 精品福利二区三区| 视频一区二区中文字幕| 一本大道综合伊人精品热热| 中文字幕不卡三区| 国产曰批免费观看久久久| 日韩欧美国产精品| 秋霞成人午夜伦在线观看| 欧美日本一区二区| 性做久久久久久久免费看| 91一区一区三区| 亚洲色图视频网站| 色伊人久久综合中文字幕| 一区二区国产视频| 亚洲国产精品久久不卡毛片| 欧美美女网站色| 国产成人在线色| 欧美一级日韩不卡播放免费| 亚洲国产精品影院| 在线免费亚洲电影| 国产视频不卡一区| 激情五月激情综合网| 欧美激情一区二区三区四区| 美日韩一级片在线观看| 欧美成人乱码一区二区三区| 久久99精品久久只有精品| 久久久蜜桃精品| 91看片淫黄大片一级| 无码av免费一区二区三区试看| 宅男噜噜噜66一区二区66| 精品一二三四区| 国产精品黄色在线观看| 欧美日本在线看| 国模套图日韩精品一区二区| 丝袜美腿亚洲一区| 欧美美女直播网站| 99视频一区二区| 国产米奇在线777精品观看| 亚洲尤物在线视频观看| 一区二区中文字幕在线| 欧美色视频在线观看| 丁香婷婷综合网| 蜜臀99久久精品久久久久久软件| 亚洲国产成人午夜在线一区 | 97久久精品人人爽人人爽蜜臀 | 精品av久久707| 在线免费视频一区二区| 国产盗摄女厕一区二区三区 | 国产麻豆精品theporn| 亚洲一区在线观看免费观看电影高清| 日韩欧美国产成人一区二区| 日本道在线观看一区二区| 盗摄精品av一区二区三区| 麻豆传媒一区二区三区| 亚洲一区二区成人在线观看| 久久精品视频免费| 欧美大白屁股肥臀xxxxxx| 色婷婷综合五月| 91无套直看片红桃| 成人性色生活片| 国产麻豆精品视频| 久久精品久久综合| 久久99久久久欧美国产| 婷婷国产v国产偷v亚洲高清| 亚洲成人一二三| 亚洲午夜久久久久久久久电影院 | 国产成人午夜精品5599| 国产一区二区三区四| 九色|91porny| 国产一区二区三区视频在线播放| 久久疯狂做爰流白浆xx| 美女视频网站黄色亚洲| 韩国av一区二区三区| 国产制服丝袜一区| 国产成人免费在线视频| 国产成人av电影在线观看| 成人美女在线视频| 色爱区综合激月婷婷| 欧美丝袜第三区| 欧美一级黄色录像| 国产三级三级三级精品8ⅰ区| 日本一区二区三级电影在线观看 | 亚洲国产乱码最新视频 | 亚洲免费观看视频| 亚洲大片在线观看| 欧美国产一区视频在线观看| 欧美一区二区福利视频| 一本大道综合伊人精品热热| 欧美日韩精品专区| 成人欧美一区二区三区黑人麻豆| 看片网站欧美日韩| 色综合天天综合| 日韩一区二区三区在线视频| 亚洲视频免费观看| 蜜臀va亚洲va欧美va天堂| 成人做爰69片免费看网站| 欧美日韩国产影片| 国产日本一区二区| 日本aⅴ免费视频一区二区三区 | 欧美三级在线视频| 国产日韩一级二级三级| 亚洲一区影音先锋| 成人一区二区三区视频| 日韩视频不卡中文| 亚洲一区二区高清| 国产精品系列在线观看| 欧美一区二区性放荡片| 一区二区免费在线播放| 国产一区二区三区在线观看精品 | 国产婷婷色一区二区三区四区| 午夜电影网亚洲视频| 色哟哟一区二区在线观看| 一色桃子久久精品亚洲| 91麻豆蜜桃一区二区三区| 国产精品久久久久久亚洲伦| 成人免费电影视频| 中文字幕日韩一区二区| 国内精品伊人久久久久av一坑| 91精品欧美福利在线观看| 一区二区三区四区在线| 波多野结衣的一区二区三区| 中文一区二区完整视频在线观看 | 国产精品系列在线观看| 精品奇米国产一区二区三区| 久久aⅴ国产欧美74aaa| 精品日产卡一卡二卡麻豆| 国产伦精品一区二区三区在线观看 | 成人免费毛片app| 国产日产欧美一区二区三区| 国产乱码精品1区2区3区| 欧美激情一区二区三区在线| caoporn国产精品| 亚洲天堂成人在线观看| 色婷婷香蕉在线一区二区| 亚洲mv在线观看| 日韩欧美中文一区| 国产传媒日韩欧美成人| 中文字幕一区二区三区视频| 99久久免费精品高清特色大片| 亚洲欧美激情插| 在线播放中文一区| 国内精品写真在线观看| 亚洲视频中文字幕| 欧美日韩亚洲另类| 韩国精品免费视频| 亚洲乱码精品一二三四区日韩在线| 91国产福利在线| 国产乱码字幕精品高清av| 亚洲欧美另类图片小说| 欧美一区二区黄色| 97se亚洲国产综合自在线不卡| 日韩高清一区在线| 国产精品久久久久久久岛一牛影视| 色老汉一区二区三区| 国产精品一区二区在线观看网站 | 久久草av在线| 一区二区三区鲁丝不卡| 久久这里只有精品6| 欧美视频一区在线| 国产成人在线免费观看| 日韩黄色免费电影| 亚洲欧美日韩在线| 久久久久久日产精品| 欧美日韩成人高清| 色婷婷综合久久久中文一区二区| 国产电影一区在线| 韩国女主播成人在线观看| 日韩二区三区在线观看| 一区二区三区免费| 亚洲视频一二三区| 国产精品二三区| 亚洲欧洲成人精品av97| 国产精品无码永久免费888| 日韩一二在线观看| 在线播放一区二区三区| 欧美日韩国产另类不卡| 欧美性猛交xxxxxx富婆| 一本色道亚洲精品aⅴ| 99riav久久精品riav| 91免费观看国产|