Changeset 4ab28dc in git
- Timestamp:
- Feb 16, 2011, 7:46:51 PM (13 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 9f04ad074eb79dfc6f730e59b1ec34816c133461
- Parents:
- 5c3bc3a6d0bf51749fcdb814cb5faa401681046d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/blackbox.cc
r5c3bc3 r4ab28dc 6 6 7 7 //#define BLACKBOX_DEVEL 1 8 #define MAX_BB_TYPES 256 8 9 9 static blackbox* blackboxTable[ 100];10 static char * blackboxName[ 100];10 static blackbox* blackboxTable[MAX_BB_TYPES]; 11 static char * blackboxName[MAX_BB_TYPES]; 11 12 static int blackboxTableCnt=0; 12 13 #define BLACKBOX_OFFSET (MAX_TOK+1) … … 78 79 int setBlackboxStuff(blackbox *bb, const char *n) 79 80 { 80 blackboxTable[blackboxTableCnt]=bb; 81 blackboxName[blackboxTableCnt]=omStrDup(n); 81 int where=-1; 82 if (MAX_BB_TYPES<=blackboxTableCnt) 83 { 84 // second try, find empty slot from removed bb: 85 for (int i=0;i<MAX_BB_TYPES;i++) 86 { 87 if (blackboxTable[i]==NULL) { where=i; break; } 88 } 89 } 90 else 91 { 92 where=blackboxTableCnt; 93 blackboxTableCnt++; 94 } 95 if (where==-1) 96 { 97 WerrorS("too many bb types defined"); 98 return 0; 99 } 100 else 101 { 102 blackboxTable[where]=bb; 103 blackboxName[where]=omStrDup(n); 82 104 #ifdef BLACKBOX_DEVEL 83 Print("define bb:name=%s:rt=%d (table:cnt=%d)\n",blackboxName[blackboxTableCnt],blackboxTableCnt+BLACKBOX_OFFSET,blackboxTableCnt);105 Print("define bb:name=%s:rt=%d (table:cnt=%d)\n",blackboxName[where],where+BLACKBOX_OFFSET,where); 84 106 #endif 85 if (bb->blackbox_destroy==NULL) bb->blackbox_destroy=blackbox_default_destroy;86 if (bb->blackbox_String==NULL) bb->blackbox_String=blackbox_default_String;87 if (bb->blackbox_Print==NULL) bb->blackbox_Print=blackbox_default_Print;88 if (bb->blackbox_Init==NULL) bb->blackbox_Init=blackbox_default_Init;89 if (bb->blackbox_Copy==NULL) bb->blackbox_Copy=blackbox_default_Copy;90 if (bb->blackbox_Op1==NULL) bb->blackbox_Op1=blackboxDefaultOp1;91 if (bb->blackbox_Op2==NULL) bb->blackbox_Op2=blackboxDefaultOp2;92 if (bb->blackbox_Op3==NULL) bb->blackbox_Op3=blackbox_default_Op3;93 if (bb->blackbox_OpM==NULL) bb->blackbox_OpM=blackbox_default_OpM;94 if (bb->blackbox_Check==NULL) bb->blackbox_Check=blackbox_default_Check;95 blackboxTableCnt++;96 return blackboxTableCnt+BLACKBOX_OFFSET-1;107 if (bb->blackbox_destroy==NULL) bb->blackbox_destroy=blackbox_default_destroy; 108 if (bb->blackbox_String==NULL) bb->blackbox_String=blackbox_default_String; 109 if (bb->blackbox_Print==NULL) bb->blackbox_Print=blackbox_default_Print; 110 if (bb->blackbox_Init==NULL) bb->blackbox_Init=blackbox_default_Init; 111 if (bb->blackbox_Copy==NULL) bb->blackbox_Copy=blackbox_default_Copy; 112 if (bb->blackbox_Op1==NULL) bb->blackbox_Op1=blackboxDefaultOp1; 113 if (bb->blackbox_Op2==NULL) bb->blackbox_Op2=blackboxDefaultOp2; 114 if (bb->blackbox_Op3==NULL) bb->blackbox_Op3=blackbox_default_Op3; 115 if (bb->blackbox_OpM==NULL) bb->blackbox_OpM=blackbox_default_OpM; 116 if (bb->blackbox_Check==NULL) bb->blackbox_Check=blackbox_default_Check; 117 return where+BLACKBOX_OFFSET; 118 } 97 119 } 98 120 void removeBlackboxStuff(const int rt) 99 121 { 122 omfree(blackboxTable[rt-BLACKBOX_OFFSET]); 123 omfree(blackboxName[rt-BLACKBOX_OFFSET]); 100 124 blackboxTable[rt-BLACKBOX_OFFSET]=NULL; 101 125 blackboxName[rt-BLACKBOX_OFFSET]=NULL;
Note: See TracChangeset
for help on using the changeset viewer.