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

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

?? objbin.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*               CLIPS Version 6.24  05/17/06          */   /*                                                     */   /*                                                     */   /*******************************************************//*************************************************************//* Purpose: Binary Load/Save Functions for Classes and their *//*             message-handlers                              *//*                                                           *//* Principal Programmer(s):                                  *//*      Brian L. Donnell                                     *//*                                                           *//* Contributing Programmer(s):                               *//*                                                           *//* Revision History:                                         *//*      6.24: Removed IMPERATIVE_MESSAGE_HANDLERS and        *//*            AUXILIARY_MESSAGE_HANDLERS compilation flags.  *//*                                                           *//*************************************************************//* =========================================   *****************************************               EXTERNAL DEFINITIONS   =========================================   ***************************************** */#include <stdlib.h>#include "setup.h"#if OBJECT_SYSTEM && (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE)#include "bload.h"#include "bsave.h"#include "classcom.h"#include "classfun.h"#include "classini.h"#include "cstrcbin.h"#include "cstrnbin.h"#include "envrnmnt.h"#include "insfun.h"#include "memalloc.h"#include "modulbin.h"#include "msgcom.h"#include "msgfun.h"#include "prntutil.h"#include "router.h"#define _OBJBIN_SOURCE_#include "objbin.h"/* =========================================   *****************************************               MACROS AND TYPES   =========================================   ***************************************** */#define SlotIndex(p)             (((p) != NULL) ? (p)->bsaveIndex : -1L)#define SlotNameIndex(p)         (p)->bsaveIndex#define LinkPointer(i)           (((i) == -1L) ? NULL : (DEFCLASS **) &ObjectBinaryData(theEnv)->LinkArray[i])#define SlotPointer(i)           (((i) == -1L) ? NULL : (SLOT_DESC *) &ObjectBinaryData(theEnv)->SlotArray[i])#define TemplateSlotPointer(i)   (((i) == -1L) ? NULL : (SLOT_DESC **) &ObjectBinaryData(theEnv)->TmpslotArray[i])#define OrderedSlotPointer(i)    (((i) == -1L) ? NULL : (unsigned *) &ObjectBinaryData(theEnv)->MapslotArray[i])#define SlotNamePointer(i)       ((SLOT_NAME *) &ObjectBinaryData(theEnv)->SlotNameArray[i])#define HandlerPointer(i)        (((i) == -1L) ? NULL : (HANDLER *) &ObjectBinaryData(theEnv)->HandlerArray[i])#define OrderedHandlerPointer(i) (((i) == -1L) ? NULL : (unsigned *) &ObjectBinaryData(theEnv)->MaphandlerArray[i])typedef struct bsaveDefclassModule  {   struct bsaveDefmoduleItemHeader header;  } BSAVE_DEFCLASS_MODULE;typedef struct bsavePackedClassLinks  {   long classCount;   long classArray;  } BSAVE_PACKED_CLASS_LINKS;typedef struct bsaveDefclass  {   struct bsaveConstructHeader header;   unsigned abstract : 1;   unsigned reactive : 1;   unsigned system   : 1;   unsigned short id;   BSAVE_PACKED_CLASS_LINKS directSuperclasses,                            directSubclasses,                            allSuperclasses;   unsigned slotCount,localInstanceSlotCount,            instanceSlotCount,maxSlotNameID;   unsigned handlerCount;   long slots,        instanceTemplate,        slotNameMap,        handlers,        scopeMap;  } BSAVE_DEFCLASS;typedef struct bsaveSlotName  {   unsigned id,            hashTableIndex;   long name,        putHandlerName;  } BSAVE_SLOT_NAME;typedef struct bsaveSlotDescriptor  {   unsigned shared              : 1;   unsigned multiple            : 1;   unsigned composite           : 1;   unsigned noInherit           : 1;   unsigned noWrite             : 1;   unsigned initializeOnly      : 1;   unsigned dynamicDefault      : 1;   unsigned noDefault           : 1;   unsigned reactive            : 1;   unsigned publicVisibility    : 1;   unsigned createReadAccessor  : 1;   unsigned createWriteAccessor : 1;   long cls,        slotName,        defaultValue,        constraint,        overrideMessage;  } BSAVE_SLOT_DESC;typedef struct bsaveMessageHandler  {   unsigned system : 1;   unsigned type   : 2;   int minParams,       maxParams,       localVarCount;   long name,        cls,        actions;  } BSAVE_HANDLER;typedef struct handlerBsaveInfo  {   HANDLER *handlers;   unsigned *handlerOrderMap;   unsigned handlerCount;  } HANDLER_BSAVE_INFO;/* =========================================   *****************************************      INTERNALLY VISIBLE FUNCTION HEADERS   =========================================   ***************************************** */#if BLOAD_AND_BSAVEstatic void BsaveObjectsFind(void *);static void MarkDefclassItems(void *,struct constructHeader *,void *);static void BsaveObjectsExpressions(void *,FILE *);static void BsaveDefaultSlotExpressions(void *,struct constructHeader *,void *);static void BsaveHandlerActionExpressions(void *,struct constructHeader *,void *);static void BsaveStorageObjects(void *,FILE *);static void BsaveObjects(void *,FILE *);static void BsaveDefclass(void *,struct constructHeader *,void *);static void BsaveClassLinks(void *,struct constructHeader *,void *);static void BsaveSlots(void *,struct constructHeader *,void *);static void BsaveTemplateSlots(void *,struct constructHeader *,void *);static void BsaveSlotMap(void *,struct constructHeader *,void *);static void BsaveHandlers(void *,struct constructHeader *,void *);static void BsaveHandlerMap(void *,struct constructHeader *,void *);#endifstatic void BloadStorageObjects(void *);static void BloadObjects(void *);static void UpdatePrimitiveClassesMap(void *);static void UpdateDefclassModule(void *,void *,long);static void UpdateDefclass(void *,void *,long);static void UpdateLink(void *,void *,long);static void UpdateSlot(void *,void *,long);static void UpdateSlotName(void *,void *,long);static void UpdateTemplateSlot(void *,void *,long);static void UpdateHandler(void *,void *,long);static void ClearBloadObjects(void *);static void DeallocateObjectBinaryData(void *);/* =========================================   *****************************************          EXTERNALLY VISIBLE FUNCTIONS   =========================================   ***************************************** *//***********************************************************  NAME         : SetupObjectsBload  DESCRIPTION  : Initializes data structures and                   routines for binary loads of                   generic function constructs  INPUTS       : None  RETURNS      : Nothing useful  SIDE EFFECTS : Routines defined and structures initialized  NOTES        : None ***********************************************************/globle void SetupObjectsBload(  void *theEnv)  {   AllocateEnvironmentData(theEnv,OBJECTBIN_DATA,sizeof(struct objectBinaryData),DeallocateObjectBinaryData);      AddAbortBloadFunction(theEnv,"defclass",CreateSystemClasses,0);#if BLOAD_AND_BSAVE   AddBinaryItem(theEnv,"defclass",0,BsaveObjectsFind,BsaveObjectsExpressions,                             BsaveStorageObjects,BsaveObjects,                             BloadStorageObjects,BloadObjects,                             ClearBloadObjects);#endif#if BLOAD || BLOAD_ONLY   AddBinaryItem(theEnv,"defclass",0,NULL,NULL,NULL,NULL,                             BloadStorageObjects,BloadObjects,                             ClearBloadObjects);#endif  }  /*******************************************************//* DeallocateObjectBinaryData: Deallocates environment *//*    data for object binary functionality.            *//*******************************************************/static void DeallocateObjectBinaryData(  void *theEnv)  {   size_t space;   long i;#if (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE) && (! RUN_TIME)      space = (sizeof(DEFCLASS_MODULE) * ObjectBinaryData(theEnv)->ModuleCount);   if (space != 0) genfree(theEnv,(void *) ObjectBinaryData(theEnv)->ModuleArray,space);    if (ObjectBinaryData(theEnv)->ClassCount != 0)     {       if (DefclassData(theEnv)->ClassIDMap != NULL)        { rm(theEnv,(void *) DefclassData(theEnv)->ClassIDMap,(sizeof(DEFCLASS *) * DefclassData(theEnv)->AvailClassID)); }      for (i = 0L ; i < ObjectBinaryData(theEnv)->SlotCount ; i++)        {         if ((ObjectBinaryData(theEnv)->SlotArray[i].defaultValue != NULL) && (ObjectBinaryData(theEnv)->SlotArray[i].dynamicDefault == 0))           { rtn_struct(theEnv,dataObject,ObjectBinaryData(theEnv)->SlotArray[i].defaultValue); }        }      space = (sizeof(DEFCLASS) * ObjectBinaryData(theEnv)->ClassCount);      if (space != 0L)        { genfree(theEnv,(void *) ObjectBinaryData(theEnv)->DefclassArray,space); }      space = (sizeof(DEFCLASS *) * ObjectBinaryData(theEnv)->LinkCount);      if (space != 0L)        { genfree(theEnv,(void *) ObjectBinaryData(theEnv)->LinkArray,space); }      space = (sizeof(SLOT_DESC) * ObjectBinaryData(theEnv)->SlotCount);      if (space != 0L)        { genfree(theEnv,(void *) ObjectBinaryData(theEnv)->SlotArray,space); }      space = (sizeof(SLOT_NAME) * ObjectBinaryData(theEnv)->SlotNameCount);      if (space != 0L)        { genfree(theEnv,(void *) ObjectBinaryData(theEnv)->SlotNameArray,space); }      space = (sizeof(SLOT_DESC *) * ObjectBinaryData(theEnv)->TemplateSlotCount);      if (space != 0L)        { genfree(theEnv,(void *) ObjectBinaryData(theEnv)->TmpslotArray,space); }      space = (sizeof(unsigned) * ObjectBinaryData(theEnv)->SlotNameMapCount);      if (space != 0L)        { genfree(theEnv,(void *) ObjectBinaryData(theEnv)->MapslotArray,space); }     }   if (ObjectBinaryData(theEnv)->HandlerCount != 0L)     {      space = (sizeof(HANDLER) * ObjectBinaryData(theEnv)->HandlerCount);      if (space != 0L)        {         genfree(theEnv,(void *) ObjectBinaryData(theEnv)->HandlerArray,space);         space = (sizeof(unsigned) * ObjectBinaryData(theEnv)->HandlerCount);         genfree(theEnv,(void *) ObjectBinaryData(theEnv)->MaphandlerArray,space);        }     }#endif  }/***************************************************  NAME         : BloadDefclassModuleReference  DESCRIPTION  : Returns a pointer to the                 appropriate defclass module  INPUTS       : The index of the module  RETURNS      : A pointer to the module  SIDE EFFECTS : None  NOTES        : None ***************************************************/globle void *BloadDefclassModuleReference(  void *theEnv,  int theIndex)  {   return ((void *) &ObjectBinaryData(theEnv)->ModuleArray[theIndex]);  }/* =========================================   *****************************************          INTERNALLY VISIBLE FUNCTIONS   =========================================   ***************************************** */#if BLOAD_AND_BSAVE/***************************************************************************  NAME         : BsaveObjectsFind  DESCRIPTION  : For all classes and their message-handlers, this routine                   marks all the needed symbols and system functions.                 Also, it also counts the number of expression structures                   needed.  INPUTS       : None  RETURNS      : Nothing useful  SIDE EFFECTS : ExpressionCount (a global from BSAVE.C) is incremented                   for every expression needed                 Symbols are marked in their structures  NOTES        : Also sets bsaveIndex for each class (assumes classes                   will be bsaved in order of binary list) ***************************************************************************/static void BsaveObjectsFind(  void *theEnv)  {   register unsigned i;   SLOT_NAME *snp;   /* ========================================================      The counts need to be saved in case a bload is in effect      ======================================================== */      SaveBloadCount(theEnv,ObjectBinaryData(theEnv)->ModuleCount);      SaveBloadCount(theEnv,ObjectBinaryData(theEnv)->ClassCount);      SaveBloadCount(theEnv,ObjectBinaryData(theEnv)->LinkCount);      SaveBloadCount(theEnv,ObjectBinaryData(theEnv)->SlotNameCount);      SaveBloadCount(theEnv,ObjectBinaryData(theEnv)->SlotCount);      SaveBloadCount(theEnv,ObjectBinaryData(theEnv)->TemplateSlotCount);      SaveBloadCount(theEnv,ObjectBinaryData(theEnv)->SlotNameMapCount);      SaveBloadCount(theEnv,ObjectBinaryData(theEnv)->HandlerCount);   ObjectBinaryData(theEnv)->ModuleCount= 0L;   ObjectBinaryData(theEnv)->ClassCount = 0L;   ObjectBinaryData(theEnv)->SlotCount = 0L;   ObjectBinaryData(theEnv)->SlotNameCount = 0L;   ObjectBinaryData(theEnv)->LinkCount = 0L;   ObjectBinaryData(theEnv)->TemplateSlotCount = 0L;   ObjectBinaryData(theEnv)->SlotNameMapCount = 0L;   ObjectBinaryData(theEnv)->HandlerCount = 0L;   /* ==============================================      Mark items needed by defclasses in all modules      ============================================== */   ObjectBinaryData(theEnv)->ModuleCount =       DoForAllConstructs(theEnv,MarkDefclassItems,DefclassData(theEnv)->DefclassModuleIndex,                                    FALSE,NULL);   /* =============================================      Mark items needed by canonicalized slot names      ============================================= */   for (i = 0 ; i < SLOT_NAME_TABLE_HASH_SIZE ; i++)     for (snp = DefclassData(theEnv)->SlotNameTable[i] ; snp != NULL ; snp = snp->nxt)       {        if ((snp->id != ISA_ID) && (snp->id != NAME_ID))          {           snp->bsaveIndex = ObjectBinaryData(theEnv)->SlotNameCount++;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成熟亚洲日本毛茸茸凸凹| 中文字幕在线播放不卡一区| 香蕉成人啪国产精品视频综合网| 欧美午夜宅男影院| 日韩电影免费一区| 欧美一区二区久久| 韩国精品在线观看| 国产精品黄色在线观看| 91女厕偷拍女厕偷拍高清| 一区二区三区四区不卡在线| 欧美日韩一级二级三级| 看国产成人h片视频| 欧美—级在线免费片| 一本色道久久综合亚洲aⅴ蜜桃| 一区二区三区四区中文字幕| 4438x成人网最大色成网站| 激情欧美一区二区| 国产精品高潮久久久久无| 欧美无人高清视频在线观看| 精品在线观看免费| 中文字幕欧美一区| 日韩一区二区在线看片| 成人动漫av在线| 亚洲成精国产精品女| 久久亚洲精精品中文字幕早川悠里 | 色婷婷激情综合| 蜜桃av一区二区在线观看| 日本一区二区三级电影在线观看| 欧美亚洲一区二区在线| 激情综合网最新| 亚洲婷婷在线视频| 日韩一区二区三区观看| 91在线国内视频| 国产成人在线看| 亚洲第一在线综合网站| 中文字幕高清一区| 91精品国产综合久久久久久漫画 | www.亚洲在线| 污片在线观看一区二区 | 中文字幕亚洲在| 欧美精品久久天天躁| 丁香啪啪综合成人亚洲小说| 肉丝袜脚交视频一区二区| 中日韩av电影| 欧美xxxxx牲另类人与| 91尤物视频在线观看| 蜜臀av一区二区在线免费观看| 亚洲乱码日产精品bd| 欧美精品一区二区三区在线| a4yy欧美一区二区三区| 国产一区视频在线看| 日日骚欧美日韩| 一区二区欧美精品| 国产精品久久久久一区二区三区| 一本高清dvd不卡在线观看| 国产激情视频一区二区三区欧美| 蜜桃一区二区三区在线| 玉米视频成人免费看| 国产精品成人在线观看| 国产日产亚洲精品系列| 日韩欧美激情四射| 欧美日韩极品在线观看一区| 99这里都是精品| 国产精品1区2区| 国产一区视频网站| 国模大尺度一区二区三区| 久久不见久久见中文字幕免费| 午夜精品久久久久影视| 亚洲精品免费在线播放| 最好看的中文字幕久久| 国产精品久久精品日日| 国产精品女同一区二区三区| 国产午夜一区二区三区| 日韩欧美专区在线| 日韩一级大片在线观看| 91精品婷婷国产综合久久竹菊| 欧美人与z0zoxxxx视频| 69堂亚洲精品首页| 欧美一区二区不卡视频| 欧美一区二区三区四区久久| 欧美剧在线免费观看网站 | 91免费视频网| 91在线国产观看| 色猫猫国产区一区二在线视频| 色菇凉天天综合网| 91国产丝袜在线播放| 在线一区二区三区| 欧美在线观看一区二区| 7777精品伊人久久久大香线蕉 | 久久66热偷产精品| 国产一区亚洲一区| 成人avav影音| 在线精品视频一区二区| 欧美一区二区三区在线观看 | 欧美mv和日韩mv的网站| 久久久噜噜噜久噜久久综合| 国产精品麻豆一区二区 | 日本视频一区二区| 精品在线播放免费| 99精品国产一区二区三区不卡| 91国产免费观看| 日韩欧美一二三四区| 国产日产欧产精品推荐色| 亚洲女同一区二区| 麻豆成人免费电影| 国产成人日日夜夜| 色综合一个色综合| 欧美肥妇free| 久久精品一区蜜桃臀影院| 亚洲视频在线一区二区| 午夜精品久久久久久久久久久| 精品亚洲国内自在自线福利| 91在线看国产| 日韩精品专区在线| 亚洲日穴在线视频| 美女任你摸久久| 99视频精品在线| 精品国产一区二区三区四区四 | 国产欧美精品在线观看| 亚洲制服欧美中文字幕中文字幕| 久久精品国产精品亚洲精品| 色综合天天综合给合国产| 精品久久久久久久久久久久久久久久久 | 亚洲国产乱码最新视频| 国产乱国产乱300精品| 欧洲另类一二三四区| 国产日韩三级在线| 天天操天天干天天综合网| 成人一区在线看| 欧美电影免费观看高清完整版在线| 国产精品久久久爽爽爽麻豆色哟哟| 日韩一区精品字幕| 91视频精品在这里| 国产性做久久久久久| 美国av一区二区| 欧美专区在线观看一区| 国产人伦精品一区二区| 日韩影院精彩在线| 在线亚洲一区二区| 中文字幕欧美一区| 懂色一区二区三区免费观看| 91精品在线一区二区| 亚洲第一福利一区| 色婷婷国产精品综合在线观看| 久久精品欧美日韩| 久久精品999| 欧美精品亚洲二区| 亚洲自拍都市欧美小说| 91视频精品在这里| 中文字幕日本乱码精品影院| 国产精品影视天天线| 日韩女优电影在线观看| 日韩在线卡一卡二| 欧美福利视频导航| 亚洲自拍另类综合| 日本韩国欧美一区二区三区| 中文字幕在线观看不卡| 成人中文字幕电影| 日本一区二区免费在线| 国产精品一区二区三区四区| 精品国产第一区二区三区观看体验| 午夜精品久久久久久久久久| 欧美日韩aaa| 亚洲成人动漫av| 欧美性三三影院| 亚洲国产精品精华液网站| 欧美三级日本三级少妇99| 一区二区激情小说| 欧美性三三影院| 天堂资源在线中文精品| 欧美日韩高清一区| 亚洲午夜久久久久| 欧美亚洲尤物久久| 日韩高清国产一区在线| 7777精品伊人久久久大香线蕉完整版 | 亚洲精品欧美专区| 欧美三电影在线| 日本中文字幕一区二区视频| 777奇米四色成人影色区| 蜜桃视频一区二区| 国产亚洲欧美一区在线观看| 国产精品99久久久| 1区2区3区欧美| 欧美性极品少妇| 美女一区二区久久| 久久久一区二区三区捆绑**| 成人免费的视频| 亚洲一二三级电影| 日韩写真欧美这视频| 久久99在线观看| 国产精品色一区二区三区| 色欧美日韩亚洲| 蜜臀av性久久久久av蜜臀妖精| 国产亚洲精品aa午夜观看| 99视频精品在线| 日韩不卡免费视频| 久久久久久久久97黄色工厂| 91老司机福利 在线| 亚洲r级在线视频| 久久久www成人免费无遮挡大片|