1 /* Code generated from eC source file: instance.ec */
3 typedef long long int64;
4 typedef unsigned long long uint64;
6 #define stdcall __attribute__((__stdcall__))
11 #elif defined(__TINYC__)
13 #define __builtin_va_list va_list
14 #define __builtin_va_start va_start
15 #define __builtin_va_end va_end
17 #define strcasecmp stricmp
18 #define strncasecmp strnicmp
19 #define __declspec(x) __attribute__((x))
20 #define stdcall __attribute__((__stdcall__))
25 typedef long long int64;
26 typedef unsigned long long uint64;
28 typedef __int64 int64;
29 typedef unsigned __int64 uint64;
32 #define __ENDIAN_PAD(x) (8 - (x))
34 #define __ENDIAN_PAD(x) 0
37 #include <sys/types.h>
39 #if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
45 #define arch_PointerSize sizeof(void *)
46 #define structSize_Instance (_64BIT ? 24 : 12)
47 #define structSize_Module (_64BIT ? 560 : 300)
48 #define structSize_BinaryTree (_64BIT ? 32 : 16)
49 #define structSize_OldList (_64BIT ? 32 : 20)
50 #define structSize_NamedLink64 (_64BIT ? 32 : 24)
51 #define structSize_ClassTemplateArgument (_64BIT ? 16 : 8)
52 #define structSize_ClassTemplateParameter (_64BIT ? 64 : 40)
53 #define structSize_OldLink (_64BIT ? 24 : 12)
54 #define structSize_BTNamedLink (_64BIT ? 48 : 24)
55 #define structSize_Application (_64BIT ? 800 : 428)
56 #define structSize_Watcher (_64BIT ? 32 : 16)
57 #define structSize_SelfWatcher (_64BIT ? 32 : 16)
58 #define structSize_GlobalFunction (_64BIT ? 72 : 36)
59 #define structSize_DefinedExpression (_64BIT ? 40 : 20)
60 #define structSize_BitMember (_64BIT ? 96 : 64)
61 #define structSize_NamedLink (_64BIT ? 32 : 16)
62 #define structSize_DataMember (_64BIT ? 160 : 96)
63 #define structSize_ClassProperty (_64BIT ? 80 : 40)
64 #define structSize_Method (_64BIT ? 96 : 52)
65 #define structSize_Property (_64BIT ? 152 : 88)
66 #define structSize_Class (_64BIT ? 624 : 376)
68 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
70 struct __ecereNameSpace__ecere__sys__BTNode;
72 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
74 struct __ecereNameSpace__ecere__sys__BinaryTree
76 struct __ecereNameSpace__ecere__sys__BTNode * root;
78 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
79 void (* FreeKey)(void * key);
80 } __attribute__ ((gcc_struct));
82 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
84 struct __ecereNameSpace__ecere__sys__OldList
91 } __attribute__ ((gcc_struct));
93 struct __ecereNameSpace__ecere__com__Class
95 struct __ecereNameSpace__ecere__com__Class * prev, * next;
97 int offset, structSize;
100 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
101 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
102 int offsetClass, sizeClass;
103 struct __ecereNameSpace__ecere__com__Class * base;
104 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
105 struct __ecereNameSpace__ecere__sys__BinaryTree members;
106 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
107 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
108 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
109 struct __ecereNameSpace__ecere__sys__OldList derivatives;
110 int memberID, startMemberID;
112 struct __ecereNameSpace__ecere__com__Instance * module;
113 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
114 char * dataTypeString;
115 struct __ecereNameSpace__ecere__com__Instance * dataType;
117 int defaultAlignment;
118 void (* Initialize)();
120 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
121 char * designerClass;
122 unsigned int noExpansion;
123 char * defaultProperty;
124 unsigned int comRedefinition;
126 unsigned int isRemote;
127 unsigned int internalDecl;
129 unsigned int computeSize;
131 int destructionWatchOffset;
133 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
134 int inheritanceAccess;
137 struct __ecereNameSpace__ecere__sys__OldList conversions;
138 struct __ecereNameSpace__ecere__sys__OldList templateParams;
139 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
140 struct __ecereNameSpace__ecere__com__Class * templateClass;
141 struct __ecereNameSpace__ecere__sys__OldList templatized;
143 unsigned int isInstanceClass;
144 unsigned int byValueSystemClass;
145 } __attribute__ ((gcc_struct));
147 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
149 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
151 struct __ecereNameSpace__ecere__com__Instance
154 struct __ecereNameSpace__ecere__com__Class * _class;
156 } __attribute__ ((gcc_struct));
158 struct __ecereNameSpace__ecere__com__Property
160 struct __ecereNameSpace__ecere__com__Property * prev, * next;
162 unsigned int isProperty;
165 struct __ecereNameSpace__ecere__com__Class * _class;
166 char * dataTypeString;
167 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
168 struct __ecereNameSpace__ecere__com__Instance * dataType;
169 void (* Set)(void *, int);
171 unsigned int (* IsSet)(void *);
175 unsigned int conversion;
176 unsigned int watcherOffset;
178 unsigned int compiled;
179 unsigned int selfWatchable, isWatchable;
180 } __attribute__ ((gcc_struct));
182 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
184 struct __ecereNameSpace__ecere__com__DataMember
186 struct __ecereNameSpace__ecere__com__DataMember * prev, * next;
188 unsigned int isProperty;
191 struct __ecereNameSpace__ecere__com__Class * _class;
192 char * dataTypeString;
193 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
194 struct __ecereNameSpace__ecere__com__Instance * dataType;
198 struct __ecereNameSpace__ecere__sys__OldList members;
199 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
202 } __attribute__ ((gcc_struct));
204 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
206 struct __ecereNameSpace__ecere__com__Method
209 struct __ecereNameSpace__ecere__com__Method * parent, * left, * right;
214 struct __ecereNameSpace__ecere__com__Class * _class;
216 char * dataTypeString;
217 struct __ecereNameSpace__ecere__com__Instance * dataType;
219 } __attribute__ ((gcc_struct));
221 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
223 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
225 struct __ecereNameSpace__ecere__com__SerialBuffer
227 unsigned char * _buffer;
231 } __attribute__ ((gcc_struct));
233 struct __ecereNameSpace__ecere__com__DataValue
248 } __attribute__ ((gcc_struct));
249 } __attribute__ ((gcc_struct));
251 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
253 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
259 char * dataTypeString;
260 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
261 } __attribute__ ((gcc_struct));
262 struct __ecereNameSpace__ecere__com__DataValue expression;
268 struct __ecereNameSpace__ecere__com__DataMember * member;
269 struct __ecereNameSpace__ecere__com__Property * prop;
270 struct __ecereNameSpace__ecere__com__Method * method;
271 } __attribute__ ((gcc_struct));
272 } __attribute__ ((gcc_struct));
273 } __attribute__ ((gcc_struct));
274 } __attribute__ ((gcc_struct));
276 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
278 void exit(int status);
280 void * calloc(size_t nmemb, size_t size);
282 void free(void * ptr);
284 void * malloc(size_t size);
286 void * realloc(void * ptr, size_t size);
288 long int strtol(const char * nptr, char ** endptr, int base);
290 long long int strtoll(const char * nptr, char ** endptr, int base);
292 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
294 typedef __builtin_va_list va_list;
298 FILE * bsl_stdin(void);
300 FILE * bsl_stdout(void);
302 FILE * bsl_stderr(void);
304 char * fgets(char * s, int size, FILE * stream);
306 FILE * fopen(const char * path, const char * mode);
308 int fclose(FILE * fp);
310 int fflush(FILE * stream);
312 int fgetc(FILE * stream);
314 int fprintf(FILE * stream, const char * format, ...);
316 int fputc(int c, FILE * stream);
318 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
320 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
322 int vsnprintf(char *, size_t, const char *, ...);
324 int snprintf(char * str, size_t, const char * format, ...);
326 int fseek(FILE * stream, long offset, int whence);
328 long ftell(FILE * stream);
330 int feof(FILE * stream);
332 int ferror(FILE * stream);
334 int fileno(FILE * stream);
337 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name);
339 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
341 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
343 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
345 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
347 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
349 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
351 extern int __ecereVMethodID_class_OnGetDataFromString;
353 unsigned int Instance_LocateModule(char * name, char * fileName);
355 void Instance_COM_Initialize(int argc, char ** argv, char ** parsedCommand, int * argcPtr, char *** argvPtr);
357 void * Instance_Module_Load(const char * libLocation, const char * name, void ** Load, void ** Unload);
359 void Instance_Module_Free(void * library);
361 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__unichar;
363 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max);
365 char * __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * tempString, void * fieldData, unsigned int * needClass)
367 __ecereNameSpace__ecere__sys__UTF32toUTF8Len(&(*this), 1, tempString, 5);
371 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes);
373 unsigned int __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * string)
377 (*this) = __ecereNameSpace__ecere__sys__UTF8GetChar(string, &nb);
381 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
383 void __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(char * loc)
387 void __ecereNameSpace__ecere__com__MemoryGuard_PopLoc()
391 extern unsigned int __ecereDll_Load_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
393 extern unsigned int __ecereDll_Unload_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
395 struct __ecereNameSpace__ecere__com__BTNamedLink
398 struct __ecereNameSpace__ecere__com__BTNamedLink * parent, * left, * right;
401 } __attribute__ ((gcc_struct));
403 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BTNamedLink;
405 struct __ecereNameSpace__ecere__com__SelfWatcher
407 struct __ecereNameSpace__ecere__com__SelfWatcher * prev, * next;
408 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *);
409 struct __ecereNameSpace__ecere__com__Property * _property;
410 } __attribute__ ((gcc_struct));
412 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SelfWatcher;
414 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AccessMode;
416 struct __ecereNameSpace__ecere__com__SubModule
418 struct __ecereNameSpace__ecere__com__SubModule * prev, * next;
419 struct __ecereNameSpace__ecere__com__Instance * module;
421 } __attribute__ ((gcc_struct));
423 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SubModule;
425 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMemberType;
427 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassType;
429 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Class_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Class_char__PTR_;
431 char * __ecereProp___ecereNameSpace__ecere__com__Class_Get_char__PTR_(struct __ecereNameSpace__ecere__com__Class * this)
436 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
438 struct __ecereNameSpace__ecere__com__Class * __ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_(char * value)
440 struct __ecereNameSpace__ecere__com__Class * theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, value);
445 char * __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this, char * tempString, void * fieldData, unsigned int * needClass)
450 struct __ecereNameSpace__ecere__com__NameSpace
453 struct __ecereNameSpace__ecere__com__NameSpace * btParent, * left, * right;
455 struct __ecereNameSpace__ecere__com__NameSpace * parent;
456 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
457 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
458 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
459 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
460 } __attribute__ ((gcc_struct));
462 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
464 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
466 struct __ecereNameSpace__ecere__com__Module
468 struct __ecereNameSpace__ecere__com__Instance * application;
469 struct __ecereNameSpace__ecere__sys__OldList classes;
470 struct __ecereNameSpace__ecere__sys__OldList defines;
471 struct __ecereNameSpace__ecere__sys__OldList functions;
472 struct __ecereNameSpace__ecere__sys__OldList modules;
473 struct __ecereNameSpace__ecere__com__Instance * prev;
474 struct __ecereNameSpace__ecere__com__Instance * next;
480 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
481 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
482 } __attribute__ ((gcc_struct));
484 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class ** this, char * string)
486 struct __ecereNameSpace__ecere__com__Class * theClass;
488 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
490 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, string);
491 (*this) = (void *)theClass;
492 return theClass != (((void *)0));
495 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
497 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_char__PTR_;
499 void __ecereMethod___ecereNameSpace__ecere__com__Class_OnSerialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this, struct __ecereNameSpace__ecere__com__Instance * channel)
501 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_char__PTR_, this->fullName);
504 void __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this)
508 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data);
510 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
512 void __ecereMethod___ecereNameSpace__ecere__com__Class_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class ** this, struct __ecereNameSpace__ecere__com__Instance * channel)
514 struct __ecereNameSpace__ecere__com__Class * theClass;
517 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &string);
518 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
520 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, string);
521 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
522 (*this) = (void *)theClass;
525 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType;
527 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType;
529 struct __ecereNameSpace__ecere__com__ClassTemplateParameter
531 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prev, * next;
536 char * dataTypeString;
538 } __attribute__ ((gcc_struct));
539 struct __ecereNameSpace__ecere__com__ClassTemplateArgument defaultArg;
541 } __attribute__ ((gcc_struct));
543 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter;
545 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MethodType;
547 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ImportType;
549 struct __ecereNameSpace__ecere__com__BitMember
551 struct __ecereNameSpace__ecere__com__BitMember * prev, * next;
553 unsigned int isProperty;
556 struct __ecereNameSpace__ecere__com__Class * _class;
557 char * dataTypeString;
558 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
559 struct __ecereNameSpace__ecere__com__Instance * dataType;
564 } __attribute__ ((gcc_struct));
566 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
568 struct __ecereNameSpace__ecere__com__ClassProperty
571 struct __ecereNameSpace__ecere__com__ClassProperty * parent, * left, * right;
573 void (* Set)(struct __ecereNameSpace__ecere__com__Class *, long long);
574 long long (* Get)(struct __ecereNameSpace__ecere__com__Class *);
575 char * dataTypeString;
576 struct __ecereNameSpace__ecere__com__Instance * dataType;
577 unsigned int constant;
578 } __attribute__ ((gcc_struct));
580 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassProperty;
582 struct __ecereNameSpace__ecere__com__DefinedExpression
584 struct __ecereNameSpace__ecere__com__DefinedExpression * prev, * next;
587 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
588 } __attribute__ ((gcc_struct));
590 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
592 struct __ecereNameSpace__ecere__com__GlobalFunction
594 struct __ecereNameSpace__ecere__com__GlobalFunction * prev, * next;
597 struct __ecereNameSpace__ecere__com__Instance * module;
598 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
599 char * dataTypeString;
600 struct __ecereNameSpace__ecere__com__Instance * dataType;
602 } __attribute__ ((gcc_struct));
604 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
606 struct __ecereNameSpace__ecere__com__EnumClassData
608 struct __ecereNameSpace__ecere__sys__OldList values;
610 } __attribute__ ((gcc_struct));
612 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__EnumClassData;
614 struct __ecereNameSpace__ecere__com__Watcher
616 struct __ecereNameSpace__ecere__com__Watcher * prev, * next;
617 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance *);
618 struct __ecereNameSpace__ecere__com__Instance * object;
619 } __attribute__ ((gcc_struct));
621 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Watcher;
623 static unsigned int __ecereNameSpace__ecere__com__TOTAL_MEM = 0;
625 static unsigned int __ecereNameSpace__ecere__com__OUTSIDE_MEM = 0;
627 struct __ecereNameSpace__ecere__com__MemBlock
629 struct __ecereNameSpace__ecere__com__MemBlock * prev, * next;
630 struct __ecereNameSpace__ecere__com__MemPart * part;
632 } __attribute__ ((gcc_struct));
634 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemBlock;
636 struct __ecereNameSpace__ecere__com__MemPart
641 struct __ecereNameSpace__ecere__com__BlockPool * pool;
642 } __attribute__ ((gcc_struct));
644 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemPart;
646 static int __ecereNameSpace__ecere__com__power15[] =
648 4, 8, 12, 16, 24, 32, 48, 64, 96, 144, 224, 320, 480, 720, 1072, 1600, 2400, 6900, 5408, 8096, 12144, 18208, 27312, 40976, 61456, 92176, 138256, 207392, 311088, 466624, 699920
651 struct __ecereNameSpace__ecere__com__BlockPool
653 struct __ecereNameSpace__ecere__com__MemBlock * first, * last;
654 struct __ecereNameSpace__ecere__com__MemBlock * free;
655 unsigned int blockSize;
656 unsigned int blockSpace;
659 unsigned int totalSize;
660 unsigned int usedSpace;
661 } __attribute__ ((gcc_struct));
663 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BlockPool;
665 unsigned int __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(struct __ecereNameSpace__ecere__com__BlockPool * this, unsigned int numBlocks)
667 unsigned char * memory = malloc(numBlocks * this->blockSpace);
669 __ecereNameSpace__ecere__com__TOTAL_MEM += numBlocks * this->blockSpace;
673 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)memory;
674 struct __ecereNameSpace__ecere__com__MemPart * part = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__MemPart));
676 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemPart);
678 for(c = 0; c < numBlocks - 1; c++)
681 block->prev = (((void *)0));
682 block->next = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)block + this->blockSpace);
685 part->blocksUsed = 0;
687 part->memory = memory;
688 part->size = numBlocks;
690 block->prev = (((void *)0));
691 block->next = (((void *)0));
692 this->totalSize += numBlocks;
699 struct __ecereNameSpace__ecere__com__MemBlock * __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(struct __ecereNameSpace__ecere__com__BlockPool * this)
702 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
705 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(this, (__simpleStruct0 = this->numBlocks / 2, (1 > __simpleStruct0) ? 1 : __simpleStruct0));
709 block->prev = this->last;
711 block->prev->next = block;
715 this->free = block->next;
716 block->next = (((void *)0));
717 block->part->blocksUsed++;
723 void __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove(struct __ecereNameSpace__ecere__com__BlockPool * this, struct __ecereNameSpace__ecere__com__MemBlock * block)
726 block->prev->next = block->next;
728 block->next->prev = block->prev;
729 if(this->first == block)
730 this->first = block->next;
731 if(this->last == block)
732 this->last = block->prev;
733 block->next = this->free;
735 block->part->blocksUsed--;
737 (*block->part->pool).usedSpace -= block->size;
738 if(!block->part->blocksUsed && this->numBlocks && this->totalSize > this->numBlocks + this->numBlocks / 2)
740 struct __ecereNameSpace__ecere__com__MemBlock * next = this->free, * prev = (((void *)0));
741 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
743 this->free = (((void *)0));
744 this->totalSize -= part->size;
747 if(next->part != part)
759 prev->next = (((void *)0));
760 __ecereNameSpace__ecere__com__TOTAL_MEM -= part->size * this->blockSpace;
761 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemPart);
768 static struct __ecereNameSpace__ecere__com__BlockPool * __ecereNameSpace__ecere__com__pools;
770 static unsigned int __ecereNameSpace__ecere__com__PosFibonacci(unsigned int number)
773 unsigned int last = 1, prev = 0;
774 unsigned int current = 1;
776 for(pos = 0; ; pos++)
781 if(current >= number)
787 static unsigned int __ecereNameSpace__ecere__com__NthFibonacci(unsigned int number)
790 unsigned int last = 1, prev = 0;
791 unsigned int current = 1;
793 for(pos = 0; pos <= number; pos++)
802 static unsigned int __ecereNameSpace__ecere__com__NextFibonacci(unsigned int number)
805 unsigned int last = 1, prev = 0;
806 unsigned int current = 1;
808 for(pos = 0; ; pos++)
813 if(current >= number)
818 static unsigned int __ecereNameSpace__ecere__com__log1_5i(unsigned int number)
821 uint64 current = sizeof(void *);
823 for(pos = 0; pos < 31; pos++)
825 if(current >= number)
827 current = current * 3 / 2;
834 static unsigned int __ecereNameSpace__ecere__com__pow1_5(unsigned int number)
837 uint64 current = sizeof(void *);
839 for(pos = 0; pos < number; pos++)
841 current = current * 3 / 2;
845 return (unsigned int)current;
848 static unsigned int __ecereNameSpace__ecere__com__pow1_5i(unsigned int number)
851 uint64 current = sizeof(void *);
853 for(pos = 0; pos < 31; pos++)
855 if(current >= number)
856 return (unsigned int)current;
857 current = current * 3 / 2;
861 return (unsigned int)current;
864 unsigned int __ecereNameSpace__ecere__com__log2i(unsigned int number)
868 for(power = 0; power < 32; power++)
869 if((1L << power) >= number)
874 unsigned int __ecereNameSpace__ecere__com__pow2i(unsigned int number)
876 return 1 << __ecereNameSpace__ecere__com__log2i(number);
879 static unsigned int __ecereNameSpace__ecere__com__memoryInitialized = 0x0;
881 static void __ecereNameSpace__ecere__com__InitMemory()
885 __ecereNameSpace__ecere__com__memoryInitialized = 0x1;
886 __ecereNameSpace__ecere__com__pools = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__BlockPool) * 31);
887 for(c = 0; c < 31; c++)
891 __ecereNameSpace__ecere__com__pools[c].blockSize = __ecereNameSpace__ecere__com__pow1_5(c);
892 if(__ecereNameSpace__ecere__com__pools[c].blockSize % sizeof(void *))
893 __ecereNameSpace__ecere__com__pools[c].blockSize += sizeof(void *) - (__ecereNameSpace__ecere__com__pools[c].blockSize % sizeof(void *));
894 __ecereNameSpace__ecere__com__pools[c].blockSpace = __ecereNameSpace__ecere__com__pools[c].blockSize;
895 __ecereNameSpace__ecere__com__pools[c].blockSpace += sizeof(struct __ecereNameSpace__ecere__com__MemBlock);
896 expansion = (__ecereNameSpace__ecere__com__pools[c].blockSize < 128) ? 1024 : (131072 / __ecereNameSpace__ecere__com__pools[c].blockSize);
898 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(&__ecereNameSpace__ecere__com__pools[c], ((1 > expansion) ? 1 : expansion));
902 unsigned int __ecereNameSpace__ecere__com__poolingDisabled;
904 static void * __ecereNameSpace__ecere__com___mymalloc(unsigned int size)
906 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
910 unsigned int p = __ecereNameSpace__ecere__com__log1_5i(size);
912 if(!__ecereNameSpace__ecere__com__memoryInitialized)
913 __ecereNameSpace__ecere__com__InitMemory();
914 if(!__ecereNameSpace__ecere__com__poolingDisabled && p < 31)
916 block = __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(&__ecereNameSpace__ecere__com__pools[p]);
920 __ecereNameSpace__ecere__com__pools[p].usedSpace += size;
925 block = malloc(sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
928 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
929 __ecereNameSpace__ecere__com__OUTSIDE_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
930 block->part = (((void *)0));
935 return block ? ((struct __ecereNameSpace__ecere__com__MemBlock *)block + 1) : (((void *)0));
938 extern void * memset(void * area, int value, size_t count);
940 static void * __ecereNameSpace__ecere__com___mycalloc(int n, unsigned int size)
942 void * pointer = __ecereNameSpace__ecere__com___mymalloc(n * size);
945 memset(pointer, 0, n * size);
949 static void __ecereNameSpace__ecere__com___myfree(void * pointer)
953 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock));
954 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
955 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
958 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove((&*pool), block);
961 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
962 __ecereNameSpace__ecere__com__OUTSIDE_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
968 extern void * memcpy(void * , const void * , size_t size);
970 static void * __ecereNameSpace__ecere__com___myrealloc(void * pointer, unsigned int size)
972 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
973 void * newPointer = (((void *)0));
974 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
975 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
981 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
982 unsigned int mod = ns % sizeof(void *);
985 ns += sizeof(void *) - mod;
986 if(ns == (*pool).blockSize)
988 newPointer = pointer;
989 (*pool).usedSpace += size - block->size;
995 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
999 __ecereNameSpace__ecere__com__TOTAL_MEM += size - newBlock->size;
1000 __ecereNameSpace__ecere__com__OUTSIDE_MEM += size - newBlock->size;
1001 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
1007 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
1008 if(pointer && newPointer)
1010 unsigned int __simpleStruct0;
1012 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
1013 __ecereNameSpace__ecere__com___myfree(pointer);
1019 static void * __ecereNameSpace__ecere__com___mycrealloc(void * pointer, unsigned int size)
1021 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
1022 void * newPointer = (((void *)0));
1023 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
1024 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
1030 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
1031 unsigned int mod = ns % sizeof(void *);
1034 ns += sizeof(void *) - mod;
1035 if(ns == (*pool).blockSize)
1037 int extra = size - block->size;
1039 newPointer = pointer;
1040 (*pool).usedSpace += extra;
1042 memset((unsigned char *)pointer + block->size, 0, extra);
1048 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
1052 int extra = size - newBlock->size;
1054 __ecereNameSpace__ecere__com__TOTAL_MEM += extra;
1055 __ecereNameSpace__ecere__com__OUTSIDE_MEM += extra;
1056 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
1058 memset((unsigned char *)newPointer + newBlock->size, 0, extra);
1059 newBlock->size = size;
1065 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
1070 unsigned int __simpleStruct0;
1072 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
1073 if(size > block->size)
1074 memset((unsigned char *)newPointer + block->size, 0, size - block->size);
1075 __ecereNameSpace__ecere__com___myfree(pointer);
1078 memset((unsigned char *)newPointer, 0, size);
1084 static void * __ecereNameSpace__ecere__com___malloc(unsigned int size)
1088 pointer = size ? __ecereNameSpace__ecere__com___mymalloc(size + 2 * 0) : (((void *)0));
1089 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1092 static void * __ecereNameSpace__ecere__com___calloc(int n, unsigned int size)
1096 pointer = (n * size) ? __ecereNameSpace__ecere__com___mycalloc(1, n * size + 2 * 0) : (((void *)0));
1097 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1100 static void __ecereNameSpace__ecere__com___free(void * pointer);
1102 static void * __ecereNameSpace__ecere__com___realloc(void * pointer, unsigned int size)
1106 __ecereNameSpace__ecere__com___free(pointer);
1107 return (((void *)0));
1109 pointer = __ecereNameSpace__ecere__com___myrealloc(pointer, size);
1110 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1113 static void * __ecereNameSpace__ecere__com___crealloc(void * pointer, unsigned int size)
1116 return (((void *)0));
1117 pointer = __ecereNameSpace__ecere__com___mycrealloc(pointer, size);
1118 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1121 static void __ecereNameSpace__ecere__com___free(void * pointer)
1125 __ecereNameSpace__ecere__com___myfree(pointer);
1129 void __ecereNameSpace__ecere__com__memswap(unsigned char * a, unsigned char * b, unsigned int size)
1132 unsigned char buffer[1024];
1134 for(c = 0; c < size; )
1136 int s = sizeof buffer;
1140 memcpy(buffer, a + c, s);
1141 memcpy(a + c, b + c, s);
1142 memcpy(b + c, buffer, s);
1147 void __ecereNameSpace__ecere__com__CheckMemory()
1151 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule);
1153 extern char * strchr(const char * , int);
1155 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
1157 struct __ecereNameSpace__ecere__sys__OldLink
1159 struct __ecereNameSpace__ecere__sys__OldLink * prev;
1160 struct __ecereNameSpace__ecere__sys__OldLink * next;
1162 } __attribute__ ((gcc_struct));
1164 extern char * __ecereNameSpace__ecere__sys__CopyString(char * string);
1166 extern void * memmove(void * , const void * , size_t size);
1168 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property);
1170 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
1172 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
1174 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
1176 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
1178 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * key);
1180 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1182 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1184 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1186 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(struct __ecereNameSpace__ecere__sys__OldList * this, void * prevItem, void * item);
1188 static void __ecereNameSpace__ecere__com__FixDerivativesBase(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Class * mod)
1190 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
1191 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1193 __ecereNameSpace__ecere__com__ComputeClassParameters(base, strchr(base->name, '<'), (((void *)0)));
1194 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
1196 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
1197 int type = _class->type;
1199 int size = _class->structSize - _class->offset;
1200 int oldSizeClass = _class->sizeClass;
1201 int sizeClass = _class->sizeClass - _class->offsetClass;
1202 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1203 char * dataTypeString = (((void *)0));
1204 struct __ecereNameSpace__ecere__com__Class * baseClass;
1205 unsigned int offsetBefore = _class->offset;
1206 int offsetClass, totalSizeClass;
1208 for(baseClass = base; baseClass->base; baseClass = baseClass->base)
1210 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1212 if(base->type == 1 && type == 0)
1217 if(base && (_class->type == 0 || _class->type == 5 || _class->type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1226 base = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, "enum");
1229 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1230 offsetClass = base ? (base->templateClass ? base->templateClass->sizeClass : base->sizeClass) : (type == 5 ? 0 : 0);
1231 totalSizeClass = offsetClass + sizeClass;
1232 if(type == 0 || type == 5)
1233 _class->offset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : ((type == 5) ? 0 : structSize_Instance);
1236 _class->memberOffset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : 0;
1237 _class->typeSize = _class->structSize = _class->memberOffset + size;
1239 else if(type == 2 || type == 4 || type == 3)
1241 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1244 _class->typeSize = dataTypeClass->typeSize;
1245 _class->structSize = 0;
1247 else if(type == 0 || type == 5)
1249 _class->structSize = _class->offset + size;
1250 _class->typeSize = sizeof(void *);
1252 if(_class->type != 1000)
1253 _class->type = type;
1254 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1255 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1256 if(totalSizeClass != oldSizeClass)
1258 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1259 memmove((unsigned char *)_class->data + mod->offsetClass, (unsigned char *)_class->data, totalSizeClass - mod->sizeClass);
1260 if(base->type != 1000 && base->type != 4)
1261 memcpy((unsigned char *)_class->data, (unsigned char *)base->data, totalSizeClass - _class->sizeClass);
1263 memset((unsigned char *)_class->data, 0, totalSizeClass - _class->sizeClass);
1265 _class->offsetClass = offsetClass;
1266 _class->sizeClass = totalSizeClass;
1268 struct __ecereNameSpace__ecere__com__Method * method, * next;
1269 struct __ecereNameSpace__ecere__com__Class * b;
1270 unsigned int needUpdate = (mod != (base->templateClass ? base->templateClass : base) || _class->vTblSize != mod->vTblSize);
1271 int updateStart = -1, updateEnd = -1;
1273 if(mod->base && mod->base->base && mod->base->vTblSize > baseClass->vTblSize && needUpdate)
1275 _class->vTblSize += mod->base->vTblSize - baseClass->vTblSize;
1276 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
1277 memmove(_class->_vTbl + mod->base->vTblSize, _class->_vTbl + baseClass->vTblSize, (_class->vTblSize - mod->vTblSize) * sizeof(void *));
1278 updateStart = baseClass->vTblSize;
1279 updateEnd = updateStart + mod->base->vTblSize - baseClass->vTblSize;
1280 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
1282 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
1283 if(method->type == 1)
1284 method->vid += mod->base->vTblSize - baseClass->vTblSize;
1287 for(b = mod->base; b && b != (((void *)0)); b = b->base)
1289 struct __ecereNameSpace__ecere__com__Method * vMethod;
1291 for(vMethod = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&b->methods); vMethod; vMethod = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)vMethod)))
1293 if(vMethod->type == 1)
1295 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, vMethod->name);
1298 if(method->function)
1299 _class->_vTbl[vMethod->vid] = method->function;
1302 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
1303 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1304 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
1308 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1309 method->type = vMethod->type;
1310 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(vMethod->dataTypeString);
1311 method->_class = vMethod->_class;
1314 else if((vMethod->vid >= updateStart && vMethod->vid < updateEnd) || _class->_vTbl[vMethod->vid] == b->_vTbl[vMethod->vid])
1315 _class->_vTbl[vMethod->vid] = _class->base->_vTbl[vMethod->vid];
1320 if(type == 0 || type == 5 || type == 1)
1322 struct __ecereNameSpace__ecere__com__Property * prop;
1323 struct __ecereNameSpace__ecere__com__DataMember * member;
1324 struct __ecereNameSpace__ecere__com__Class * c;
1326 for(c = mod->base; c; c = c->base)
1328 struct __ecereNameSpace__ecere__com__Property * _property;
1330 for(_property = c->membersAndProperties.first; _property; _property = _property->next)
1332 if(_property->isProperty)
1334 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
1339 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
1341 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
1343 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
1345 if(watcher->_property == prop)
1346 watcher->_property = _property;
1348 _property->selfWatchable = 0x1;
1349 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1350 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
1351 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
1352 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
1359 struct __ecereNameSpace__ecere__com__DataMember * next;
1361 for(member = _class->membersAndProperties.first; member; member = next)
1363 int offsetDiff = _class->offset - offsetBefore;
1365 next = member->next;
1366 if(!member->isProperty)
1368 if(oldType == 2 && type != 2)
1370 struct __ecereNameSpace__ecere__com__DataMember * prev = member->prev;
1372 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&_class->membersAndProperties, member);
1373 member = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eSystem_Renew0(member, sizeof(unsigned char) * (sizeof(struct __ecereNameSpace__ecere__com__DataMember)));
1374 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(&_class->membersAndProperties, prev, member);
1378 member->offset += offsetDiff;
1379 member->memberOffset += offsetDiff;
1382 member->id += mod->base->memberID;
1384 _class->memberID += mod->base->memberID;
1385 _class->startMemberID += mod->base->memberID;
1388 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, mod);
1390 struct __ecereNameSpace__ecere__com__Class * c;
1392 for(c = mod->base; c; c = c->base)
1394 struct __ecereNameSpace__ecere__com__ClassProperty * _property;
1396 for(_property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&c->classProperties); _property; _property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)_property)))
1398 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
1404 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1406 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
1408 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
1409 char * templateParams = strchr(template->name, '<');
1411 template->base = base->base;
1412 template->_vTbl = base->_vTbl;
1413 template->data = base->data;
1414 template->offset = base->offset;
1415 template->offsetClass = base->offsetClass;
1416 template->sizeClass = base->sizeClass;
1417 template->structSize = base->structSize;
1418 template->vTblSize = base->vTblSize;
1419 __ecereNameSpace__ecere__com__FixDerivativesBase(template, mod);
1424 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
1426 struct __ecereNameSpace__ecere__com__Application
1431 unsigned int isGUIApp;
1432 struct __ecereNameSpace__ecere__sys__OldList allModules;
1433 char * parsedCommand;
1434 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1435 } __attribute__ ((gcc_struct));
1437 extern int strcmp(const char * , const char * );
1439 extern char * strncpy(char * , const char * , size_t n);
1441 extern int printf(char * , ...);
1443 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base);
1445 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace);
1447 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset);
1449 extern char * strcpy(char * , const char * );
1451 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template);
1453 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg);
1455 extern char * strstr(const char * , const char * );
1457 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * a, char * b);
1459 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1461 struct __ecereNameSpace__ecere__sys__OldLink * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(struct __ecereNameSpace__ecere__sys__OldList * this, void * data);
1463 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1465 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char * name, char * baseName, int size, int sizeClass, unsigned int (* Constructor)(void *), void (* Destructor)(void *), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess)
1468 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
1469 unsigned int force64Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 2) ? 0x1 : 0x0;
1470 unsigned int force32Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 4) ? 0x1 : 0x0;
1471 unsigned int inCompiler = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 8) ? 0x1 : 0x0;
1472 unsigned int crossBits = force32Bits || force64Bits;
1473 unsigned int fixed = 0x0;
1475 if(inCompiler && crossBits)
1477 struct __ecereNameSpace__ecere__com__Class * c = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, name);
1481 else if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name && !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name, "ecereCOM"))
1485 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
1487 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
1489 for(c = 0; name[c]; c++)
1491 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
1493 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
1494 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
1496 strncpy(spaceName, name + start, c - start);
1497 spaceName[c - start] = '\0';
1498 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
1501 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
1502 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1503 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1504 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1505 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1506 (*newSpace).name = spaceName;
1507 (*newSpace).parent = nameSpace;
1508 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
1511 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
1512 nameSpace = newSpace;
1524 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (((void *)0));
1525 struct __ecereNameSpace__ecere__com__Class * _class = (((void *)0));
1526 char * dataTypeString = (((void *)0));
1527 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1528 struct __ecereNameSpace__ecere__com__Class * base = (baseName && baseName[0]) ? __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName) : (((void *)0));
1529 unsigned int refine = 0x0;
1530 struct __ecereNameSpace__ecere__com__Class * prevBase = (((void *)0));
1532 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1534 if(base->type == 1 && type == 0)
1539 if(base && (type == 0 || type == 5 || type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1543 if(!base || base->type == 1000 || base->isInstanceClass)
1547 if(base || !baseName || !baseName[0] || !strcmp(baseName, "unsigned int") || !strcmp(baseName, "uint") || !strcmp(baseName, "unsigned int64") || !strcmp(baseName, "uint64") || !strcmp(baseName, "int64") || !strcmp(baseName, "unsigned short") || !strcmp(baseName, "short") || !strcmp(baseName, "unsigned char") || !strcmp(baseName, "byte") || !strcmp(baseName, "char") || !strcmp(baseName, "uint32") || !strcmp(baseName, "uint16"))
1549 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1550 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1554 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1555 base->internalDecl = 0x1;
1557 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1560 else if(type == 1 && (!baseName || !baseName[0]))
1562 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "struct");
1563 dataTypeString = name + start;
1568 dataTypeString = "struct __ecereNameSpace__ecere__com__Instance";
1570 dataTypeString = "void *";
1572 dataTypeString = (baseName && baseName[0]) ? baseName : "unsigned int";
1574 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1576 dataTypeString = name + start;
1577 if(base || (!baseName || !baseName[0]) || type == 2 || type == 3)
1579 if(base || !baseName || !baseName[0] || !strcmp(baseName, "unsigned int") || !strcmp(baseName, "uint") || !strcmp(baseName, "unsigned int64") || !strcmp(baseName, "uint64") || !strcmp(baseName, "int64") || !strcmp(baseName, "unsigned short") || !strcmp(baseName, "short") || !strcmp(baseName, "unsigned char") || !strcmp(baseName, "byte") || !strcmp(baseName, "char") || !strcmp(baseName, "uint32") || !strcmp(baseName, "uint16"))
1581 if(type == 0 && strcmp(name, "ecere::com::Instance") && strcmp(name, "enum") && strcmp(name, "struct"))
1582 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::com::Instance");
1584 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
1599 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1602 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1604 offsetClass = base ? base->sizeClass : (type == 5 ? 0 : 0);
1605 totalSizeClass = offsetClass + sizeClass;
1606 if((_class = __ecereNameSpace__ecere__com__eSystem_FindClass(module, name)))
1608 if(!_class->internalDecl)
1611 printf("error: Redefinition of class %s\n", name);
1614 _class->comRedefinition = 0x1;
1617 return (((void *)0));
1619 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1620 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, name + start);
1621 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1623 struct __ecereNameSpace__ecere__sys__OldLink * t;
1625 for(t = _class->templatized.first; t; t = t->next)
1627 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1629 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1630 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1634 struct __ecereNameSpace__ecere__com__NameSpace * ns = _class->nameSpace;
1636 while((*ns).parent && !__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*ns).classes) && !__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*ns).functions) && !__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*ns).defines) && !__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*ns).nameSpaces))
1638 struct __ecereNameSpace__ecere__com__NameSpace * parent = (*ns).parent;
1640 __ecereNameSpace__ecere__com__NameSpace_Free(ns);
1641 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*parent).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)ns);
1649 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->privateNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1651 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->publicNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1653 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->privateNameSpace, name + start, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1655 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->publicNameSpace, name + start, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1657 _class = classLink->data;
1658 if(_class && _class->internalDecl)
1660 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1661 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1663 struct __ecereNameSpace__ecere__sys__OldLink * t;
1665 for(t = _class->templatized.first; t; t = t->next)
1667 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1669 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1670 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1674 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
1675 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1679 _class = __ecereNameSpace__ecere__com___calloc(1, sizeof(struct __ecereNameSpace__ecere__com__Class));
1680 _class->methods.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1681 _class->members.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1682 _class->prop.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1683 _class->classProperties.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1684 _class->name = __ecereNameSpace__ecere__sys__CopyString(name + start);
1685 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1690 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
1691 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
1693 __ecereInstance1->name = _class->name, __ecereInstance1->data = _class, __ecereInstance1;
1696 struct __ecereNameSpace__ecere__sys__OldLink * t;
1698 for(t = _class->templatized.first; t; t = t->next)
1700 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1702 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
1703 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
1705 __ecereInstance1->name = template->name, __ecereInstance1->data = template, __ecereInstance1;
1712 if(!base && baseName && strcmp(baseName, name))
1714 if(strchr(baseName, '<'))
1716 char templateClassName[1024];
1717 struct __ecereNameSpace__ecere__com__Class * templateBase;
1719 strcpy(templateClassName, baseName);
1720 *strchr(templateClassName, '<') = '\0';
1721 templateBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, templateClassName);
1724 templateBase = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, templateClassName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1725 templateBase->internalDecl = 0x1;
1727 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName);
1731 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1732 base->internalDecl = 0x1;
1736 _class->internalDecl = 0x0;
1739 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1740 if(base && base->type != 1000 && base->type != 4)
1741 memcpy(_class->data, base->data, offsetClass);
1743 memset(_class->data, 0, offsetClass);
1744 memset((unsigned char *)_class->data + offsetClass, 0, sizeClass);
1746 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1747 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1748 _class->defaultAlignment = base ? base->defaultAlignment : 0;
1751 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->classes, _class);
1755 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
1756 struct __ecereNameSpace__ecere__sys__OldLink * deriv = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(&base->derivatives, _class);
1758 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
1762 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes, _class);
1764 _class->nameSpace = nameSpace;
1766 struct __ecereNameSpace__ecere__sys__OldLink * t;
1768 for(t = _class->templatized.first; t; t = t->next)
1770 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1772 template->nameSpace = nameSpace;
1775 _class->module = module;
1776 prevBase = _class->base;
1777 _class->base = base;
1781 struct __ecereNameSpace__ecere__com__Class * sClass;
1783 for(sClass = base; sClass; sClass = sClass->base)
1785 if(sClass->templateClass)
1786 sClass = sClass->templateClass;
1787 numParams += sClass->templateParams.count;
1791 if(_class->templateArgs)
1793 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1795 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1796 _class->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
1797 _class->numParams = numParams;
1798 for(sClass = _class; sClass; sClass = sClass->base)
1800 struct __ecereNameSpace__ecere__com__Class * prevClass;
1801 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1804 if(sClass->templateClass)
1805 sClass = sClass->templateClass;
1806 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
1808 if(prevClass->templateClass)
1809 prevClass = prevClass->templateClass;
1810 id += prevClass->templateParams.count;
1812 if(base->templateArgs)
1814 for(param = sClass->templateParams.first; param; param = param->next)
1816 _class->templateArgs[id] = base->templateArgs[id];
1817 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &_class->templateArgs[id]);
1824 _class->memberID = _class->startMemberID = (base && (type == 0 || type == 5 || type == 1)) ? base->memberID : 0;
1825 if(type == 0 || type == 5)
1826 _class->offset = (base && base->structSize && base->type != 1000) ? base->structSize : ((type == 5) ? 0 : ((force64Bits && inCompiler && fixed) ? 24 : (force32Bits && inCompiler && fixed) ? 12 : structSize_Instance));
1829 if(!strcmp(name, "GNOSISSystem") || !strcmp(name, "LineStyle") || !strcmp(name, "FillStyle") || !strcmp(name, "FontObject") || !strcmp(name, "SymbolStyle"))
1831 _class->offset = force32Bits ? 24 : 12;
1833 else if(strstr(name, "ecere::sys::EARHeader") || strstr(name, "AnchorValue") || !strcmp(name, "ecere::com::CustomAVLTree") || !strcmp(name, "ecere::com::Array") || !strcmp(name, "ecere::gui::Window") || !strcmp(name, "ecere::sys::Mutex"))
1837 if(!strcmp(name, "ecere::sys::FileListing"))
1839 size = 3 * (force32Bits ? 4 : 8);
1840 _class->structAlignment = force32Bits ? 4 : 8;
1842 else if(!strcmp(name, "ecere::com::Class"))
1844 else if(!strcmp(name, "ecere::com::ClassProperty"))
1846 else if(!strcmp(name, "ecere::com::NameSpace"))
1848 else if(!strcmp(name, "ecere::sys::BufferedFile"))
1850 else if(!strcmp(name, "ecere::sys::BTNode"))
1852 else if(!strcmp(name, "ecere::sys::StringBTNode"))
1854 else if(!strcmp(name, "ecere::sys::OldList"))
1856 else if(!strcmp(name, "ecere::sys::Item"))
1858 else if(!strcmp(name, "ecere::sys::NamedLink"))
1860 else if(!strcmp(name, "ecere::sys::OldLink"))
1862 else if(!strcmp(name, "ecere::sys::NamedItem"))
1864 else if(!strcmp(name, "ecere::sys::NamedItem64"))
1866 else if(!strcmp(name, "ecere::sys::BinaryTree"))
1868 else if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application && inCompiler)
1870 if(fixed || type == 1)
1877 _class->memberOffset = (base && base->structSize && base->type != 1000) ? base->structSize : 0;
1878 _class->typeSize = _class->structSize = _class->memberOffset + size;
1880 else if(type == 2 || type == 4 || type == 3)
1882 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1885 _class->typeSize = dataTypeClass->typeSize;
1886 _class->structSize = 0;
1888 else if(type == 0 || type == 5)
1890 _class->structSize = _class->offset + size;
1891 _class->typeSize = sizeof(void *);
1893 _class->offsetClass = offsetClass;
1894 _class->sizeClass = totalSizeClass;
1895 _class->Constructor = (void *)Constructor;
1896 _class->Destructor = Destructor;
1897 if(_class->type != 1000)
1898 _class->type = type;
1900 _class->computeSize = 0x1;
1902 _class->computeSize = 0x0;
1903 _class->inheritanceAccess = inheritanceAccess;
1907 _class->base = base = enumBase;
1909 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1911 if(base && base->type != 4)
1914 data->largest = ((struct __ecereNameSpace__ecere__com__EnumClassData *)base->data)->largest;
1920 unsigned int oldSize = _class->vTblSize;
1922 if(base->vTblSize && _class->vTblSize < base->vTblSize)
1924 _class->vTblSize = base->vTblSize;
1925 _class->_vTbl = __ecereNameSpace__ecere__com___realloc(_class->_vTbl, sizeof(int (*)()) * _class->vTblSize);
1929 if(_class->type == 0 && strcmp(_class->name, "ecere::com::Instance") && strcmp(_class->name, "enum") && strcmp(_class->name, "struct"))
1930 prevBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::com::Instance");
1932 prevBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
1934 for(i = 0; i < base->vTblSize; i++)
1936 if(i >= oldSize || _class->_vTbl[i] == prevBase->_vTbl[i])
1937 _class->_vTbl[i] = base->_vTbl[i];
1942 struct __ecereNameSpace__ecere__sys__OldLink * link = (link = __ecereNameSpace__ecere__com__eSystem_New0(structSize_OldLink), link->data = _class, link);
1944 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->base->derivatives, link);
1946 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
1950 return (((void *)0));
1953 static void __ecereNameSpace__ecere__com__DataMember_Free(struct __ecereNameSpace__ecere__com__DataMember * parentMember)
1955 struct __ecereNameSpace__ecere__com__DataMember * member;
1956 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1958 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->name), parentMember->name = 0);
1959 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->dataTypeString), parentMember->dataTypeString = 0);
1960 while((member = parentMember->members.first))
1962 __ecereNameSpace__ecere__com__DataMember_Free(member);
1963 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&parentMember->members, member);
1965 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentMember->membersAlpha)))
1967 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentMember->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1971 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
1973 struct __ecereNameSpace__ecere__sys__NamedLink
1975 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
1976 struct __ecereNameSpace__ecere__sys__NamedLink * next;
1979 } __attribute__ ((gcc_struct));
1981 static void __ecereNameSpace__ecere__com__FreeEnumValue(struct __ecereNameSpace__ecere__sys__NamedLink * value)
1983 (__ecereNameSpace__ecere__com__eSystem_Delete(value->name), value->name = 0);
1986 static void __ecereNameSpace__ecere__com__FreeTemplateArg(struct __ecereNameSpace__ecere__com__Class * template, struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, int id)
1991 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1994 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
2001 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template)
2003 if(template->templateArgs)
2005 struct __ecereNameSpace__ecere__com__Class * _class;
2007 for(_class = template; _class; _class = _class->base)
2009 struct __ecereNameSpace__ecere__com__Class * prevClass;
2010 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2013 if(_class->templateClass)
2014 _class = _class->templateClass;
2015 for(prevClass = _class->base; prevClass; prevClass = prevClass->base)
2017 if(prevClass->templateClass)
2018 prevClass = prevClass->templateClass;
2019 id += prevClass->templateParams.count;
2021 if(id < template->numParams)
2023 for(param = _class->templateParams.first; param; param = param->next)
2028 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
2031 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
2043 static void __ecereNameSpace__ecere__com__FreeTemplate(struct __ecereNameSpace__ecere__com__Class * template)
2045 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
2047 if(template->nameSpace)
2049 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
2051 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
2053 __ecereNameSpace__ecere__com__FreeTemplateArgs(template);
2054 (__ecereNameSpace__ecere__com__eSystem_Delete(template->fullName), template->fullName = 0);
2055 (__ecereNameSpace__ecere__com__eSystem_Delete(template->name), template->name = 0);
2056 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs), template->templateArgs = 0);
2057 (__ecereNameSpace__ecere__com__eSystem_Delete(template->dataTypeString), template->dataTypeString = 0);
2058 while((deriv = template->derivatives.first))
2060 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
2061 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&template->derivatives, deriv);
2063 __ecereNameSpace__ecere__com___free(template);
2066 static void __ecereNameSpace__ecere__com__FreeTemplates(struct __ecereNameSpace__ecere__com__Class * _class)
2068 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
2070 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
2072 __ecereNameSpace__ecere__com__FreeTemplates(deriv->data);
2074 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
2075 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
2076 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2077 while((template = _class->templatized.first))
2079 __ecereNameSpace__ecere__com__FreeTemplates(template->data);
2080 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
2081 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
2085 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void * ));
2087 void __ecereNameSpace__ecere__com__eClass_Unregister(struct __ecereNameSpace__ecere__com__Class * _class)
2089 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
2090 struct __ecereNameSpace__ecere__com__DataMember * member;
2091 struct __ecereNameSpace__ecere__com__Method * method;
2092 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
2093 struct __ecereNameSpace__ecere__com__ClassProperty * classProp;
2094 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2096 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
2097 __ecereNameSpace__ecere__com__FreeTemplates(_class);
2098 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
2099 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
2100 while((template = _class->templatized.first))
2102 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
2103 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
2105 while((member = _class->membersAndProperties.first))
2107 if(!member->isProperty && (member->type == 1 || member->type == 2))
2108 __ecereNameSpace__ecere__com__DataMember_Free(member);
2109 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
2110 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
2111 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, member);
2113 while((member = _class->conversions.first))
2115 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
2116 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
2117 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->conversions, member);
2119 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->prop)))
2121 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
2123 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->members)))
2125 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
2127 while((classProp = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->classProperties)))
2129 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->name), classProp->name = 0);
2130 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->dataTypeString), classProp->dataTypeString = 0);
2131 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)classProp);
2133 while((method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods)))
2135 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
2136 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
2137 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
2139 if(_class->type == 4)
2141 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
2143 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&data->values, (void *)__ecereNameSpace__ecere__com__FreeEnumValue);
2145 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->delayedCPValues, (((void *)0)));
2146 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->selfWatchers, (((void *)0)));
2149 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
2151 for(deriv = base->derivatives.first; deriv; deriv = deriv->next)
2153 if(deriv->data == _class)
2157 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
2159 while((deriv = _class->derivatives.first))
2161 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
2162 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->derivatives, deriv);
2164 if(_class->nameSpace)
2166 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
2168 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
2170 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->name), _class->name = 0);
2171 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
2172 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2173 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->data), _class->data = 0);
2174 while((param = _class->templateParams.first))
2179 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.dataTypeString), param->defaultArg.dataTypeString = 0);
2182 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.memberString), param->defaultArg.memberString = 0);
2187 if(param->type != 1)
2188 (__ecereNameSpace__ecere__com__eSystem_Delete(param->dataTypeString), param->dataTypeString = 0);
2189 (__ecereNameSpace__ecere__com__eSystem_Delete(param->name), param->name = 0);
2190 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templateParams, param);
2192 __ecereNameSpace__ecere__com___free(_class);
2195 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find(struct __ecereNameSpace__ecere__sys__BinaryTree * this, uintptr_t key);
2197 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__ScanNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2199 struct __ecereNameSpace__ecere__sys__BinaryTree * tree = (struct __ecereNameSpace__ecere__sys__BinaryTree *)((unsigned char *)nameSpace + (unsigned int)listOffset);
2200 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find((&*tree), (uintptr_t)name);
2201 struct __ecereNameSpace__ecere__com__NameSpace * child;
2205 for(child = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&nameSpace->nameSpaces); child; child = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)child)))
2207 link = __ecereNameSpace__ecere__com__ScanNameSpace(child, name, listOffset);
2215 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2221 for(c = 0; (ch = name[c]); c++)
2227 if(level == 0 && (ch == '.' || (ch == ':' && name[c + 1] == ':')))
2229 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
2230 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
2232 memcpy(spaceName, name + start, c - start);
2233 spaceName[c - start] = '\0';
2234 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&nameSpace->nameSpaces, spaceName);
2235 __ecereNameSpace__ecere__com___free(spaceName);
2237 return (((void *)0));
2238 nameSpace = newSpace;
2239 if(level == 0 && ch == ':')
2246 return __ecereNameSpace__ecere__com__ScanNameSpace(nameSpace, name + start, listOffset);
2248 return (((void *)0));
2251 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchModule(struct __ecereNameSpace__ecere__com__Instance * module, char * name, void * listOffset, unsigned int searchPrivate)
2253 struct __ecereNameSpace__ecere__com__SubModule * subModule;
2254 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2258 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace, name, listOffset);
2262 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace, name, listOffset);
2265 for(subModule = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules.first; subModule; subModule = subModule->next)
2267 if(searchPrivate || subModule->importMode == 1)
2269 link = __ecereNameSpace__ecere__com__SearchModule(subModule->module, name, listOffset, 0x0);
2274 return (((void *)0));
2277 extern int isspace(int c);
2279 long long __ecereNameSpace__ecere__com___strtoi64(char * string, char ** endString, int base)
2281 long long value = 0;
2286 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2298 if(ch == '0' && string[c + 1] == 'x')
2311 for(; (ch = string[c]); c++)
2313 if(ch >= '0' && ch <= '9')
2315 else if(ch >= 'a' && ch <= 'z')
2317 else if(ch >= 'A' && ch <= 'Z')
2322 *endString = string + c;
2333 *endString = string + c;
2337 return sign * value;
2340 uint64 __ecereNameSpace__ecere__com___strtoui64(char * string, char ** endString, int base)
2347 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2359 if(ch == '0' && string[c + 1] == 'x')
2372 for(; (ch = string[c]); c++)
2374 if(ch >= '0' && ch <= '9')
2376 else if(ch >= 'a' && ch <= 'z')
2378 else if(ch >= 'A' && ch <= 'Z')
2383 *endString = string + c;
2394 *endString = string + c;
2398 return sign * value;
2401 extern char * strcat(char * , const char * );
2403 extern size_t strlen(const char * );
2405 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
2409 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2411 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2414 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2418 char noTemplateName[1024];
2419 char * templateParams = strchr(name, '<');
2423 strncpy(noTemplateName, name, templateParams - name);
2424 noTemplateName[templateParams - name] = '\0';
2427 strcpy(noTemplateName, name);
2428 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2430 link = __ecereNameSpace__ecere__com__SearchModule(module, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2433 struct __ecereNameSpace__ecere__com__Class * _class = link->data;
2434 struct __ecereNameSpace__ecere__com__Class * templatedClass = (((void *)0));
2435 char className[1024];
2437 strcpy(className, _class->fullName);
2438 strcat(className, templateParams);
2439 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2442 link = __ecereNameSpace__ecere__com__SearchModule(module, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2445 if(_class && templateParams)
2447 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct1 =
2451 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct0 =
2456 templatedClass = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Class);
2457 *templatedClass = *_class;
2458 templatedClass->templateClass = _class;
2459 templatedClass->fullName = __ecereNameSpace__ecere__sys__CopyString(className);
2460 templatedClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(_class->dataTypeString);
2461 templatedClass->name = __ecereNameSpace__ecere__sys__CopyString(templatedClass->fullName + strlen(_class->fullName) - strlen(_class->name));
2462 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*templatedClass->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
2463 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
2465 __ecereInstance1->name = templatedClass->name, __ecereInstance1->data = templatedClass, __ecereInstance1;
2467 templatedClass->templateArgs = (((void *)0));
2468 templatedClass->numParams = 0;
2469 templatedClass->derivatives = __simpleStruct0;
2470 templatedClass->templatized = __simpleStruct1;
2471 __ecereNameSpace__ecere__com__ComputeClassParameters(templatedClass, templateParams, module);
2472 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templatized, __extension__ ({
2473 struct __ecereNameSpace__ecere__sys__OldLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_OldLink);
2475 __ecereInstance1->data = templatedClass, __ecereInstance1;
2478 return templatedClass;
2482 return (((void *)0));
2485 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg)
2490 arg->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(arg->dataTypeString);
2495 arg->memberString = __ecereNameSpace__ecere__sys__CopyString(arg->memberString);
2500 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
2502 extern unsigned long strtoul(const char * nptr, char * * endptr, int base);
2504 extern double strtod(char * , char * * );
2506 extern int sprintf(char * , char * , ...);
2508 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos);
2510 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2512 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2514 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule)
2517 char * nextParamStart = templateParams ? (templateParams + 1) : (((void *)0));
2518 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * curParam = (((void *)0));
2519 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0)), * sClass;
2522 struct __ecereNameSpace__ecere__com__Class * _class = templatedClass->templateClass ? templatedClass->templateClass : templatedClass;
2524 for(sClass = _class; sClass; sClass = sClass->base)
2526 if(sClass->templateClass)
2527 sClass = sClass->templateClass;
2528 numParams += sClass->templateParams.count;
2530 if(templatedClass->templateArgs)
2531 __ecereNameSpace__ecere__com__FreeTemplateArgs(templatedClass);
2532 (__ecereNameSpace__ecere__com__eSystem_Delete(templatedClass->templateArgs), templatedClass->templateArgs = 0);
2533 templatedClass->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
2534 templatedClass->numParams = numParams;
2535 if(_class != templatedClass)
2538 if(templatedClass->base && templatedClass->base->templateArgs && _class == templatedClass)
2540 struct __ecereNameSpace__ecere__com__Class * sClass;
2542 memcpy(templatedClass->templateArgs, templatedClass->base->templateArgs, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams - templatedClass->templateParams.count));
2543 for(sClass = templatedClass->base; sClass; sClass = sClass->base)
2545 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2546 struct __ecereNameSpace__ecere__com__Class * prevClass;
2549 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
2551 if(prevClass->templateClass)
2552 prevClass = prevClass->templateClass;
2553 id += prevClass->templateParams.count;
2555 if(sClass->templateClass)
2556 sClass = sClass->templateClass;
2557 for(param = sClass->templateParams.first; param; param = param->next)
2558 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[id++]);
2561 while(nextParamStart)
2563 char * paramStart = nextParamStart;
2567 while(*paramStart == ' ')
2569 paramEnd = paramStart;
2570 while((ch = *paramEnd, ch && (level > 0 || (ch != '>' && ch != ','))))
2578 nextParamStart = (ch == ',') ? (paramEnd + 1) : (((void *)0));
2579 while(*paramEnd == ' ')
2581 if(paramEnd > paramStart)
2583 char * ptr, * equal = (((void *)0));
2585 for(ptr = paramStart; ptr <= paramEnd; ptr++)
2595 char * end = equal - 1;
2600 strncpy(ident, paramStart, end + 1 - paramStart);
2601 ident[end + 1 - paramStart] = (char)0;
2602 for(sClass = _class; sClass; sClass = sClass->base)
2604 if(sClass->templateClass)
2605 sClass = sClass->templateClass;
2606 for(curParam = sClass->templateParams.first; curParam; curParam = curParam->next)
2608 if(!strcmp(curParam->name, ident))
2613 struct __ecereNameSpace__ecere__com__Class * nextClass;
2614 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prevParam;
2617 for(prevParam = curParam->prev; prevParam; prevParam = prevParam->prev)
2619 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2621 if(nextClass->templateClass)
2622 nextClass = nextClass->templateClass;
2623 curParamID += nextClass->templateParams.count;
2634 curParam = curParam->next;
2639 for(sClass = lastClass ? lastClass->base : _class; sClass; sClass = sClass->base)
2641 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2644 if(sClass->templateClass)
2645 sClass = sClass->templateClass;
2646 for(param = sClass->templateParams.first; param; param = param->next, curParamID++)
2653 struct __ecereNameSpace__ecere__com__Class * nextClass;
2655 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2657 if(nextClass->templateClass)
2658 nextClass = nextClass->templateClass;
2659 curParamID += nextClass->templateParams.count;
2669 struct __ecereNameSpace__ecere__com__ClassTemplateArgument argument =
2678 while(*equal == ' ')
2680 memcpy(value, equal, paramEnd - equal);
2681 value[paramEnd - equal] = (char)0;
2685 memcpy(value, paramStart, paramEnd - paramStart);
2686 value[paramEnd - paramStart] = (char)0;
2688 __ecereNameSpace__ecere__sys__TrimRSpaces(value, value);
2689 switch(curParam->type)
2692 argument.dataTypeString = __ecereNameSpace__ecere__sys__CopyString(value);
2693 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, value);
2694 if(!argument.dataTypeClass)
2695 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application, value);
2696 if(!argument.dataTypeClass)
2697 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, value);
2701 struct __ecereNameSpace__ecere__com__Class * expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, curParam->dataTypeString);
2704 expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application, curParam->dataTypeString);
2707 ((unsigned int (*)(void *, void *, const char *))(void *)expClass->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(expClass, &argument.expression, value);
2709 else if(value[0] == '\"')
2711 char * endQuote = value + strlen(value) - 1;
2713 if(*endQuote != '\"')
2716 argument.expression.p = __ecereNameSpace__ecere__sys__CopyString(value + 1);
2718 else if(value[0] == '\'')
2721 unsigned int ch = __ecereNameSpace__ecere__sys__UTF8GetChar(value + 1, &nb);
2723 argument.expression.ui = ch;
2725 else if(!strcmp(curParam->dataTypeString, "uint"))
2727 argument.expression.ui = strtoul(value, (((void *)0)), 0);
2729 else if(!strcmp(curParam->dataTypeString, "char"))
2731 argument.expression.c = (char)strtol(value, (((void *)0)), 0);
2733 else if(!strcmp(curParam->dataTypeString, "byte"))
2735 argument.expression.uc = (unsigned char)strtoul(value, (((void *)0)), 0);
2737 else if(!strcmp(curParam->dataTypeString, "short"))
2739 argument.expression.s = (short)strtol(value, (((void *)0)), 0);
2741 else if(!strcmp(curParam->dataTypeString, "uint16"))
2743 argument.expression.us = (unsigned short)strtoul(value, (((void *)0)), 0);
2745 else if(!strcmp(curParam->dataTypeString, "int64"))
2747 argument.expression.i64 = __ecereNameSpace__ecere__com___strtoi64(value, (((void *)0)), 0);
2749 else if(!strcmp(curParam->dataTypeString, "uint64"))
2751 argument.expression.ui64 = __ecereNameSpace__ecere__com___strtoui64(value, (((void *)0)), 0);
2753 else if(!strcmp(curParam->dataTypeString, "float"))
2755 argument.expression.f = (float)strtod(value, (((void *)0)));
2757 else if(!strcmp(curParam->dataTypeString, "double"))
2759 argument.expression.d = strtod(value, (((void *)0)));
2763 argument.expression.i = strtol(value, (((void *)0)), 0);
2768 argument.memberString = __ecereNameSpace__ecere__sys__CopyString(value);
2771 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, curParam, curParamID);
2772 templatedClass->templateArgs[curParamID] = argument;
2776 if(templatedClass == _class)
2778 struct __ecereNameSpace__ecere__com__Class * sClass = _class;
2780 struct __ecereNameSpace__ecere__com__Class * nextClass;
2781 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2783 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2785 if(nextClass->templateClass)
2786 nextClass = nextClass->templateClass;
2787 curParamID += nextClass->templateParams.count;
2789 for(param = sClass->templateParams.first; param; param = param->next)
2791 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2793 templatedClass->templateArgs[curParamID] = param->defaultArg;
2794 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2795 if(param->type == 0 && param->defaultArg.dataTypeString)
2797 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2798 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2799 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, param->defaultArg.dataTypeString);
2800 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2801 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2807 if(templatedClass->base && templatedClass->base->templateArgs && numParams - _class->templateParams.count)
2809 int c = numParams - _class->templateParams.count - 1;
2811 for(sClass = _class->base; sClass; sClass = sClass->base)
2813 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2815 if(sClass->templateClass)
2816 sClass = sClass->templateClass;
2817 for(param = sClass->templateParams.last; param; param = param->prev)
2819 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2820 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * baseArg = &templatedClass->base->templateArgs[c];
2822 if(!(*arg).dataTypeString)
2824 *arg = templatedClass->base->templateArgs[c];
2825 __ecereNameSpace__ecere__com__CopyTemplateArg(param, arg);
2826 if(param->type == 0)
2828 if((*arg).dataTypeClass && strchr((*arg).dataTypeString, '<') && (*arg).dataTypeClass->templateArgs)
2830 struct __ecereNameSpace__ecere__com__Class * expClass = (*arg).dataTypeClass;
2831 struct __ecereNameSpace__ecere__com__Class * cClass = (((void *)0));
2834 char templateString[1024];
2836 sprintf(templateString, "%s<", expClass->templateClass->fullName);
2837 for(cClass = expClass; cClass; cClass = cClass->base)
2840 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2842 for(param = cClass->templateParams.first; param; param = param->next)
2845 struct __ecereNameSpace__ecere__com__Class * sClass;
2846 struct __ecereNameSpace__ecere__com__ClassTemplateArgument arg;
2848 for(sClass = expClass->base; sClass; sClass = sClass->base)
2849 id += sClass->templateParams.count;
2850 arg = expClass->templateArgs[id];
2852 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2853 int p = numParams - _class->templateParams.count;
2855 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2857 if(cParam->type == 0 && arg.dataTypeString && !strcmp(cParam->name, arg.dataTypeString))
2859 arg.dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2860 arg.dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2877 strcat(argument, arg.member->name);
2882 if(arg.dataTypeString)
2883 strcat(argument, arg.dataTypeString);
2890 strcat(templateString, ", ");
2891 if(lastParam != p - 1)
2893 strcat(templateString, param->name);
2894 strcat(templateString, " = ");
2896 strcat(templateString, argument);
2905 int len = strlen(templateString);
2907 if(templateString[len - 1] == '>')
2908 templateString[len++] = ' ';
2909 templateString[len++] = '>';
2910 templateString[len++] = '\0';
2912 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2913 (*arg).dataTypeString = __ecereNameSpace__ecere__sys__CopyString(templateString);
2914 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, templateString);
2915 if(!(*arg).dataTypeClass)
2916 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, templateString);
2920 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2921 int p = numParams - _class->templateParams.count;
2923 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2925 if(cParam->type == 0 && (*baseArg).dataTypeString && !strcmp(cParam->name, (*baseArg).dataTypeString))
2927 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2928 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2929 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2930 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2942 struct __ecereNameSpace__ecere__com__Class * sClass;
2944 for(sClass = _class; sClass; sClass = sClass->base)
2947 struct __ecereNameSpace__ecere__com__Class * nextClass;
2948 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2950 if(sClass->templateClass)
2951 sClass = sClass->templateClass;
2952 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2954 if(nextClass->templateClass)
2955 nextClass = nextClass->templateClass;
2956 curParamID += nextClass->templateParams.count;
2958 for(param = sClass->templateParams.first; param; param = param->next)
2960 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2962 templatedClass->templateArgs[curParamID] = param->defaultArg;
2963 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2964 if(param->type == 0 && param->defaultArg.dataTypeString)
2966 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2967 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2968 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, param->defaultArg.dataTypeString);
2969 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2970 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2978 int c = numParams - 1;
2980 for(sClass = _class; sClass; sClass = sClass->base)
2982 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2984 if(sClass->templateClass)
2985 sClass = sClass->templateClass;
2986 for(param = sClass->templateParams.last; param; param = param->prev)
2988 if(param->type == 0)
2990 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2991 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2992 struct __ecereNameSpace__ecere__com__Class * dClass;
2993 int p = numParams - 1;
2995 for(dClass = _class; dClass; dClass = dClass->base)
2997 if(dClass->templateClass)
2998 dClass = dClass->templateClass;
2999 for(cParam = dClass->templateParams.last; cParam; cParam = cParam->prev, p--)
3001 if(cParam->type == 0 && (*arg).dataTypeString && !strcmp(cParam->name, (*arg).dataTypeString))
3003 if(templatedClass->templateArgs[p].dataTypeString && c != p)
3005 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
3006 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
3007 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
3008 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
3019 struct __ecereNameSpace__ecere__com__Class * tClass;
3020 int c = numParams - 1;
3022 for(tClass = _class; tClass; tClass = tClass->base)
3024 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
3026 if(tClass->templateClass)
3027 tClass = tClass->templateClass;
3028 for(param = tClass->templateParams.last; param; param = param->prev)
3030 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
3032 if(param->type == 1 && (*arg).memberString)
3034 struct __ecereNameSpace__ecere__com__Class * memberClass = templatedClass;
3035 char * memberString = (*arg).memberString;
3036 char * colon = strstr(memberString, "::");
3037 char * memberName = memberString;
3040 memberName = colon + 2;
3043 memberString = param->defaultArg.memberString;
3044 colon = memberString ? strstr(memberString, "::") : (((void *)0));
3048 char className[1024];
3049 struct __ecereNameSpace__ecere__com__Class * sClass;
3051 memcpy(className, memberString, colon - memberString);
3052 className[colon - memberString] = '\0';
3053 for(sClass = _class; sClass; sClass = sClass->base)
3055 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
3056 struct __ecereNameSpace__ecere__com__Class * nextClass;
3059 if(sClass->templateClass)
3060 sClass = sClass->templateClass;
3061 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
3063 if(nextClass->templateClass)
3064 nextClass = nextClass->templateClass;
3065 id += nextClass->templateParams.count;
3067 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
3069 if(cParam->type == 0 && !strcmp(cParam->name, className) && templatedClass->templateArgs[id].dataTypeString)
3071 strcpy(className, templatedClass->templateArgs[id].dataTypeString);
3076 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, className);
3078 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, className);
3080 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, className);
3084 switch(param->memberType)
3087 (*arg).member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
3090 (*arg).method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
3093 (*arg).prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
3104 unsigned int __ecereNameSpace__ecere__com__DefaultFunction()
3109 unsigned int __ecereNameSpace__ecere__com__eClass_IsDerived(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
3111 if(!_class && !from)
3113 if(_class && from && (_class->templateClass || from->templateClass))
3115 if(__ecereNameSpace__ecere__com__eClass_IsDerived(_class->templateClass ? _class->templateClass : _class, from->templateClass ? from->templateClass : from))
3117 if(!from->templateClass)
3119 else if(!_class->templateClass && _class == from->templateClass)
3123 struct __ecereNameSpace__ecere__com__Class * sClass;
3125 for(sClass = from; sClass; sClass = sClass->base)
3127 if(sClass->templateParams.first)
3129 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
3130 struct __ecereNameSpace__ecere__com__Class * nextClass;
3133 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
3134 p += nextClass->templateParams.count;
3135 for(param = sClass->templateParams.first; param; param = param->next, p++)
3137 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &_class->templateArgs[p];
3138 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * fArg = &from->templateArgs[p];
3140 if(param->type == 0)
3142 if((*arg).dataTypeString != (*fArg).dataTypeString && (*arg).dataTypeString && (*fArg).dataTypeString && strcmp((*arg).dataTypeString, (*fArg).dataTypeString))
3145 else if(param->type == 1)
3147 if((*arg).member != (*fArg).member)
3150 else if(param->type == 2)
3152 if((*arg).expression.ui64 != (*fArg).expression.ui64)
3166 for(; _class && from; _class = _class->base)
3168 if(_class == from || _class->templateClass == from || ((_class->type == 1000 || (_class->type == 0 && _class->isInstanceClass)) && from->name && !strcmp(_class->name, from->name)))
3175 static void __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(struct __ecereNameSpace__ecere__com__Class * base, char * name, int vid, void * origFunction, char * type)
3177 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3179 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3181 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3182 struct __ecereNameSpace__ecere__com__Method * method, * next;
3183 void * function = origFunction;
3186 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3187 memmove(_class->_vTbl + vid + 1, _class->_vTbl + vid, (_class->vTblSize - vid - 1) * sizeof(void *));
3188 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3191 if(method->function)
3192 function = method->function;
3195 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
3196 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3197 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3201 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3203 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type);
3204 method->_class = base;
3207 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
3209 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
3210 if(method->type == 1)
3213 _class->_vTbl[vid] = function;
3215 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3217 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3219 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3221 template->_vTbl = _class->_vTbl;
3224 if(_class->derivatives.first || _class->templatized.first)
3225 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, vid, function, type);
3228 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3230 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
3232 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3234 template->_vTbl = base->_vTbl;
3235 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(template, name, vid, origFunction, type);
3240 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3242 if(_class && !_class->comRedefinition && name)
3244 struct __ecereNameSpace__ecere__com__Class * base;
3246 for(base = _class; base; base = base->base)
3248 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3252 if(method->type == 1)
3254 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3255 void * oldFunction = _class->_vTbl[method->vid];
3257 if(method->vid >= _class->vTblSize)
3258 printf("error: virtual methods overriding failure\n");
3260 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3261 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3263 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3265 if(derivClass->_vTbl[method->vid] == oldFunction)
3266 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3269 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3271 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3273 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3275 for(deriv = template->derivatives.first; deriv; deriv = deriv->next)
3277 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3279 if(derivClass->_vTbl[method->vid] == oldFunction)
3280 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3291 base = (((void *)0));
3299 struct __ecereNameSpace__ecere__com__Method * method = (method = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Method), method->name = __ecereNameSpace__ecere__sys__CopyString(name), method->function = function ? function : __ecereNameSpace__ecere__com__DefaultFunction, method->_class = _class, method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), method->memberAccess = declMode, method);
3301 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3305 return (((void *)0));
3308 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3310 if(_class && !_class->comRedefinition && name)
3312 struct __ecereNameSpace__ecere__com__Class * base;
3314 for(base = _class; base; base = base->base)
3316 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3320 if(method->type == 1)
3322 if(method->vid >= _class->vTblSize)
3323 printf("error: virtual methods overriding failure\n");
3325 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3328 base = (((void *)0));
3334 struct __ecereNameSpace__ecere__com__Method * method = (method = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Method), method->name = __ecereNameSpace__ecere__sys__CopyString(name), method->function = function ? function : __ecereNameSpace__ecere__com__DefaultFunction, method->type = 1, method->_class = _class, method->vid = _class->vTblSize++, method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), method->memberAccess = declMode, method);
3336 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3337 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3338 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3339 if(_class->derivatives.first || _class->templatized.first)
3340 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, method->vid, function ? function : (void *)__ecereNameSpace__ecere__com__DefaultFunction, type);
3344 return (((void *)0));
3347 static void __ecereNameSpace__ecere__com__FixDerivativeProperty(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Property * _property)
3349 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3351 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3353 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3354 struct __ecereNameSpace__ecere__com__Property * prop;
3355 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
3360 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
3362 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
3364 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
3366 if(watcher->_property == prop)
3367 watcher->_property = _property;
3369 _property->selfWatchable = 0x1;
3370 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
3371 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
3372 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
3373 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
3376 for(prop = _class->membersAndProperties.first; prop; prop = prop->next)
3379 _class->startMemberID++;
3380 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3384 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt, int declMode)
3386 struct __ecereNameSpace__ecere__com__Property * _property = (((void *)0));
3390 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, name ? name : dataType);
3393 _property = link->data;
3396 _property = __extension__ ({
3397 struct __ecereNameSpace__ecere__com__Property * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Property);
3399 __ecereInstance1->isProperty = 0x1, __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(name ? name : dataType), __ecereInstance1->id = (name && (setStmt || getStmt || dataType)) ? _class->memberID++ : 0, __ecereInstance1->Set = setStmt, __ecereInstance1->Get = getStmt, __ecereInstance1->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataType), __ecereInstance1->_class = _class, __ecereInstance1->compiled = 0x1, __ecereInstance1->conversion = name ? 0x0 : 0x1, __ecereInstance1->memberAccess = declMode, __ecereInstance1;
3402 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, _property);
3404 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->conversions, _property);
3405 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
3406 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
3408 __ecereInstance1->name = _property->name, __ecereInstance1->data = _property, __ecereInstance1;
3410 if(!_property->conversion)
3412 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3419 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink64;
3421 struct __ecereNameSpace__ecere__sys__NamedLink64
3423 struct __ecereNameSpace__ecere__sys__NamedLink64 * prev;
3424 struct __ecereNameSpace__ecere__sys__NamedLink64 * next;
3427 } __attribute__ ((gcc_struct));
3429 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property)
3431 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3432 struct __ecereNameSpace__ecere__sys__NamedLink64 * value, * next;
3434 for(value = _class->delayedCPValues.first; value; value = next)
3437 if(!strcmp(value->name, _property->name))
3439 _property->Set(_class, value->data);
3440 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->delayedCPValues, value);
3443 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3445 __ecereNameSpace__ecere__com__SetDelayedCPValues(deriv->data, _property);
3449 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_AddClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt)
3451 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name))
3453 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (_property = __ecereNameSpace__ecere__com__eSystem_New0(structSize_ClassProperty), _property->name = __ecereNameSpace__ecere__sys__CopyString(name), _property->Set = setStmt, _property->Get = getStmt, _property->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataType), _property);
3455 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)_property);
3456 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
3459 return (((void *)0));
3462 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_FindClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3464 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (((void *)0));
3468 struct __ecereNameSpace__ecere__com__Class * origClass = _class;
3470 for(; _class; _class = _class->base)
3472 _property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name);
3476 if(!_property && origClass->type == 4)
3478 struct __ecereNameSpace__ecere__com__Class * enumClass = __ecereNameSpace__ecere__com__eSystem_FindClass(origClass->module, "enum");
3480 _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(enumClass, name);
3486 long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3488 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3490 if(_property && _property->Get && _property->Get != (void *)1)
3492 long long result = _property->Get(_class);
3499 void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, long long value)
3501 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3506 ((void (*)(void *, long long))_property->Set)(_class, value);
3510 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->delayedCPValues, __extension__ ({
3511 struct __ecereNameSpace__ecere__sys__NamedLink64 * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink64);
3513 __ecereInstance1->name = name, __ecereInstance1->data = value, __ecereInstance1;
3518 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3522 for(; _class; _class = _class->base)
3524 struct __ecereNameSpace__ecere__com__Method * method;
3526 if(_class->templateClass)
3527 _class = _class->templateClass;
3528 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3529 if(method && (method->memberAccess == 1 || _class->module == module || !method->dataTypeString))
3531 if(!method->dataTypeString)
3533 if(_class->module != module)
3535 if(method->memberAccess == 1)
3536 module = _class->module;
3539 return (((void *)0));
3548 if(_class->inheritanceAccess == 2 && _class->module != module)
3552 return (((void *)0));
3555 static unsigned int __ecereNameSpace__ecere__com__ConstructInstance(void * instance, struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
3557 if(_class->templateClass)
3558 _class = _class->templateClass;
3559 if(_class->base && from != _class->base)
3561 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class->base, from))
3564 if(_class->Initialize)
3566 void (* Initialize)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)_class->Initialize;
3568 _class->Initialize = (((void *)0));
3569 Initialize(_class->module);
3571 if(_class->Constructor)
3573 if(!_class->Constructor(instance))
3575 for(; _class; _class = _class->base)
3577 if(_class->templateClass)
3578 _class = _class->templateClass;
3579 if(_class->Destructor)
3580 _class->Destructor(instance);
3585 (_class->templateClass ? _class->templateClass : _class)->count++;
3589 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class)
3591 struct __ecereNameSpace__ecere__com__Instance * instance = (((void *)0));
3596 int size = _class->structSize;
3597 int flags = (unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application + structSize_Module)))->isGUIApp;
3598 unsigned int inCompiler = (flags & 8) ? 0x1 : 0x0;
3599 unsigned int force32Bits = (flags & 4) ? 0x1 : 0x0;
3601 if(force32Bits && inCompiler)
3603 if(!strcmp(_class->name, "Module"))
3605 else if(_class->templateClass && !strcmp(_class->templateClass->name, "Map"))
3610 instance = __ecereNameSpace__ecere__com___calloc(1, size);
3612 if(_class->type == 0)
3614 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3615 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3617 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, (((void *)0))))
3619 __ecereNameSpace__ecere__com___free(instance);
3620 instance = (((void *)0));
3626 void __ecereNameSpace__ecere__com__eInstance_Evolve(struct __ecereNameSpace__ecere__com__Instance ** instancePtr, struct __ecereNameSpace__ecere__com__Class * _class)
3628 if(_class && instancePtr && *instancePtr)
3630 unsigned int wasApp = 0x0, wasGuiApp = 0x0;
3631 struct __ecereNameSpace__ecere__com__Instance * instance = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eSystem_Renew(*instancePtr, sizeof(unsigned char) * (_class->structSize));
3632 struct __ecereNameSpace__ecere__com__Class * fromClass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
3634 *instancePtr = instance;
3635 memset(((unsigned char *)instance) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->structSize, 0, _class->structSize - ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->structSize);
3636 if((wasApp = !strcmp(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->name, "Application")) || (wasGuiApp = !strcmp(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->name, "GuiApplication")))
3638 struct __ecereNameSpace__ecere__com__Instance * module;
3639 struct __ecereNameSpace__ecere__com__Instance * app = (struct __ecereNameSpace__ecere__com__Instance *)instance;
3640 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3641 struct __ecereNameSpace__ecere__com__Class * _class;
3642 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
3644 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
3645 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = app;
3646 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3648 struct __ecereNameSpace__ecere__sys__OldLink * t;
3650 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3651 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3653 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3655 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3658 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3660 struct __ecereNameSpace__ecere__sys__OldLink * t;
3662 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3663 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3665 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3667 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3670 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3671 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3672 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3673 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3674 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3675 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3676 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3677 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3678 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3679 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3680 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3681 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3682 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3684 struct __ecereNameSpace__ecere__sys__OldLink * t;
3686 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3687 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3689 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3691 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3694 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3695 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3696 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3697 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3698 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3699 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3700 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3701 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3702 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->classes.first; _class; _class = _class->next)
3704 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3706 _class->module = (struct __ecereNameSpace__ecere__com__Instance *)app;
3707 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3709 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3711 template->module = _class->module;
3714 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
3716 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes.first; _class; _class = _class->next)
3718 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3720 _class->module = module;
3721 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3723 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3725 template->module = _class->module;
3729 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->application = app;
3732 struct __ecereNameSpace__ecere__com__Class * base;
3734 for(base = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; base && base->type == 0 && base->count; base = base->base)
3735 (base->templateClass ? base->templateClass : base)->count--;
3737 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3738 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3739 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, fromClass))
3741 __ecereNameSpace__ecere__com___free(instance);
3742 *instancePtr = (((void *)0));
3747 void __ecereNameSpace__ecere__com__eInstance_Delete(struct __ecereNameSpace__ecere__com__Instance * instance)
3751 struct __ecereNameSpace__ecere__com__Class * _class, * base;
3752 unsigned int ownVtbl;
3754 ownVtbl = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl != ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl;
3755 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3757 if(_class->templateClass)
3758 _class = _class->templateClass;
3759 if(_class->destructionWatchOffset)
3761 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
3762 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
3764 for(watcher = (*watchers).first; watcher; watcher = next)
3766 next = watcher->next;
3767 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*watchers), watcher);
3768 watcher->callback(watcher->object, instance);
3769 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
3772 base = _class->base;
3773 if(base && (base->type == 1000 || base->isInstanceClass))
3774 base = (((void *)0));
3775 if(_class->Destructor)
3776 _class->Destructor(instance);
3778 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3780 if(_class->templateClass)
3781 _class = _class->templateClass;
3782 base = _class->base;
3783 (_class->templateClass ? _class->templateClass : _class)->count--;
3784 if(_class->type == 0 && !_class->count && !_class->module)
3786 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
3791 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl), ((struct __ecereNameSpace__ecere__com__Instance * )(char * )instance)->_vTbl = 0);
3793 __ecereNameSpace__ecere__com___free(instance);
3797 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3801 for(; _class; _class = _class->base)
3803 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3805 if(_class->templateClass)
3806 _class = _class->templateClass;
3807 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, name);
3810 struct __ecereNameSpace__ecere__com__Property * _property = (struct __ecereNameSpace__ecere__com__Property *)link->data;
3812 if(_property->memberAccess == 1 || _class->module == module || !_property->dataTypeString)
3814 if(!_property->dataTypeString)
3816 if(_class->module != module)
3818 if(_property->memberAccess == 1)
3819 module = _class->module;
3822 return (((void *)0));
3832 if(_class->inheritanceAccess == 2 && _class->module != module)
3836 return (((void *)0));
3839 static struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__FindDataMember(struct __ecereNameSpace__ecere__sys__OldList * list, struct __ecereNameSpace__ecere__sys__BinaryTree * alist, char * name, unsigned int * offset, int * id, unsigned int searchPrivate, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos)
3841 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3842 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3844 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(alist, name);
3847 dataMember = link->data;
3848 if(dataMember->type == 0 && (dataMember->memberAccess == 1 || searchPrivate || !dataMember->dataTypeString))
3851 *offset += dataMember->offset;
3853 *id = dataMember->id;
3856 return (((void *)0));
3858 for(dataMember = list->first; dataMember; dataMember = dataMember->next)
3860 if(!dataMember->isProperty && (dataMember->memberAccess == 1 || searchPrivate) && !dataMember->name && (dataMember->type == 1 || dataMember->type == 2))
3862 struct __ecereNameSpace__ecere__com__DataMember * childMember;
3864 if(subMemberStackPos)
3865 subMemberStack[(*subMemberStackPos)++] = dataMember;
3866 childMember = __ecereNameSpace__ecere__com__FindDataMember(&dataMember->members, &dataMember->membersAlpha, name, offset, id, searchPrivate, subMemberStack, subMemberStackPos);
3870 *offset += dataMember->offset;
3872 *id += dataMember->id;
3875 if(subMemberStackPos)
3876 (*subMemberStackPos)--;
3879 return (((void *)0));
3882 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos)
3884 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3886 if(subMemberStackPos)
3887 *subMemberStackPos = 0;
3890 for(; _class; _class = _class->base)
3892 if(_class->templateClass)
3893 _class = _class->templateClass;
3894 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3897 if(!dataMember->dataTypeString)
3899 if(_class->module != module)
3901 if(dataMember->memberAccess == 1)
3902 module = _class->module;
3905 return (((void *)0));
3908 dataMember = (((void *)0));
3912 dataMember->_class = _class->templateClass ? _class->templateClass : _class;
3916 if(_class->inheritanceAccess == 2 && _class->module != module)
3923 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMemberAndOffset(struct __ecereNameSpace__ecere__com__Class * _class, char * name, unsigned int * offset, struct __ecereNameSpace__ecere__com__Instance * module, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos)
3925 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3927 if(subMemberStackPos)
3928 *subMemberStackPos = 0;
3933 for(; _class; _class = _class->base)
3935 if(_class->templateClass)
3936 _class = _class->templateClass;
3937 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, offset, (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3940 if(!dataMember->dataTypeString)
3942 if(_class->module != module)
3944 if(dataMember->memberAccess == 1)
3945 module = _class->module;
3948 return (((void *)0));
3951 dataMember = (((void *)0));
3955 dataMember->_class = _class;
3959 if(_class->inheritanceAccess == 2 && _class->module != module)
3966 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMemberAndId(struct __ecereNameSpace__ecere__com__Class * _class, char * name, int * id, struct __ecereNameSpace__ecere__com__Instance * module, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos)
3968 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3970 if(subMemberStackPos)
3971 *subMemberStackPos = 0;
3974 for(; _class; _class = _class->base)
3976 if(_class->templateClass)
3977 _class = _class->templateClass;
3978 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), id, _class->module == module, subMemberStack, subMemberStackPos);
3981 if(!dataMember->dataTypeString)
3983 if(_class->module != module)
3985 if(dataMember->memberAccess == 1)
3986 module = _class->module;
3989 return (((void *)0));
3992 dataMember = (((void *)0));
3996 dataMember->_class = _class;
4000 if(_class->inheritanceAccess == 2 && _class->module != module)
4007 void __ecereNameSpace__ecere__com__eClass_FindNextMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class ** curClass, struct __ecereNameSpace__ecere__com__DataMember ** curMember, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos)
4011 *curMember = (*curMember)->next;
4012 if(subMemberStackPos && *subMemberStackPos > 0 && subMemberStack[*subMemberStackPos - 1]->type == 1)
4014 *curMember = subMemberStack[--(*subMemberStackPos)];
4015 *curMember = (*curMember)->next;
4017 if(subMemberStackPos && *subMemberStackPos > 0)
4019 while(*curMember && ((*curMember)->memberAccess == 2))
4020 *curMember = (*curMember)->next;
4023 while(*curMember && (*curMember)->name)
4025 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
4028 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
4029 if(dataMember && dataMember->memberAccess != 2)
4031 *curMember = dataMember;
4035 *curMember = (*curMember)->next;
4037 if(subMemberStackPos)
4039 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
4041 subMemberStack[(*subMemberStackPos)++] = *curMember;
4042 *curMember = (*curMember)->members.first;
4043 while(*curMember && ((*curMember)->memberAccess == 2))
4044 *curMember = (*curMember)->next;
4052 if(subMemberStackPos && *subMemberStackPos)
4054 *curMember = subMemberStack[--(*subMemberStackPos)];
4055 *curMember = (*curMember)->next;
4059 struct __ecereNameSpace__ecere__com__Class * lastCurClass = *curClass;
4061 if(*curClass == _class)
4063 for(*curClass = _class; (*curClass)->base != lastCurClass && (*curClass)->base->type != 1000 && (*curClass)->inheritanceAccess != 2; *curClass = (*curClass)->base)
4065 *curMember = (*curClass)->membersAndProperties.first;
4067 if(subMemberStackPos && *subMemberStackPos > 0)
4069 while(*curMember && ((*curMember)->memberAccess == 2))
4070 *curMember = (*curMember)->next;
4073 while(*curMember && (*curMember)->name)
4075 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
4078 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
4079 if(dataMember && dataMember->memberAccess != 2 && dataMember->id >= 0)
4081 *curMember = dataMember;
4085 *curMember = (*curMember)->next;
4087 if(subMemberStackPos)
4089 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
4091 subMemberStack[(*subMemberStackPos)++] = *curMember;
4092 *curMember = (*curMember)->members.first;
4093 while(*curMember && (*curMember)->memberAccess == 2)
4094 *curMember = (*curMember)->next;
4101 void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, char * name, void * function)
4103 if(instance && name)
4105 struct __ecereNameSpace__ecere__com__Class * _class;
4107 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4109 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
4111 if(method && method->type == 1)
4113 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl == ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl)
4115 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(void *) * ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->vTblSize);
4116 memcpy(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl, ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl, sizeof(int (*)()) * ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->vTblSize);
4118 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
4124 unsigned int __ecereNameSpace__ecere__com__eInstance_IsDerived(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Class * from)
4128 struct __ecereNameSpace__ecere__com__Class * _class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
4130 for(; _class; _class = _class->base)
4139 void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance)
4142 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount++;
4145 void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance)
4149 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount--;
4150 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount <= 0)
4152 __ecereNameSpace__ecere__com__eInstance_Delete(instance);
4157 static void __ecereNameSpace__ecere__com__FixOffsets(struct __ecereNameSpace__ecere__com__Class * _class)
4159 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
4161 _class->structSize += _class->base->structSize - _class->offset;
4162 _class->offset = _class->base->structSize;
4163 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
4164 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
4167 void __ecereNameSpace__ecere__com__eClass_Resize(struct __ecereNameSpace__ecere__com__Class * _class, int newSize)
4169 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
4171 _class->structSize = newSize;
4172 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
4173 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
4176 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, unsigned int size, unsigned int alignment, int declMode)
4180 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4182 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4186 int __simpleStruct0;
4188 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
4189 if(_class->memberOffset % alignment)
4190 _class->memberOffset += alignment - (_class->memberOffset % alignment);
4192 dataMember = __extension__ ({
4193 struct __ecereNameSpace__ecere__com__DataMember * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember);
4195 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(name), __ecereInstance1->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), __ecereInstance1->id = _class->memberID++, __ecereInstance1->_class = _class, __ecereInstance1->offset = _class->memberOffset, __ecereInstance1->memberOffset = size, __ecereInstance1->memberAccess = declMode, __ecereInstance1->membersAlpha.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, __ecereInstance1;
4197 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4198 _class->memberOffset += size;
4199 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4200 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4202 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4207 return (((void *)0));
4210 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_AddDataMember(struct __ecereNameSpace__ecere__com__DataMember * member, char * name, char * type, unsigned int size, unsigned int alignment, int declMode)
4212 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&member->membersAlpha, name))
4214 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4218 int __simpleStruct0;
4220 member->structAlignment = (__simpleStruct0 = member->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
4221 if(member->memberOffset % alignment)
4222 member->memberOffset += alignment - (member->memberOffset % alignment);
4224 dataMember = __extension__ ({
4225 struct __ecereNameSpace__ecere__com__DataMember * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember);
4227 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(name), __ecereInstance1->_class = member->_class, __ecereInstance1->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), __ecereInstance1->id = member->memberID++, __ecereInstance1->offset = (member->type == 1) ? 0 : member->memberOffset, __ecereInstance1->memberAccess = declMode, __ecereInstance1->membersAlpha.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, __ecereInstance1;
4229 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&member->members, dataMember);
4230 if(member->type == 1)
4232 if(size > member->memberOffset)
4233 member->memberOffset = size;
4236 member->memberOffset += size;
4237 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&member->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4238 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4240 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4244 return (((void *)0));
4247 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_New(int type, int declMode)
4249 return __extension__ ({
4250 struct __ecereNameSpace__ecere__com__DataMember * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember);
4252 __ecereInstance1->type = type, __ecereInstance1->memberAccess = declMode, __ecereInstance1->membersAlpha.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, __ecereInstance1;
4256 static void __ecereNameSpace__ecere__com__SetMemberClass(struct __ecereNameSpace__ecere__com__DataMember * member, struct __ecereNameSpace__ecere__com__Class * _class)
4258 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4260 member->_class = _class;
4261 for(dataMember = member->members.first; dataMember; dataMember = dataMember->next)
4262 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4265 unsigned int __ecereNameSpace__ecere__com__eMember_AddMember(struct __ecereNameSpace__ecere__com__DataMember * addTo, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4267 int __simpleStruct0, __simpleStruct1;
4269 if(dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&addTo->membersAlpha, dataMember->name))
4271 __ecereNameSpace__ecere__com__DataMember_Free(dataMember);
4272 ((dataMember ? (__ecereClass___ecereNameSpace__ecere__com__DataMember->Destructor ? __ecereClass___ecereNameSpace__ecere__com__DataMember->Destructor(dataMember) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(dataMember)) : 0), dataMember = 0);
4275 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&addTo->members, dataMember);
4276 if(dataMember->name)
4277 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&addTo->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4278 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4280 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4282 dataMember->_class = addTo->_class;
4283 dataMember->id = addTo->memberID;
4284 if(dataMember->type == 1)
4285 addTo->memberID += 1;
4287 addTo->memberID += dataMember->memberID;
4288 addTo->structAlignment = (__simpleStruct0 = addTo->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4289 dataMember->offset = (addTo->type == 1) ? 0 : addTo->memberOffset;
4290 if(addTo->type == 1)
4292 if(dataMember->memberOffset > addTo->memberOffset)
4293 addTo->memberOffset = dataMember->memberOffset;
4296 addTo->memberOffset += dataMember->memberOffset;
4300 unsigned int __ecereNameSpace__ecere__com__eClass_AddMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4302 int __simpleStruct0, __simpleStruct1;
4304 if(!_class || _class->comRedefinition || (dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, dataMember->name)))
4306 __ecereNameSpace__ecere__com__DataMember_Free(dataMember);
4307 ((dataMember ? (__ecereClass___ecereNameSpace__ecere__com__DataMember->Destructor ? __ecereClass___ecereNameSpace__ecere__com__DataMember->Destructor(dataMember) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(dataMember)) : 0), dataMember = 0);
4310 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4311 if(dataMember->name)
4312 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4313 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4315 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4317 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4318 dataMember->id = _class->memberID;
4319 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4320 if(dataMember->type == 1)
4321 _class->memberID += 1;
4323 _class->memberID += dataMember->memberID;
4324 dataMember->offset = _class->memberOffset;
4325 _class->memberOffset += dataMember->memberOffset;
4329 struct __ecereNameSpace__ecere__com__BitMember * __ecereNameSpace__ecere__com__eClass_AddBitMember(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, int bitSize, int bitPos, int declMode)
4331 if(_class && name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4335 struct __ecereNameSpace__ecere__com__BitMember * bitMember = (bitMember = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BitMember), bitMember->name = __ecereNameSpace__ecere__sys__CopyString(name), bitMember->_class = _class, bitMember->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), bitMember->id = _class->memberID++, bitMember->memberAccess = declMode, bitMember);
4337 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, bitMember);
4340 bitMember->pos = (bitPos == -1) ? _class->memberOffset : bitPos;
4341 bitMember->size = bitSize;
4342 _class->memberOffset = bitMember->pos + bitMember->size;
4343 for(c = 0; c < bitSize; c++)
4349 bitMember->mask = mask << bitMember->pos;
4351 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4352 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4354 __ecereInstance1->name = bitMember->name, __ecereInstance1->data = bitMember, __ecereInstance1;
4358 return (((void *)0));
4361 extern char * __ecereNameSpace__ecere__sys__GetLastDirectory(char * string, char * output);
4363 extern char * __ecereNameSpace__ecere__sys__GetExtension(char * string, char * output);
4365 extern unsigned int __ecereNameSpace__ecere__sys__StripExtension(char * string);
4367 extern int strcasecmp(const char * , const char * );
4369 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__Module_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess, unsigned int ensureCOM)
4371 unsigned int (stdcall * Load)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4372 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4373 struct __ecereNameSpace__ecere__com__Instance * module;
4375 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4377 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4380 if(ensureCOM && (!strcmp(name, "ecereCOM") || !strcmp(name, "ecere")))
4382 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4384 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecere") || !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecereCOM"))
4390 void * library = (((void *)0));
4392 if(ensureCOM && !strcmp(name, "ecereCOM"))
4394 Load = __ecereDll_Load_ecere;
4395 Unload = __ecereDll_Unload_ecere;
4399 char * libLocation = (((void *)0));
4401 library = Instance_Module_Load(libLocation, name, &Load, &Unload);
4405 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4406 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4407 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library = library;
4409 char moduleName[274];
4412 __ecereNameSpace__ecere__sys__GetLastDirectory(name, moduleName);
4413 __ecereNameSpace__ecere__sys__GetExtension(moduleName, ext);
4414 __ecereNameSpace__ecere__sys__StripExtension(moduleName);
4415 if((!(strcasecmp)(ext, "dylib") || !(strcasecmp)(ext, "so")) && strstr(moduleName, "lib") == moduleName)
4417 int len = strlen(moduleName) - 3;
4419 memmove(moduleName, moduleName + 3, len);
4420 moduleName[len] = (char)0;
4422 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(moduleName);
4424 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = Unload;
4425 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType = 0;
4428 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4429 module = (((void *)0));
4432 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4434 if(ensureCOM && !strcmp(name, "ecere") && module)
4436 name = !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecereCOM") ? "ecere" : "ecereCOM";
4437 if((!Load && !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecereCOM")) || (Load && (!__thisModule || !((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name || !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name, "ecereCOM")) && Load != __ecereDll_Load_ecere))
4439 struct __ecereNameSpace__ecere__com__Instance * module;
4441 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4443 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4448 Load = __ecereDll_Load_ecere;
4449 Unload = __ecereDll_Unload_ecere;
4450 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4451 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4452 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library = (((void *)0));
4453 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4454 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = Unload;
4457 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4458 module = (((void *)0));
4460 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4466 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, __extension__ ({
4467 struct __ecereNameSpace__ecere__com__SubModule * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule);
4469 __ecereInstance1->module = module, __ecereInstance1->importMode = importAccess, __ecereInstance1;
4472 module->_refCount++;
4480 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, __extension__ ({
4481 struct __ecereNameSpace__ecere__com__SubModule * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule);
4483 __ecereInstance1->module = module, __ecereInstance1->importMode = importAccess, __ecereInstance1;
4486 module->_refCount++;
4491 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4493 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x1);
4496 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_LoadStrict(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4498 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x0);
4501 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_LoadStatic(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess, unsigned int (* Load)(struct __ecereNameSpace__ecere__com__Instance * module), unsigned int (* Unload)(struct __ecereNameSpace__ecere__com__Instance * module))
4503 struct __ecereNameSpace__ecere__com__Instance * module;
4505 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4507 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4514 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4515 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4516 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4517 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType = 1;
4518 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = (void *)Unload;
4521 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4522 module = (((void *)0));
4525 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4531 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, __extension__ ({
4532 struct __ecereNameSpace__ecere__com__SubModule * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule);
4534 __ecereInstance1->module = module, __ecereInstance1->importMode = importAccess, __ecereInstance1;
4537 module->_refCount++;
4542 void __ecereNameSpace__ecere__com__eModule_Unload(struct __ecereNameSpace__ecere__com__Instance * fromModule, struct __ecereNameSpace__ecere__com__Instance * module)
4544 struct __ecereNameSpace__ecere__sys__OldLink * m;
4546 for(m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules.first; m; m = m->next)
4548 if(m->data == module)
4553 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, m);
4554 (__ecereNameSpace__ecere__com__eInstance_DecRef(module), module = 0);
4558 void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value)
4560 if(_class && _class->type == 4)
4562 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4563 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4565 for(item = data->values.first; item; item = item->next)
4566 if(!strcmp(item->name, string))
4570 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&data->values, __extension__ ({
4571 struct __ecereNameSpace__ecere__sys__NamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink);
4573 __ecereInstance1->data = (void *)value, __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(string), __ecereInstance1;
4575 if(value > data->largest)
4576 data->largest = value;
4581 int __ecereNameSpace__ecere__com__eEnum_AddValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string)
4583 if(_class && _class->type == 4)
4585 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4586 int value = data->largest + 1;
4587 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4589 for(item = data->values.first; item; item = item->next)
4590 if(!strcmp(item->name, string))
4594 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&data->values, __extension__ ({
4595 struct __ecereNameSpace__ecere__sys__NamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink);
4597 __ecereInstance1->data = (void *)value, __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(string), __ecereInstance1;
4599 if(value > data->largest)
4600 data->largest = value;
4607 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace)
4609 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
4611 (__ecereNameSpace__ecere__com__eSystem_Delete(parentNameSpace->name), parentNameSpace->name = 0);
4612 while((nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentNameSpace->nameSpaces)))
4614 __ecereNameSpace__ecere__com__NameSpace_Free(nameSpace);
4615 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentNameSpace->nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace);
4619 static void __ecereNameSpace__ecere__com__Application_Destructor(struct __ecereNameSpace__ecere__com__Instance * app)
4621 if(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->parsedCommand)
4623 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->argv), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + structSize_Module)))->argv = 0);
4624 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->parsedCommand), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + structSize_Module)))->parsedCommand = 0);
4628 static unsigned int __ecereNameSpace__ecere__com__Module_Constructor(struct __ecereNameSpace__ecere__com__Instance * module)
4630 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4631 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4632 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4633 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4634 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4635 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4636 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4637 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4641 static void __ecereNameSpace__ecere__com__Module_Destructor(struct __ecereNameSpace__ecere__com__Instance * module)
4643 struct __ecereNameSpace__ecere__com__Class * _class;
4644 struct __ecereNameSpace__ecere__com__DefinedExpression * def;
4645 struct __ecereNameSpace__ecere__com__GlobalFunction * function;
4646 struct __ecereNameSpace__ecere__com__Instance * m;
4647 struct __ecereNameSpace__ecere__com__SubModule * handle;
4649 for(m = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->allModules.first; m; m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + structSize_Instance)))->next)
4651 struct __ecereNameSpace__ecere__com__SubModule * next;
4653 for(handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + structSize_Instance)))->modules.first; handle; handle = next)
4655 next = handle->next;
4656 if(handle->module == module)
4657 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + structSize_Instance)))->modules, handle);
4660 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload)
4662 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType == 1)
4664 unsigned int (* Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload;
4670 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload;
4676 struct __ecereNameSpace__ecere__com__Instance * ourWorld = __ecereClass___ecereNameSpace__ecere__com__Class->module;
4677 void * ourHandle = (((void *)0));
4679 while((handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules.last))
4681 struct __ecereNameSpace__ecere__com__Instance * depModule = handle->module;
4683 if(depModule == ourWorld)
4685 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules, handle);
4690 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules, handle);
4691 (__ecereNameSpace__ecere__com__eInstance_DecRef(depModule), depModule = 0);
4696 (__ecereNameSpace__ecere__com__eSystem_Delete(ourHandle), ourHandle = 0);
4697 (__ecereNameSpace__ecere__com__eInstance_DecRef(ourWorld), ourWorld = 0);
4700 for(; (_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes.first); )
4702 if(_class->nameSpace)
4704 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
4705 struct __ecereNameSpace__ecere__sys__OldLink * t;
4707 for(t = _class->templatized.first; t; t = t->next)
4709 struct __ecereNameSpace__ecere__com__Class * template = t->data;
4710 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4712 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
4713 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
4714 template->nameSpace = (((void *)0));
4716 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
4717 _class->nameSpace = (((void *)0));
4719 _class->module = (((void *)0));
4720 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes, _class);
4721 if(_class->count <= 0 || _class->type != 0 || _class->isInstanceClass)
4722 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
4727 for(; (def = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines.first); )
4731 struct __ecereNameSpace__ecere__com__BTNamedLink * defLink;
4733 for(defLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*def->nameSpace).defines); defLink; defLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)defLink)))
4734 if(defLink->data == def)
4736 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*def->nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)defLink);
4740 (__ecereNameSpace__ecere__com__eSystem_Delete(def->name), def->name = 0);
4741 (__ecereNameSpace__ecere__com__eSystem_Delete(def->value), def->value = 0);
4742 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines, def);
4744 for(; (function = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions.first); )
4746 if(function->nameSpace)
4748 struct __ecereNameSpace__ecere__com__BTNamedLink * functionLink;
4750 for(functionLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*function->nameSpace).functions); functionLink; functionLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)functionLink)))
4751 if(functionLink->data == function)
4753 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*function->nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)functionLink);
4757 (__ecereNameSpace__ecere__com__eSystem_Delete(function->name), function->name = 0);
4758 (__ecereNameSpace__ecere__com__eSystem_Delete(function->dataTypeString), function->dataTypeString = 0);
4759 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions, function);
4761 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name), ((struct __ecereNameSpace__ecere__com__Module * )(((char * )module + structSize_Instance)))->name = 0);
4762 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace);
4763 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace);
4764 if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application)
4765 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4767 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace);
4768 Instance_Module_Free(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library);
4771 static long long __ecereNameSpace__ecere__com__GetEnumSize(struct __ecereNameSpace__ecere__com__Class * _class)
4773 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4775 return data->largest + 1;
4778 char * strlwr(char * string)
4782 for(c = 0; string[c]; c++)
4783 if(string[c] >= 'A' && string[c] <= 'Z')
4784 string[c] += 'a' - 'A';
4788 char * strupr(char * string)
4792 for(c = 0; string[c]; c++)
4793 if(string[c] >= 'a' && string[c] <= 'z')
4794 string[c] -= 'a' - 'A';
4798 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char * name, char * value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4800 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4803 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
4805 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
4808 for(c = 0; name[c]; c++)
4810 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4812 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4813 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4815 strncpy(spaceName, name + start, c - start);
4816 spaceName[c - start] = '\0';
4817 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4820 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4821 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4822 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4823 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4824 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4825 (*newSpace).name = spaceName;
4826 (*newSpace).parent = nameSpace;
4827 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4830 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4831 nameSpace = newSpace;
4840 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).defines, name + start))
4842 struct __ecereNameSpace__ecere__com__DefinedExpression * def = (def = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DefinedExpression), def->name = __ecereNameSpace__ecere__sys__CopyString(name), def->nameSpace = nameSpace, def->value = __ecereNameSpace__ecere__sys__CopyString(value), def);
4844 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4845 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4847 __ecereInstance1->name = def->name + start, __ecereInstance1->data = def, __ecereInstance1;
4849 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines, def);
4852 return (((void *)0));
4855 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4857 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4860 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
4862 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
4865 for(c = 0; name[c]; c++)
4867 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4869 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4870 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4872 strncpy(spaceName, name + start, c - start);
4873 spaceName[c - start] = '\0';
4874 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4877 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4878 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4879 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4880 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4881 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4882 (*newSpace).name = spaceName;
4883 (*newSpace).parent = nameSpace;
4884 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4887 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4888 nameSpace = newSpace;
4897 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).functions, name + start))
4899 struct __ecereNameSpace__ecere__com__GlobalFunction * function = (function = __ecereNameSpace__ecere__com__eSystem_New0(structSize_GlobalFunction), function->name = __ecereNameSpace__ecere__sys__CopyString(name), function->nameSpace = nameSpace, function->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), function->function = func, function->module = module, function);
4901 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4902 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4904 __ecereInstance1->name = function->name + start, __ecereInstance1->data = function, __ecereInstance1;
4906 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions, function);
4909 return (((void *)0));
4912 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_FindDefine(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4916 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4918 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines);
4921 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines, 0x1);
4925 return (((void *)0));
4928 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_FindFunction(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4932 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4934 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions);
4937 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions, 0x1);
4941 return (((void *)0));
4944 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size)
4946 return __ecereNameSpace__ecere__com___realloc(memory, size);
4949 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size)
4951 return __ecereNameSpace__ecere__com___crealloc(memory, size);
4954 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size)
4956 return __ecereNameSpace__ecere__com___malloc(size);
4959 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size)
4961 return __ecereNameSpace__ecere__com___calloc(1, size);
4964 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory)
4967 __ecereNameSpace__ecere__com___free(memory);
4970 void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4972 if(instance && _property && _property->selfWatchable)
4974 struct __ecereNameSpace__ecere__com__Class * _class;
4976 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4978 struct __ecereNameSpace__ecere__com__SelfWatcher * selfWatcher, * next;
4980 for(selfWatcher = _class->selfWatchers.first; selfWatcher; selfWatcher = next)
4982 next = selfWatcher->next;
4983 if(selfWatcher->_property == _property)
4984 selfWatcher->callback(instance);
4990 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4992 if(instance && _property && _property->isWatchable)
4994 struct __ecereNameSpace__ecere__com__Instance * module = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class ? ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->module : (((void *)0));
4995 struct __ecereNameSpace__ecere__com__Instance * application = module ? ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application : (((void *)0));
4996 int flags = application ? (unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)application + structSize_Module)))->isGUIApp : 0;
4997 unsigned int inCompiler = (flags & 8) ? 0x1 : 0x0;
4998 unsigned int force32Bits = (flags & 4) ? 0x1 : 0x0;
5000 if(!force32Bits || !inCompiler)
5002 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
5003 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
5005 for(watcher = (*watchers).first; watcher; watcher = next)
5007 next = watcher->next;
5008 watcher->callback(watcher->object, instance);
5014 void __ecereNameSpace__ecere__com__eProperty_Watchable(struct __ecereNameSpace__ecere__com__Property * _property)
5016 if(!_property->isWatchable)
5018 struct __ecereNameSpace__ecere__com__Class * _class = _property->_class;
5020 if(!_class->computeSize)
5022 _property->watcherOffset = _class->structSize;
5023 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
5024 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
5026 _property->isWatchable = 0x1;
5030 void __ecereNameSpace__ecere__com__eClass_DestructionWatchable(struct __ecereNameSpace__ecere__com__Class * _class)
5032 if(!_class->destructionWatchOffset)
5034 _class->destructionWatchOffset = _class->structSize;
5035 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
5036 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
5040 void __ecereNameSpace__ecere__com__eProperty_SelfWatch(struct __ecereNameSpace__ecere__com__Class * _class, char * name, void (* callback)(void *))
5044 struct __ecereNameSpace__ecere__com__Property * _property = __ecereNameSpace__ecere__com__eClass_FindProperty(_class, name, _class->module);
5047 _property = __ecereNameSpace__ecere__com__eClass_AddProperty(_class, name, (((void *)0)), (((void *)0)), (((void *)0)), 4);
5048 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->selfWatchers, __extension__ ({
5049 struct __ecereNameSpace__ecere__com__SelfWatcher * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_SelfWatcher);
5051 __ecereInstance1->_property = _property, __ecereInstance1->callback = callback, __ecereInstance1;
5053 _property->selfWatchable = 0x1;
5057 void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void *, void *))
5059 if(_property->isWatchable)
5061 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
5063 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*watchers), __extension__ ({
5064 struct __ecereNameSpace__ecere__com__Watcher * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Watcher);
5066 __ecereInstance1->callback = callback, __ecereInstance1->object = object, __ecereInstance1;
5071 void __ecereNameSpace__ecere__com__eInstance_WatchDestruction(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Instance * object, void (* callback)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance *))
5073 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->destructionWatchOffset);
5075 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*watchers), __extension__ ({
5076 struct __ecereNameSpace__ecere__com__Watcher * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Watcher);
5078 __ecereInstance1->callback = callback, __ecereInstance1->object = object, __ecereInstance1;
5082 void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object)
5084 if(instance && (!_property || _property->isWatchable))
5088 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
5089 struct __ecereNameSpace__ecere__com__Watcher * watcher;
5091 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
5092 if(watcher->object == object)
5094 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
5100 struct __ecereNameSpace__ecere__com__Class * _class, * base;
5102 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
5104 if(_class->destructionWatchOffset)
5106 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
5107 struct __ecereNameSpace__ecere__com__Watcher * watcher;
5109 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
5111 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
5115 for(_property = (struct __ecereNameSpace__ecere__com__Property *)_class->membersAndProperties.first; _property; _property = _property->next)
5117 if(_property->isProperty && _property->isWatchable)
5119 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
5120 struct __ecereNameSpace__ecere__com__Watcher * watcher;
5122 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
5123 if(watcher->object == object)
5125 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
5130 base = _class->base;
5131 if(base && (base->type == 1000 || base->isInstanceClass))
5132 base = (((void *)0));
5138 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eClass_GetDesigner(struct __ecereNameSpace__ecere__com__Class * _class)
5140 for(; _class; _class = _class->base)
5142 if(_class->designerClass)
5143 return (struct __ecereNameSpace__ecere__com__Class *)__ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->designerClass);
5145 return (((void *)0));
5148 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eInstance_GetDesigner(struct __ecereNameSpace__ecere__com__Instance * instance)
5151 return __ecereNameSpace__ecere__com__eClass_GetDesigner(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class);
5152 return (((void *)0));
5155 unsigned int __ecereNameSpace__ecere__com__LocateModule(char * name, char * fileName)
5157 return Instance_LocateModule(name, fileName);
5160 extern void __ecereNameSpace__ecere__com__InitializeDataTypes1(struct __ecereNameSpace__ecere__com__Instance * module);
5162 extern void __ecereNameSpace__ecere__com__InitializeDataTypes(struct __ecereNameSpace__ecere__com__Instance * module);
5164 extern double sin(struct __ecereNameSpace__ecere__com__Instance * number);
5166 extern double sinh(struct __ecereNameSpace__ecere__com__Instance * number);
5168 extern double cosh(struct __ecereNameSpace__ecere__com__Instance * number);
5170 extern double tanh(struct __ecereNameSpace__ecere__com__Instance * number);
5172 extern double sqrt(double number);
5174 extern double cos(struct __ecereNameSpace__ecere__com__Instance * number);
5176 extern double tan(struct __ecereNameSpace__ecere__com__Instance * number);
5178 extern struct __ecereNameSpace__ecere__com__Instance * atan2(double y, double x);
5180 extern struct __ecereNameSpace__ecere__com__Instance * asin(double number);
5182 extern struct __ecereNameSpace__ecere__com__Instance * acos(double number);
5184 extern struct __ecereNameSpace__ecere__com__Instance * atan(double number);
5186 extern double pow(double number, double number2);
5188 extern double fmod(double x, double y);
5190 extern double fabs(double number);
5192 extern double log(double number);
5194 extern double log10(double number);
5196 extern double ceil(double number);
5198 extern double floor(double number);
5200 extern double exp(double number);
5202 extern void qsort(void * , size_t, size_t, int (* )(void * , void * ));
5204 extern int system(const char * );
5206 extern int atoi(const char * );
5208 extern double atof(const char * );
5210 extern int tolower(int);
5212 extern int toupper(int);
5214 extern unsigned int isdigit(int);
5216 extern char * getenv(const char * name);
5218 extern int rename(const char * oldpath, const char * newpath);
5220 extern char * strncat(char * , const char * , size_t n);
5222 extern int strcasecmp(const char * , const char * );
5224 extern int strncasecmp(const char * , const char * , size_t n);
5226 extern int strncmp(const char * , const char * , size_t n);
5228 extern int vsprintf(char * , const char * , __builtin_va_list);
5230 extern int puts(char * );
5232 extern int fputs(char * , void * stream);
5234 extern int isalnum(int c);
5236 extern int isalpha(int c);
5238 extern int islower(int c);
5240 extern int isupper(int c);
5242 extern int isprint(int c);
5244 static void __ecereNameSpace__ecere__com__LoadCOM(struct __ecereNameSpace__ecere__com__Instance * module)
5246 unsigned int force64Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 2) ? 0x1 : 0x0;
5247 unsigned int force32Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 4) ? 0x1 : 0x0;
5248 unsigned int inCompiler = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 8) ? 0x1 : 0x0;
5249 int pointerSize = force64Bits ? 8 : force32Bits ? 4 : sizeof(void *);
5250 struct __ecereNameSpace__ecere__com__Class * applicationClass;
5251 struct __ecereNameSpace__ecere__com__Class * enumClass, * structClass, * boolClass;
5252 struct __ecereNameSpace__ecere__com__Class * moduleClass;
5253 struct __ecereNameSpace__ecere__com__Class * baseClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "class", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5255 baseClass->type = 1000;
5256 baseClass->memberOffset = 0;
5257 baseClass->offset = 0;
5258 baseClass->structSize = 0;
5259 baseClass->typeSize = 0;
5261 struct __ecereNameSpace__ecere__com__Class * instanceClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Instance", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5263 instanceClass->type = 0;
5264 instanceClass->isInstanceClass = 0x1;
5265 instanceClass->fixed = 0x1;
5266 instanceClass->memberOffset = 0;
5267 instanceClass->offset = 0;
5268 instanceClass->memberID = -3;
5269 instanceClass->startMemberID = -3;
5270 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_vTbl", "int (**)()", pointerSize, pointerSize, 1);
5271 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_class", "ecere::com::Class", pointerSize, pointerSize, 1);
5272 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_refCount", "int", sizeof(int), sizeof(int), 1);
5274 __ecereNameSpace__ecere__com__InitializeDataTypes1(module);
5275 enumClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "enum", (((void *)0)), 0, force64Bits ? 40 : sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), (((void *)0)), (((void *)0)), module, 4, 1);
5276 __ecereNameSpace__ecere__com__eClass_AddClassProperty(enumClass, "enumSize", "int", (((void *)0)), __ecereNameSpace__ecere__com__GetEnumSize)->constant = 0x1;
5277 enumClass->type = 1000;
5278 (__ecereNameSpace__ecere__com__eSystem_Delete(enumClass->dataTypeString), enumClass->dataTypeString = 0);
5279 enumClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int");
5280 structClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "struct", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5281 structClass->type = 1000;
5282 structClass->memberOffset = 0;
5283 structClass->offset = 0;
5284 structClass->structSize = 0;
5285 structClass->typeSize = 0;
5286 __ecereNameSpace__ecere__com__InitializeDataTypes(module);
5287 boolClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "bool", "uint", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5288 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "true", (unsigned int)0x1);
5289 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "false", (unsigned int)0x0);
5290 moduleClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Module", (((void *)0)), force64Bits ? 8 + 32 + 32 + 32 + 32 + 8 + 8 + 8 + 8 + 8 + 4 + 4 + (32 + 8 + 8 + 4 * 32) + (32 + 8 + 8 + 4 * 32) : sizeof(struct __ecereNameSpace__ecere__com__Module), 0, (void *)__ecereNameSpace__ecere__com__Module_Constructor, (void *)__ecereNameSpace__ecere__com__Module_Destructor, module, 4, 1);
5291 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnLoad", "bool()", (((void *)0)), 1);
5292 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnUnload", "void()", (((void *)0)), 1);
5293 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Load", "Module(char * name, AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_Load, 1);
5294 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Unload", "void(Module module)", __ecereNameSpace__ecere__com__eModule_Unload, 1);
5295 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "application", "Application", pointerSize, pointerSize, 1);
5296 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "classes", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5297 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "defines", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5298 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "functions", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5299 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "modules", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5300 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "prev", "Module", pointerSize, pointerSize, 1);
5301 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "next", "Module", pointerSize, pointerSize, 1);
5302 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "name", "char *", pointerSize, pointerSize, 1);
5303 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "library", "void *", pointerSize, pointerSize, 1);
5304 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "Unload", "void *", pointerSize, pointerSize, 1);
5305 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "importType", "ImportType", sizeof(int), 4, 1);
5306 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "origImportType", "ImportType", sizeof(int), 4, 1);
5307 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "privateNameSpace", "NameSpace", force64Bits ? (32 + 8 + 8 + 4 * 32) : force32Bits ? (16 + 4 + 4 + 4 * 16) : sizeof(struct __ecereNameSpace__ecere__com__NameSpace), pointerSize, 1);
5308 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "publicNameSpace", "NameSpace", force64Bits ? (32 + 8 + 8 + 4 * 32) : force32Bits ? (16 + 4 + 4 + 4 * 16) : sizeof(struct __ecereNameSpace__ecere__com__NameSpace), pointerSize, 1);
5309 moduleClass->fixed = 0x1;
5310 moduleClass->count++;
5311 if(inCompiler && force32Bits)
5312 moduleClass->structSize = 12 + 4 + 20 + 20 + 20 + 20 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + (16 + 4 + 4 + 4 * 16) + (16 + 4 + 4 + 4 * 16);
5313 applicationClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Application", "Module", force64Bits ? (8 + 8 + 4 + 4 + 32 + 8 + 176) : sizeof(struct __ecereNameSpace__ecere__com__Application), 0, (((void *)0)), (void *)__ecereNameSpace__ecere__com__Application_Destructor, module, 4, 1);
5314 if(inCompiler && force32Bits)
5316 applicationClass->offset = 12 + 4 + 20 + 20 + 20 + 20 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + (16 + 4 + 4 + 4 * 16) + (16 + 4 + 4 + 4 * 16);
5317 applicationClass->structSize = applicationClass->offset + (4 + 4 + 4 + 4 + 20 + 4 + 88);
5319 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(applicationClass, "Main", "void()", (((void *)0)), 1);
5320 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argc", "int", sizeof(int), 4, 1);
5321 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argv", "char **", pointerSize, pointerSize, 1);
5322 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "exitCode", "int", sizeof(int), 4, 1);
5323 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "isGUIApp", "bool", sizeof(unsigned int), 4, 1);
5324 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "allModules", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5325 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "parsedCommand", "char *", pointerSize, pointerSize, 1);
5326 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "systemNameSpace", "NameSpace", force64Bits ? (32 + 8 + 8 + 4 * 32) : force32Bits ? (16 + 4 + 4 + 4 * 16) : sizeof(struct __ecereNameSpace__ecere__com__NameSpace), pointerSize, 1);
5327 applicationClass->fixed = 0x1;
5328 applicationClass->count++;
5329 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sin", "double sin(Angle number)", sin, module, 4);
5330 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sinh", "double sinh(Angle number)", sinh, module, 4);
5331 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cosh", "double cosh(Angle number)", cosh, module, 4);
5332 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tanh", "double tanh(Angle number)", tanh, module, 4);
5333 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sqrt", "double sqrt(double number)", sqrt, module, 4);
5334 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cos", "double cos(Angle number)", cos, module, 4);
5335 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tan", "double tan(Angle number)", tan, module, 4);
5336 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan2", "Angle atan2(double y, double x)", atan2, module, 4);
5337 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("asin", "Angle asin(double number)", asin, module, 4);
5338 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("acos", "Angle acos(double number)", acos, module, 4);
5339 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan", "Angle atan(double number)", atan, module, 4);
5340 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("pow", "double pow(double number, double number2)", pow, module, 4);
5341 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fmod", "double fmod(double x, double y)", fmod, module, 4);
5342 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fabs", "double fabs(double number)", fabs, module, 4);
5343 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log", "double log(double number)", log, module, 4);
5344 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log10", "double log10(double number)", log10, module, 4);
5345 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ceil", "double ceil(double number)", ceil, module, 4);
5346 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("floor", "double floor(double number)", floor, module, 4);
5347 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("exp", "double exp(double number)", exp, module, 4);
5348 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("qsort", "void qsort(void *, uintsize, uintsize, int (*)(void *, void *))", qsort, module, 4);
5349 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtod", "double strtod(char*, char**)", strtod, module, 4);
5350 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtol", "int strtol(char*, char**, int base)", strtol, module, 4);
5351 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("system", "int system(const char*)", system, module, 4);
5352 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atoi", "int atoi(const char*)", atoi, module, 4);
5353 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atof", "double atof(const char*)", atof, module, 4);
5354 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tolower", "int tolower(int)", tolower, module, 4);
5355 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("toupper", "int toupper(int)", toupper, module, 4);
5356 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isdigit", "bool isdigit(int)", isdigit, module, 4);
5357 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memset", "void * memset(void * area, int value, uintsize count)", memset, module, 4);
5358 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("getenv", "char * getenv(const char * name)", getenv, module, 4);
5359 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("rename", "int rename(const char *oldpath, const char *newpath)", rename, module, 4);
5360 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlen", "uintsize strlen(const char *)", strlen, module, 4);
5361 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcat", "char * strcat(char *, const char *)", strcat, module, 4);
5362 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncat", "char * strncat(char *, const char *, uintsize n)", strncat, module, 4);
5363 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strchr", "char * strchr(const char *, int)", strchr, module, 4);
5364 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strstr", "char * strstr(const char *, const char *)", strstr, module, 4);
5365 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("fstrcmp", "(GetRuntimePlatform() == win32) ? strcmpi : strcmp", module, 4);
5366 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strcmpi", "strcasecmp", module, 4);
5367 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strnicmp", "strncasecmp", module, 4);
5368 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcasecmp", "int strcasecmp(const char *, const char *)", strcasecmp, module, 4);
5369 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncasecmp", "int strncasecmp(const char *, const char *, uintsize n)", strncasecmp, module, 4);
5370 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcmp", "int strcmp(const char *, const char *)", strcmp, module, 4);
5371 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncmp", "int strncmp(const char *, const char *, uintsize n)", strncmp, module, 4);
5372 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlwr", "char * strlwr(char *)", strlwr, module, 4);
5373 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strupr", "char * strupr(char *)", strupr, module, 4);
5374 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcpy", "char * strcpy(char *, const char *)", strcpy, module, 4);
5375 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncpy", "char * strncpy(char *, const char *, uintsize n)", strncpy, module, 4);
5376 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memcpy", "void * memcpy(void *, const void *, uintsize size)", memcpy, module, 4);
5377 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memmove", "void * memmove(void *, const void *, uintsize size)", memmove, module, 4);
5378 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sprintf", "int sprintf(char *, char *, ...)", sprintf, module, 4);
5379 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("snprintf", "int sprintf(char *, uintsize, char *, ...)", snprintf, module, 4);
5380 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("printf", "int printf(char *, ...)", printf, module, 4);
5381 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsprintf", "int vsprintf(char*, const char*, __builtin_va_list)", vsprintf, module, 4);
5382 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsnprintf", "int vsnprintf(char*, uintsize, const char*, __builtin_va_list)", vsnprintf, module, 4);
5383 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("puts", "int puts(char *)", puts, module, 4);
5384 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fputs", "int fputs(char *, void * stream)", fputs, module, 4);
5385 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalnum", "int isalnum(int c)", isalnum, module, 4);
5386 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isspace", "int isspace(int c)", isspace, module, 4);
5387 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalpha", "int isalpha(int c)", isalpha, module, 4);
5388 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("islower", "int islower(int c)", islower, module, 4);
5389 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isupper", "int isupper(int c)", isupper, module, 4);
5390 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isprint", "int isprint(int c)", isprint, module, 4);
5391 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtoul", "unsigned long strtoul(const char * nptr, char ** endptr, int base)", strtoul, module, 4);
5392 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtoll", "int64 strtoll(const char * nptr, char ** endptr, int base)", strtoul, module, 4);
5393 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtoull", "uint64 strtoull(const char * nptr, char ** endptr, int base)", strtoul, module, 4);
5396 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com____ecere_COM_Initialize(unsigned int guiApp, int argc, char * argv[])
5398 struct __ecereNameSpace__ecere__com__Instance * app;
5400 app = __ecereNameSpace__ecere__com___calloc(1, structSize_Application);
5401 __ecereNameSpace__ecere__com__Module_Constructor(app);
5402 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5403 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5404 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5405 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5406 Instance_COM_Initialize(argc, argv, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->parsedCommand, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->argc, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->argv);
5407 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->application = app;
5408 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->allModules.offset = structSize_Instance + (unsigned int)&(*((struct __ecereNameSpace__ecere__com__Module *)0)).prev;
5409 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->isGUIApp = guiApp;
5410 __ecereNameSpace__ecere__com__LoadCOM(app);
5411 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)app)->_class = __ecereNameSpace__ecere__com__eSystem_FindClass(app, "Application");
5415 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(struct __ecereNameSpace__ecere__com__Class * _class, char * name, int type, void * info, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * defaultArg)
5419 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5421 for(param = _class->templateParams.first; param; param = param->next)
5423 if(!strcmp(param->name, name))
5426 param = __extension__ ({
5427 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_ClassTemplateParameter);
5429 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(name), __ecereInstance1->type = type, __ecereInstance1->dataTypeString = (type == 1) ? info : __ecereNameSpace__ecere__sys__CopyString(info), __ecereInstance1;
5431 if(defaultArg != (((void *)0)))
5433 param->defaultArg = *defaultArg;
5434 __ecereNameSpace__ecere__com__CopyTemplateArg(param, ¶m->defaultArg);
5436 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templateParams, param);
5439 return (((void *)0));
5442 void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base)
5446 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
5447 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5450 void * first = base->templateParams.first;
5451 int count = base->templateParams.count;
5453 __ecereNameSpace__ecere__com__FreeTemplateArgs(base);
5454 (__ecereNameSpace__ecere__com__eSystem_Delete(base->templateArgs), base->templateArgs = 0);
5455 base->templateParams.first = (((void *)0));
5456 base->templateParams.count = 0;
5457 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(base);
5458 base->templateParams.first = first;
5459 base->templateParams.count = count;
5461 for(param = base->templateParams.first; param; param = param->next)
5463 if(param->type == 1 && param->defaultArg.memberString)
5465 struct __ecereNameSpace__ecere__com__Class * memberClass = base;
5466 char * colon = strstr(param->defaultArg.memberString, "::");
5471 char className[1024];
5472 struct __ecereNameSpace__ecere__com__Class * sClass;
5474 memcpy(className, param->defaultArg.memberString, colon - param->defaultArg.memberString);
5475 className[colon - param->defaultArg.memberString] = '\0';
5476 memberName = colon + 2;
5477 for(sClass = base; sClass; sClass = sClass->base)
5479 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
5480 struct __ecereNameSpace__ecere__com__Class * nextClass;
5483 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
5484 id += nextClass->templateParams.count;
5485 if(sClass == base || base->templateArgs)
5487 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
5489 if(cParam->type == 0 && !strcmp(cParam->name, className))
5490 strcpy(className, (sClass == base) ? cParam->defaultArg.dataTypeString : base->templateArgs[id].dataTypeString);
5495 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(base->module, className);
5497 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)base->module + structSize_Instance)))->application, className);
5500 memberName = param->defaultArg.memberString;
5503 switch(param->memberType)
5506 param->defaultArg.member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
5509 param->defaultArg.method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
5512 param->defaultArg.prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
5518 __ecereNameSpace__ecere__com__FixDerivativesBase(base, base);
5522 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base)
5524 struct __ecereNameSpace__ecere__sys__OldLink * derivative, * templateLink;
5526 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
5528 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
5530 if(_class->templateArgs)
5532 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5533 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5535 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5537 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
5539 struct __ecereNameSpace__ecere__com__Class * _class = templateLink->data;
5541 if(_class->templateArgs)
5543 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5544 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5546 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5550 static const char * __ecereNameSpace__ecere__com__platformNames[4] =
5552 "", "win32", "linux", "apple"
5555 static const int __ecereNameSpace__ecere__com__firstPlatform = 1;
5557 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Platform_char__PTR_;
5559 static const int __ecereNameSpace__ecere__com__lastPlatform = 3;
5561 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Platform;
5563 int __ecereVMethodID_class_OnGetString;
5565 char * __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_(int this)
5567 return ((char * (*)(struct __ecereNameSpace__ecere__com__Class *, void *, char * tempString, void * fieldData, unsigned int * needClass))__ecereClass___ecereNameSpace__ecere__com__Platform->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass___ecereNameSpace__ecere__com__Platform, &this, (((void *)0)), (((void *)0)), (((void *)0)));
5570 int __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(char * value)
5576 for(c = __ecereNameSpace__ecere__com__firstPlatform; c <= __ecereNameSpace__ecere__com__lastPlatform; c++)
5577 if(!strcasecmp(value, __ecereNameSpace__ecere__com__platformNames[c]))
5583 char * __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * tempString, void * fieldData, unsigned int * needClass)
5585 if((*this) >= __ecereNameSpace__ecere__com__firstPlatform && (*this) <= __ecereNameSpace__ecere__com__lastPlatform)
5588 strcpy(tempString, __ecereNameSpace__ecere__com__platformNames[*(int *)this]);
5589 return __ecereNameSpace__ecere__com__platformNames[*(int *)this];
5591 if(tempString && tempString[0])
5592 tempString[0] = '\0';
5593 return (((void *)0));
5596 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * string)
5598 (*this) = __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(string);
5599 return (unsigned int)*(int *)this;
5602 extern int runtimePlatform;
5604 int __ecereNameSpace__ecere__com__GetRuntimePlatform()
5606 return runtimePlatform;
5609 struct __ecereNameSpace__ecere__com__ObjectInfo
5611 struct __ecereNameSpace__ecere__com__ObjectInfo * prev, * next;
5612 struct __ecereNameSpace__ecere__com__Instance * instance;
5614 struct __ecereNameSpace__ecere__com__Instance * instCode;
5615 unsigned int deleted;
5616 struct __ecereNameSpace__ecere__com__ObjectInfo * oClass;
5617 struct __ecereNameSpace__ecere__sys__OldList instances;
5618 struct __ecereNameSpace__ecere__com__Instance * classDefinition;
5619 unsigned int modified;
5620 } __attribute__ ((gcc_struct));
5622 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ObjectInfo;
5624 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner;
5626 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass;
5628 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging;
5630 struct __ecereNameSpace__ecere__com__DesignerBase
5632 struct __ecereNameSpace__ecere__com__Instance * classDesigner;
5634 unsigned int isDragging;
5635 } __attribute__ ((gcc_struct));
5637 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DesignerBase;
5639 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this)
5641 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5643 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner;
5646 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value)
5648 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5650 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner = value;
5651 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner);
5654 char * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_objectClass(struct __ecereNameSpace__ecere__com__Instance * this)
5656 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5658 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass;
5661 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_objectClass(struct __ecereNameSpace__ecere__com__Instance * this, char * value)
5663 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5665 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass = value;
5666 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass);
5669 unsigned int __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_isDragging(struct __ecereNameSpace__ecere__com__Instance * this)
5671 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5673 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging;
5676 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_isDragging(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
5678 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5680 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging = value;
5681 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging);
5684 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase;
5686 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__activeDesigner;
5688 void __ecereNameSpace__ecere__com__SetActiveDesigner(struct __ecereNameSpace__ecere__com__Instance * designer)
5690 __ecereNameSpace__ecere__com__activeDesigner = designer;
5693 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__GetActiveDesigner()
5695 return __ecereNameSpace__ecere__com__activeDesigner;
5698 void __ecereNameSpace__ecere__com__eSystem_SetPoolingDisabled(unsigned int disabled)
5700 __ecereNameSpace__ecere__com__poolingDisabled = disabled;
5705 unsigned int __ecereNameSpace__ecere__sys__UTF8Validate(char * source)
5711 for(c = 0; source[c]; )
5713 unsigned char ch = source[c];
5714 unsigned int codePoint = 0;
5717 unsigned char mask = (unsigned char)0x7F;
5719 if(ch & (unsigned char)0x80)
5721 if(ch & (unsigned char)0x40)
5725 if(ch & (unsigned char)0x20)
5729 if(ch & (unsigned char)0x10)
5731 if(ch & (unsigned char)0x08)
5741 for(i = 0; i < numBytes && (ch = source[c]); i++, c++)
5744 codePoint |= ch & mask;
5745 mask = (unsigned char)0x3F;
5748 if(!(ch & (unsigned char)0x80) || (ch & (unsigned char)0x40))
5754 if(codePoint > 0x10FFFF || (codePoint >= 0xD800 && codePoint <= 0xDFFF) || (codePoint < 0x80 && numBytes > 1) || (codePoint < 0x800 && numBytes > 2) || (codePoint < 0x10000 && numBytes > 3))
5761 int __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(char * source, char * dest, int max)
5766 for(c = 0; source[c]; c++)
5768 unsigned int ch = ((unsigned char *)source)[c];
5780 dest[d++] = (char)ch;
5786 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5787 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5789 else if(ch < 0x10000)
5793 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5794 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5795 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5801 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5802 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5803 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5804 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5811 char * __ecereNameSpace__ecere__sys__UTF16toUTF8(unsigned short * source)
5818 unsigned int invert = 0x0;
5820 for(len = 0; source[len]; len++)
5822 dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len * 3 + 1));
5823 for(c = 0; (u16 = source[c]); c++)
5827 if(!c && (u16 == (unsigned short)0xFFFE || u16 == (unsigned short)0xFEFF))
5829 if(u16 == (unsigned short)0xFFFE)
5835 u16 = ((u16 & (unsigned short)0xFF00) >> (unsigned short)8) | ((u16 & (unsigned short)0x00FF) << (unsigned short)8);
5837 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5840 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5843 dest[d++] = (char)ch;
5847 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5848 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5850 else if(ch < 0x10000)
5852 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5853 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5854 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5858 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5859 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5860 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5861 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5865 dest = __ecereNameSpace__ecere__com__eSystem_Renew(dest, sizeof(char) * (d + 1));
5869 int __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer(unsigned short * source, unsigned char * dest, int max)
5875 for(c = 0; (u16 = source[c]); c++)
5879 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5882 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5887 dest[d++] = (char)ch;
5893 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5894 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5896 else if(ch < 0x10000)
5900 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5901 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5902 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5908 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5909 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5910 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5911 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5914 dest[d] = (unsigned char)0;
5918 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes)
5921 unsigned char b = ((unsigned char *)string)[0];
5923 unsigned char mask = (unsigned char)0x7F;
5927 if(b & (unsigned char)0x80)
5929 if(b & (unsigned char)0x40)
5933 if(b & (unsigned char)0x20)
5937 if(b & (unsigned char)0x10)
5939 if(b & (unsigned char)0x08)
5951 for(i = 0; i < nb; i++)
5954 ch |= (b = ((unsigned char *)string)[i]) & mask;
5955 mask = (unsigned char)0x3F;
5956 if(i > 1 && (!(b & (unsigned char)0x80) || (b & (unsigned char)0x40)))
5962 if(i < nb || ch > 0x10FFFF || (ch >= 0xD800 && ch <= 0xDFFF) || (ch < 0x80 && nb > 1) || (ch < 0x800 && nb > 2) || (ch < 0x10000 && nb > 3))
5972 int __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer(char * source, unsigned short * dest, int max)
5979 for(c = 0; source[c]; )
5981 unsigned char ch = source[c];
5982 unsigned int codePoint = 0;
5985 unsigned char mask = (unsigned char)0x7F;
5987 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5991 if(ch & (unsigned char)0x20)
5995 if(ch & (unsigned char)0x10)
6002 for(i = 0; i < numBytes; i++)
6005 codePoint |= source[c++] & mask;
6006 mask = (unsigned char)0x3F;
6008 if(codePoint > 0xFFFF)
6010 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
6011 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
6022 dest[d++] = (unsigned short)codePoint;
6025 dest[d] = (unsigned short)0;
6031 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max)
6037 for(c = 0; c < count && (ch = source[c]); c++)
6043 dest[d++] = (char)ch;
6049 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
6050 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
6052 else if(ch < 0x10000)
6056 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
6057 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
6058 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
6064 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
6065 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
6066 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
6067 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
6070 dest[d] = (unsigned char)0;
6074 unsigned short * __ecereNameSpace__ecere__sys__UTF8toUTF16(char * source, int * wordCount)
6078 int len = strlen(source);
6079 unsigned short * dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned short) * (len + 1));
6083 for(c = 0; source[c]; )
6085 unsigned char ch = source[c];
6086 unsigned int codePoint = 0;
6089 unsigned char mask = (unsigned char)0x7F;
6091 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
6095 if(ch & (unsigned char)0x20)
6099 if(ch & (unsigned char)0x10)
6106 for(i = 0; i < numBytes; i++)
6109 codePoint |= source[c++] & mask;
6110 mask = (unsigned char)0x3F;
6112 if(codePoint > 0xFFFF)
6114 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
6115 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
6122 dest[d++] = (unsigned short)codePoint;
6125 dest[d] = (unsigned short)0;
6130 return (((void *)0));
6133 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_FindObject;
6135 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_RenameObject;
6137 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SelectObjectFromDesigner;
6139 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_CodeAddObject;
6141 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SheetAddObject;
6143 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddToolBoxClass;
6145 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddDefaultMethod;
6147 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_DeleteObject;
6149 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ObjectContainsCode;
6151 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ModifyCode;
6153 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_UpdateProperties;
6155 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_Reset;
6157 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_AddObject;
6159 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_SelectObject;
6161 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_ListToolBoxClasses;
6163 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PrepareTestObject;
6165 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateObject;
6167 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PostCreateObject;
6169 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DroppedObject;
6171 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DestroyObject;
6173 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_FixProperty;
6175 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateNew;
6177 void __ecereRegisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
6179 struct __ecereNameSpace__ecere__com__Class * class;
6181 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::null", "((void *)0)", module, 4);
6182 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(3, "ecere::com::unichar", "uint", 0, 0, 0, 0, module, 4, 1);
6183 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6184 __ecereClass___ecereNameSpace__ecere__com__unichar = class;
6185 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString, 1);
6186 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString, 1);
6187 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Property", 0, sizeof(struct __ecereNameSpace__ecere__com__Property), 0, 0, 0, module, 4, 1);
6188 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6189 __ecereClass___ecereNameSpace__ecere__com__Property = class;
6190 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6191 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6192 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6193 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6194 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6195 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6196 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6197 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6198 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6199 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6200 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void (*)(void *, int)", arch_PointerSize, arch_PointerSize, 1);
6201 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int (*)(void *)", arch_PointerSize, arch_PointerSize, 1);
6202 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "IsSet", "bool (*)(void *)", arch_PointerSize, arch_PointerSize, 1);
6203 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6204 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6205 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6206 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversion", "bool", 4, 4, 1);
6207 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "watcherOffset", "uint", 4, 4, 1);
6208 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "category", "char *", arch_PointerSize, arch_PointerSize, 1);
6209 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "compiled", "bool", 4, 4, 1);
6210 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchable", "bool", 4, 4, 1);
6211 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isWatchable", "bool", 4, 4, 1);
6213 class->fixed = (unsigned int)1;
6215 class->noExpansion = (unsigned int)1;
6216 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PushLoc", "void ecere::com::MemoryGuard_PushLoc(char * loc)", __ecereNameSpace__ecere__com__MemoryGuard_PushLoc, module, 4);
6217 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PopLoc", "void ecere::com::MemoryGuard_PopLoc(void)", __ecereNameSpace__ecere__com__MemoryGuard_PopLoc, module, 4);
6218 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BTNamedLink", 0, sizeof(struct __ecereNameSpace__ecere__com__BTNamedLink), 0, 0, 0, module, 4, 1);
6219 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6220 __ecereClass___ecereNameSpace__ecere__com__BTNamedLink = class;
6221 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6222 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6223 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6224 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6225 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6226 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6228 class->fixed = (unsigned int)1;
6229 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SelfWatcher", 0, sizeof(struct __ecereNameSpace__ecere__com__SelfWatcher), 0, 0, 0, module, 2, 1);
6230 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6231 __ecereClass___ecereNameSpace__ecere__com__SelfWatcher = class;
6233 class->fixed = (unsigned int)1;
6234 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::AccessMode", 0, 0, 0, 0, 0, module, 4, 1);
6235 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6236 __ecereClass___ecereNameSpace__ecere__com__AccessMode = class;
6237 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "defaultAccess", 0);
6238 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "publicAccess", 1);
6239 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "privateAccess", 2);
6240 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticAccess", 3);
6241 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "baseSystemAccess", 4);
6242 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SubModule", 0, sizeof(struct __ecereNameSpace__ecere__com__SubModule), 0, 0, 0, module, 4, 1);
6243 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6244 __ecereClass___ecereNameSpace__ecere__com__SubModule = class;
6245 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::SubModule", arch_PointerSize, arch_PointerSize, 1);
6246 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::SubModule", arch_PointerSize, arch_PointerSize, 1);
6247 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6248 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "importMode", "ecere::com::AccessMode", 4, 4, 1);
6249 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::DataMemberType", 0, 0, 0, 0, 0, module, 4, 1);
6250 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6251 __ecereClass___ecereNameSpace__ecere__com__DataMemberType = class;
6252 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMember", 0);
6253 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionMember", 1);
6254 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structMember", 2);
6255 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ClassType", 0, 0, 0, 0, 0, module, 4, 1);
6256 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6257 __ecereClass___ecereNameSpace__ecere__com__ClassType = class;
6258 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalClass", 0);
6259 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structClass", 1);
6260 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "bitClass", 2);
6261 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unitClass", 3);
6262 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "enumClass", 4);
6263 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "noHeadClass", 5);
6264 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionClass", 6);
6265 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "systemClass", 1000);
6266 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Class", 0, sizeof(struct __ecereNameSpace__ecere__com__Class), 0, 0, 0, module, 4, 1);
6267 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6268 __ecereClass___ecereNameSpace__ecere__com__Class = class;
6269 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree, 1);
6270 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetString, 1);
6271 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString, 1);
6272 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnSerialize, 1);
6273 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnUnserialize, 1);
6274 __ecereProp___ecereNameSpace__ecere__com__Class_char__PTR_ = __ecereNameSpace__ecere__com__eClass_AddProperty(class, 0, "char *", __ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_, __ecereProp___ecereNameSpace__ecere__com__Class_Get_char__PTR_, 1);
6275 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6276 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6277 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6278 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6279 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structSize", "int", 4, 4, 1);
6280 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_vTbl", "int (* *)()", arch_PointerSize, arch_PointerSize, 1);
6281 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vTblSize", "int", 4, 4, 1);
6282 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Constructor", "int (*)(ecere::com::Instance)", arch_PointerSize, arch_PointerSize, 1);
6283 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Destructor", "void (*)(ecere::com::Instance)", arch_PointerSize, arch_PointerSize, 1);
6284 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offsetClass", "int", 4, 4, 1);
6285 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "sizeClass", "int", 4, 4, 1);
6286 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "base", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6287 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "methods", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6288 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6289 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prop", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6290 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAndProperties", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6291 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classProperties", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6292 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "derivatives", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6293 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6294 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "startMemberID", "int", 4, 4, 1);
6295 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::ClassType", 4, 4, 1);
6296 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6297 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6298 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6299 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6300 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "typeSize", "int", 4, 4, 1);
6301 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultAlignment", "int", 4, 4, 1);
6302 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Initialize", "void (*)()", arch_PointerSize, arch_PointerSize, 1);
6303 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6304 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchers", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6305 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "designerClass", "char *", arch_PointerSize, arch_PointerSize, 1);
6306 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "noExpansion", "bool", 4, 4, 1);
6307 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultProperty", "char *", arch_PointerSize, arch_PointerSize, 1);
6308 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "comRedefinition", "bool", 4, 4, 1);
6309 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
6310 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isRemote", "bool", 4, 4, 1);
6311 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "internalDecl", "bool", 4, 4, 1);
6312 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6313 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "computeSize", "bool", 4, 4, 1);
6314 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6315 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "destructionWatchOffset", "int", 4, 4, 1);
6316 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fixed", "bool", 4, 4, 1);
6317 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "delayedCPValues", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6318 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "inheritanceAccess", "ecere::com::AccessMode", 4, 4, 1);
6319 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fullName", "char *", arch_PointerSize, arch_PointerSize, 1);
6320 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6321 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversions", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6322 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateParams", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6323 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateArgs", "ecere::com::ClassTemplateArgument *", arch_PointerSize, arch_PointerSize, 1);
6324 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6325 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templatized", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6326 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParams", "int", 4, 4, 1);
6327 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isInstanceClass", "bool", 4, 4, 1);
6328 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "byValueSystemClass", "bool", 4, 4, 1);
6330 class->fixed = (unsigned int)1;
6332 class->noExpansion = (unsigned int)1;
6333 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateParameterType", 0, 0, 0, 0, 0, module, 4, 1);
6334 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6335 __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType = class;
6336 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "type", 0);
6337 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "identifier", 1);
6338 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "expression", 2);
6339 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateMemberType", 0, 0, 0, 0, 0, module, 4, 1);
6340 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6341 __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType = class;
6342 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dataMember", 0);
6343 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "method", 1);
6344 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "prop", 2);
6345 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::ClassTemplateArgument", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument), 0, 0, 0, module, 4, 1);
6346 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6347 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument = class;
6349 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6352 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6354 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6355 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6356 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6358 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "expression", "ecere::com::DataValue", 8, 8, 1);
6360 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6362 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "memberString", "char *", arch_PointerSize, arch_PointerSize, 1);
6364 struct __ecereNameSpace__ecere__com__DataMember * dataMember2 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6366 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "member", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6367 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "prop", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6368 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "method", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6369 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember1, dataMember2);
6371 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6373 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6375 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassTemplateParameter", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateParameter), 0, 0, 0, module, 4, 1);
6376 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6377 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter = class;
6378 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ClassTemplateParameter", arch_PointerSize, arch_PointerSize, 1);
6379 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ClassTemplateParameter", arch_PointerSize, arch_PointerSize, 1);
6380 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6381 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::TemplateParameterType", 4, 4, 1);
6383 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6385 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6386 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "memberType", "ecere::com::TemplateMemberType", 4, 4, 1);
6387 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6389 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultArg", "ecere::com::ClassTemplateArgument", structSize_ClassTemplateArgument, 8, 1);
6390 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "param", "void *", arch_PointerSize, arch_PointerSize, 1);
6392 class->fixed = (unsigned int)1;
6393 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::MethodType", 0, 0, 0, 0, 0, module, 4, 1);
6394 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6395 __ecereClass___ecereNameSpace__ecere__com__MethodType = class;
6396 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMethod", 0);
6397 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "virtualMethod", 1);
6398 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Method", 0, sizeof(struct __ecereNameSpace__ecere__com__Method), 0, 0, 0, module, 4, 1);
6399 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6400 __ecereClass___ecereNameSpace__ecere__com__Method = class;
6401 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6402 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6403 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6404 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6405 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6406 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int (*)()", arch_PointerSize, arch_PointerSize, 1);
6407 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6408 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::MethodType", 4, 4, 1);
6409 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6410 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6411 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6412 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6413 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6415 class->fixed = (unsigned int)1;
6416 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ImportType", 0, 0, 0, 0, 0, module, 4, 1);
6417 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6418 __ecereClass___ecereNameSpace__ecere__com__ImportType = class;
6419 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalImport", 0);
6420 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticImport", 1);
6421 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "remoteImport", 2);
6422 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preDeclImport", 3);
6423 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "comCheckImport", 4);
6424 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::NameSpace", 0, sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 0, 0, 0, module, 4, 1);
6425 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6426 __ecereClass___ecereNameSpace__ecere__com__NameSpace = class;
6427 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6428 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "btParent", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6429 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6430 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6431 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6432 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6433 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpaces", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6434 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classes", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6435 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defines", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6436 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "functions", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6437 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::DataValue", 0, sizeof(struct __ecereNameSpace__ecere__com__DataValue), 0, 0, 0, module, 4, 1);
6438 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6439 __ecereClass___ecereNameSpace__ecere__com__DataValue = class;
6441 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6443 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "c", "char", 1, 1, 1);
6444 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "uc", "byte", 1, 1, 1);
6445 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "s", "short", 2, 2, 1);
6446 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "us", "uint16", 2, 2, 1);
6447 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i", "int", 4, 4, 1);
6448 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui", "uint", 4, 4, 1);
6449 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "p", "void *", arch_PointerSize, arch_PointerSize, 1);
6450 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "f", "float", 4, 4, 1);
6451 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "d", "double", 8, 8, 1);
6452 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i64", "int64", 8, 8, 1);
6453 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui64", "uint64", 8, 8, 1);
6454 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6456 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DataMember", 0, sizeof(struct __ecereNameSpace__ecere__com__DataMember), 0, 0, 0, module, 4, 1);
6457 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6458 __ecereClass___ecereNameSpace__ecere__com__DataMember = class;
6459 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6460 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6461 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6462 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6463 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6464 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6465 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6466 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6467 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6468 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6469 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6470 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6471 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6472 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6473 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAlpha", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6474 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6475 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6477 class->fixed = (unsigned int)1;
6478 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BitMember", 0, sizeof(struct __ecereNameSpace__ecere__com__BitMember), 0, 0, 0, module, 4, 1);
6479 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6480 __ecereClass___ecereNameSpace__ecere__com__BitMember = class;
6481 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::BitMember", arch_PointerSize, arch_PointerSize, 1);
6482 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::BitMember", arch_PointerSize, arch_PointerSize, 1);
6483 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6484 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6485 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6486 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6487 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6488 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6489 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6490 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6491 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6492 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "size", "int", 4, 4, 1);
6493 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pos", "int", 4, 4, 1);
6494 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "mask", "uint64", 8, 8, 1);
6496 class->fixed = (unsigned int)1;
6497 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassProperty", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassProperty), 0, 0, 0, module, 4, 1);
6498 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6499 __ecereClass___ecereNameSpace__ecere__com__ClassProperty = class;
6500 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6501 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6502 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6503 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6504 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6505 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void (*)(ecere::com::Class, int64)", arch_PointerSize, arch_PointerSize, 1);
6506 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int64 (*)(ecere::com::Class)", arch_PointerSize, arch_PointerSize, 1);
6507 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6508 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6509 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "constant", "bool", 4, 4, 1);
6511 class->fixed = (unsigned int)1;
6512 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DefinedExpression", 0, sizeof(struct __ecereNameSpace__ecere__com__DefinedExpression), 0, 0, 0, module, 4, 1);
6513 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6514 __ecereClass___ecereNameSpace__ecere__com__DefinedExpression = class;
6515 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DefinedExpression", arch_PointerSize, arch_PointerSize, 1);
6516 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DefinedExpression", arch_PointerSize, arch_PointerSize, 1);
6517 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6518 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "value", "char *", arch_PointerSize, arch_PointerSize, 1);
6519 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6521 class->fixed = (unsigned int)1;
6522 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::GlobalFunction", 0, sizeof(struct __ecereNameSpace__ecere__com__GlobalFunction), 0, 0, 0, module, 4, 1);
6523 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6524 __ecereClass___ecereNameSpace__ecere__com__GlobalFunction = class;
6525 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::GlobalFunction", arch_PointerSize, arch_PointerSize, 1);
6526 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::GlobalFunction", arch_PointerSize, arch_PointerSize, 1);
6527 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6528 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int (*)()", arch_PointerSize, arch_PointerSize, 1);
6529 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6530 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6531 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6532 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6533 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6535 class->fixed = (unsigned int)1;
6536 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::EnumClassData", 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), 0, 0, 0, module, 4, 1);
6537 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6538 __ecereClass___ecereNameSpace__ecere__com__EnumClassData = class;
6539 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "values", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6540 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "largest", "int", 4, 4, 1);
6542 class->fixed = (unsigned int)1;
6543 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Watcher", 0, sizeof(struct __ecereNameSpace__ecere__com__Watcher), 0, 0, 0, module, 2, 1);
6544 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6545 __ecereClass___ecereNameSpace__ecere__com__Watcher = class;
6547 class->fixed = (unsigned int)1;
6548 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemBlock", 0, sizeof(struct __ecereNameSpace__ecere__com__MemBlock), 0, 0, 0, module, 2, 1);
6549 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6550 __ecereClass___ecereNameSpace__ecere__com__MemBlock = class;
6551 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemPart", 0, sizeof(struct __ecereNameSpace__ecere__com__MemPart), 0, 0, 0, module, 2, 1);
6552 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6553 __ecereClass___ecereNameSpace__ecere__com__MemPart = class;
6554 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::BlockPool", 0, sizeof(struct __ecereNameSpace__ecere__com__BlockPool), 0, 0, 0, module, 2, 1);
6555 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6556 __ecereClass___ecereNameSpace__ecere__com__BlockPool = class;
6557 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "ecere::com::MemBlock Add()", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add, 1);
6558 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Expand", "bool Expand(unsigned int numBlocks)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand, 1);
6559 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(ecere::com::MemBlock block)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove, 1);
6560 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6561 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6562 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "free", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6563 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSize", "uint", 4, 4, 1);
6564 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSpace", "uint", 4, 4, 1);
6565 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParts", "int", 4, 4, 1);
6566 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numBlocks", "int", 4, 4, 1);
6567 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "totalSize", "uint", 4, 4, 1);
6568 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "usedSpace", "uint", 4, 4, 1);
6569 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::log2i", "uint ecere::com::log2i(uint number)", __ecereNameSpace__ecere__com__log2i, module, 4);
6570 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::pow2i", "uint ecere::com::pow2i(uint number)", __ecereNameSpace__ecere__com__pow2i, module, 4);
6571 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::memswap", "void ecere::com::memswap(byte * a, byte * b, uint size)", __ecereNameSpace__ecere__com__memswap, module, 4);
6572 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::CheckMemory", "void ecere::com::CheckMemory(void)", __ecereNameSpace__ecere__com__CheckMemory, module, 4);
6573 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_RegisterClass", "ecere::com::Class ecere::com::eSystem_RegisterClass(ecere::com::ClassType type, char * name, char * baseName, int size, int sizeClass, bool (* Constructor)(void *), void (* Destructor)(void *), ecere::com::Module module, ecere::com::AccessMode declMode, ecere::com::AccessMode inheritanceAccess)", __ecereNameSpace__ecere__com__eSystem_RegisterClass, module, 4);
6574 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_Unregister", "void ecere::com::eClass_Unregister(ecere::com::Class _class)", __ecereNameSpace__ecere__com__eClass_Unregister, module, 4);
6575 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoi64", "int64 ecere::com::_strtoi64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoi64, module, 4);
6576 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoui64", "uint64 ecere::com::_strtoui64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoui64, module, 4);
6577 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_FindClass", "ecere::com::Class ecere::com::eSystem_FindClass(ecere::com::Module module, char * name)", __ecereNameSpace__ecere__com__eSystem_FindClass, module, 4);
6578 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::DefaultFunction", "bool ecere::com::DefaultFunction(void)", __ecereNameSpace__ecere__com__DefaultFunction, module, 2);
6579 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_IsDerived", "bool ecere::com::eClass_IsDerived(ecere::com::Class _class, ecere::com::Class from)", __ecereNameSpace__ecere__com__eClass_IsDerived, module, 4);
6580 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddMethod", "ecere::com::Method ecere::com::eClass_AddMethod(ecere::com::Class _class, char * name, char * type, void * function, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eClass_AddMethod, module, 4);
6581 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddVirtualMethod", "ecere::com::Method ecere::com::eClass_AddVirtualMethod(ecere::com::Class _class, char * name, char * type, void * function, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eClass_AddVirtualMethod, module, 4);
6582 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddProperty", "ecere::com::Property ecere::com::eClass_AddProperty(ecere::com::Class _class, char * name, char * dataType, void * setStmt, void * getStmt, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eClass_AddProperty, module, 4);
6583 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddClassProperty", "ecere::com::ClassProperty ecere::com::eClass_AddClassProperty(ecere::com::Class _class, char * name, char * dataType, void * setStmt, void * getStmt)", __ecereNameSpace__ecere__com__eClass_AddClassProperty, module, 4);
6584 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindClassProperty", "ecere::com::ClassProperty ecere::com::eClass_FindClassProperty(ecere::com::Class _class, char * name)", __ecereNameSpace__ecere__com__eClass_FindClassProperty, module, 4);
6585 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_GetProperty", "int64 ecere::com::eClass_GetProperty(ecere::com::Class _class, char * name)", __ecereNameSpace__ecere__com__eClass_GetProperty, module, 4);
6586 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_SetProperty", "void ecere::com::eClass_SetProperty(ecere::com::Class _class, char * name, int64 value)", __ecereNameSpace__ecere__com__eClass_SetProperty, module, 4);
6587 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindMethod", "ecere::com::Method ecere::com::eClass_FindMethod(ecere::com::Class _class, char * name, ecere::com::Module module)", __ecereNameSpace__ecere__com__eClass_FindMethod, module, 4);
6588 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_New", "void * ecere::com::eInstance_New(ecere::com::Class _class)", __ecereNameSpace__ecere__com__eInstance_New, module, 4);
6589 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_Evolve", "void ecere::com::eInstance_Evolve(ecere::com::Instance * instancePtr, ecere::com::Class _class)", __ecereNameSpace__ecere__com__eInstance_Evolve, module, 4);
6590 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_Delete", "void ecere::com::eInstance_Delete(ecere::com::Instance instance)", __ecereNameSpace__ecere__com__eInstance_Delete, module, 4);
6591 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindProperty", "ecere::com::Property ecere::com::eClass_FindProperty(ecere::com::Class _class, char * name, ecere::com::Module module)", __ecereNameSpace__ecere__com__eClass_FindProperty, module, 4);
6592 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindDataMember", "ecere::com::DataMember ecere::com::eClass_FindDataMember(ecere::com::Class _class, char * name, ecere::com::Module module, ecere::com::DataMember * subMemberStack, int * subMemberStackPos)", __ecereNameSpace__ecere__com__eClass_FindDataMember, module, 4);
6593 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindDataMemberAndOffset", "ecere::com::DataMember ecere::com::eClass_FindDataMemberAndOffset(ecere::com::Class _class, char * name, uint * offset, ecere::com::Module module, ecere::com::DataMember * subMemberStack, int * subMemberStackPos)", __ecereNameSpace__ecere__com__eClass_FindDataMemberAndOffset, module, 4);
6594 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindDataMemberAndId", "ecere::com::DataMember ecere::com::eClass_FindDataMemberAndId(ecere::com::Class _class, char * name, int * id, ecere::com::Module module, ecere::com::DataMember * subMemberStack, int * subMemberStackPos)", __ecereNameSpace__ecere__com__eClass_FindDataMemberAndId, module, 4);
6595 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindNextMember", "void ecere::com::eClass_FindNextMember(ecere::com::Class _class, ecere::com::Class * curClass, ecere::com::DataMember * curMember, ecere::com::DataMember * subMemberStack, int * subMemberStackPos)", __ecereNameSpace__ecere__com__eClass_FindNextMember, module, 4);
6596 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_SetMethod", "void ecere::com::eInstance_SetMethod(ecere::com::Instance instance, char * name, void * function)", __ecereNameSpace__ecere__com__eInstance_SetMethod, module, 4);
6597 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_IsDerived", "bool ecere::com::eInstance_IsDerived(ecere::com::Instance instance, ecere::com::Class from)", __ecereNameSpace__ecere__com__eInstance_IsDerived, module, 4);
6598 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_IncRef", "void ecere::com::eInstance_IncRef(ecere::com::Instance instance)", __ecereNameSpace__ecere__com__eInstance_IncRef, module, 4);
6599 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_DecRef", "void ecere::com::eInstance_DecRef(ecere::com::Instance instance)", __ecereNameSpace__ecere__com__eInstance_DecRef, module, 4);
6600 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_Resize", "void ecere::com::eClass_Resize(ecere::com::Class _class, int newSize)", __ecereNameSpace__ecere__com__eClass_Resize, module, 4);
6601 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddDataMember", "ecere::com::DataMember ecere::com::eClass_AddDataMember(ecere::com::Class _class, char * name, char * type, uint size, uint alignment, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eClass_AddDataMember, module, 4);
6602 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eMember_AddDataMember", "ecere::com::DataMember ecere::com::eMember_AddDataMember(ecere::com::DataMember member, char * name, char * type, uint size, uint alignment, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eMember_AddDataMember, module, 4);
6603 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eMember_New", "ecere::com::DataMember ecere::com::eMember_New(ecere::com::DataMemberType type, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eMember_New, module, 4);
6604 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eMember_AddMember", "bool ecere::com::eMember_AddMember(ecere::com::DataMember addTo, ecere::com::DataMember dataMember)", __ecereNameSpace__ecere__com__eMember_AddMember, module, 4);
6605 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddMember", "bool ecere::com::eClass_AddMember(ecere::com::Class _class, ecere::com::DataMember dataMember)", __ecereNameSpace__ecere__com__eClass_AddMember, module, 4);
6606 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddBitMember", "ecere::com::BitMember ecere::com::eClass_AddBitMember(ecere::com::Class _class, char * name, char * type, int bitSize, int bitPos, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eClass_AddBitMember, module, 4);
6607 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eModule_Load", "ecere::com::Module ecere::com::eModule_Load(ecere::com::Module fromModule, char * name, ecere::com::AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_Load, module, 4);
6608 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eModule_LoadStrict", "ecere::com::Module ecere::com::eModule_LoadStrict(ecere::com::Module fromModule, char * name, ecere::com::AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_LoadStrict, module, 4);
6609 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eModule_LoadStatic", "ecere::com::Module ecere::com::eModule_LoadStatic(ecere::com::Module fromModule, char * name, ecere::com::AccessMode importAccess, bool (* Load)(ecere::com::Module module), bool (* Unload)(ecere::com::Module module))", __ecereNameSpace__ecere__com__eModule_LoadStatic, module, 4);
6610 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eModule_Unload", "void ecere::com::eModule_Unload(ecere::com::Module fromModule, ecere::com::Module module)", __ecereNameSpace__ecere__com__eModule_Unload, module, 4);
6611 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eEnum_AddFixedValue", "void ecere::com::eEnum_AddFixedValue(ecere::com::Class _class, char * string, int value)", __ecereNameSpace__ecere__com__eEnum_AddFixedValue, module, 4);
6612 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eEnum_AddValue", "int ecere::com::eEnum_AddValue(ecere::com::Class _class, char * string)", __ecereNameSpace__ecere__com__eEnum_AddValue, module, 4);
6613 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_RegisterDefine", "ecere::com::DefinedExpression ecere::com::eSystem_RegisterDefine(char * name, char * value, ecere::com::Module module, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eSystem_RegisterDefine, module, 4);
6614 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_RegisterFunction", "ecere::com::GlobalFunction ecere::com::eSystem_RegisterFunction(char * name, char * type, void * func, ecere::com::Module module, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eSystem_RegisterFunction, module, 4);
6615 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_FindDefine", "ecere::com::DefinedExpression ecere::com::eSystem_FindDefine(ecere::com::Module module, char * name)", __ecereNameSpace__ecere__com__eSystem_FindDefine, module, 4);
6616 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_FindFunction", "ecere::com::GlobalFunction ecere::com::eSystem_FindFunction(ecere::com::Module module, char * name)", __ecereNameSpace__ecere__com__eSystem_FindFunction, module, 4);
6617 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Renew", "void * ecere::com::eSystem_Renew(void * memory, uint size)", __ecereNameSpace__ecere__com__eSystem_Renew, module, 4);
6618 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Renew0", "void * ecere::com::eSystem_Renew0(void * memory, uint size)", __ecereNameSpace__ecere__com__eSystem_Renew0, module, 4);
6619 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New", "void * ecere::com::eSystem_New(uint size)", __ecereNameSpace__ecere__com__eSystem_New, module, 4);
6620 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New0", "void * ecere::com::eSystem_New0(uint size)", __ecereNameSpace__ecere__com__eSystem_New0, module, 4);
6621 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Delete", "void ecere::com::eSystem_Delete(void * memory)", __ecereNameSpace__ecere__com__eSystem_Delete, module, 4);
6622 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_FireSelfWatchers", "void ecere::com::eInstance_FireSelfWatchers(ecere::com::Instance instance, ecere::com::Property _property)", __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers, module, 4);
6623 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_FireWatchers", "void ecere::com::eInstance_FireWatchers(ecere::com::Instance instance, ecere::com::Property _property)", __ecereNameSpace__ecere__com__eInstance_FireWatchers, module, 4);
6624 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eProperty_Watchable", "void ecere::com::eProperty_Watchable(ecere::com::Property _property)", __ecereNameSpace__ecere__com__eProperty_Watchable, module, 4);
6625 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_DestructionWatchable", "void ecere::com::eClass_DestructionWatchable(ecere::com::Class _class)", __ecereNameSpace__ecere__com__eClass_DestructionWatchable, module, 4);
6626 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eProperty_SelfWatch", "void ecere::com::eProperty_SelfWatch(ecere::com::Class _class, char * name, void (* callback)(void *))", __ecereNameSpace__ecere__com__eProperty_SelfWatch, module, 4);
6627 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_Watch", "void ecere::com::eInstance_Watch(void * instance, ecere::com::Property _property, void * object, void (* callback)(void *, void *))", __ecereNameSpace__ecere__com__eInstance_Watch, module, 4);
6628 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_WatchDestruction", "void ecere::com::eInstance_WatchDestruction(ecere::com::Instance instance, ecere::com::Instance object, void (* callback)(ecere::com::Instance, ecere::com::Instance))", __ecereNameSpace__ecere__com__eInstance_WatchDestruction, module, 4);
6629 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_StopWatching", "void ecere::com::eInstance_StopWatching(ecere::com::Instance instance, ecere::com::Property _property, ecere::com::Instance object)", __ecereNameSpace__ecere__com__eInstance_StopWatching, module, 4);
6630 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_GetDesigner", "subclass(ecere::com::ClassDesignerBase) ecere::com::eClass_GetDesigner(ecere::com::Class _class)", __ecereNameSpace__ecere__com__eClass_GetDesigner, module, 4);
6631 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_GetDesigner", "subclass(ecere::com::ClassDesignerBase) ecere::com::eInstance_GetDesigner(ecere::com::Instance instance)", __ecereNameSpace__ecere__com__eInstance_GetDesigner, module, 4);
6632 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::LocateModule", "bool ecere::com::LocateModule(char * name, char * fileName)", __ecereNameSpace__ecere__com__LocateModule, module, 4);
6633 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::__ecere_COM_Initialize", "ecere::com::Application ecere::com::__ecere_COM_Initialize(bool guiApp, int argc, char * argv[])", __ecereNameSpace__ecere__com____ecere_COM_Initialize, module, 4);
6634 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddTemplateParameter", "ecere::com::ClassTemplateParameter ecere::com::eClass_AddTemplateParameter(ecere::com::Class _class, char * name, ecere::com::TemplateParameterType type, void * info, ecere::com::ClassTemplateArgument defaultArg)", __ecereNameSpace__ecere__com__eClass_AddTemplateParameter, module, 4);
6635 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_DoneAddingTemplateParameters", "void ecere::com::eClass_DoneAddingTemplateParameters(ecere::com::Class base)", __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters, module, 4);
6636 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::Platform", 0, 0, 0, 0, 0, module, 4, 1);
6637 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6638 __ecereClass___ecereNameSpace__ecere__com__Platform = class;
6639 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString, 1);
6640 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString, 1);
6641 __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_ = __ecereNameSpace__ecere__com__eClass_AddProperty(class, 0, "char *", __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_, __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_, 1);
6642 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unknown", 0);
6643 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "win32", 1);
6644 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "tux", 2);
6645 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "apple", 3);
6646 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetRuntimePlatform", "ecere::com::Platform ecere::com::GetRuntimePlatform(void)", __ecereNameSpace__ecere__com__GetRuntimePlatform, module, 4);
6647 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ObjectInfo", 0, sizeof(struct __ecereNameSpace__ecere__com__ObjectInfo), 0, 0, 0, module, 4, 1);
6648 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6649 __ecereClass___ecereNameSpace__ecere__com__ObjectInfo = class;
6650 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6651 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6652 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instance", "ecere::com::Instance", arch_PointerSize, arch_PointerSize, 1);
6653 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6654 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instCode", "Instantiation", arch_PointerSize, arch_PointerSize, 1);
6655 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "deleted", "bool", 4, 4, 1);
6656 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "oClass", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6657 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instances", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6658 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDefinition", "ClassDefinition", arch_PointerSize, arch_PointerSize, 1);
6659 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "modified", "bool", 4, 4, 1);
6660 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::DesignerBase", "ecere::gui::Window", sizeof(struct __ecereNameSpace__ecere__com__DesignerBase), 0, 0, 0, module, 4, 1);
6661 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6662 __ecereClass___ecereNameSpace__ecere__com__DesignerBase = class;
6663 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FindObject", "bool FindObject(ecere::com::Instance * instance, char * string)", 0, 1);
6664 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "RenameObject", "void RenameObject(ecere::com::ObjectInfo object, char * name)", 0, 1);
6665 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObjectFromDesigner", "void SelectObjectFromDesigner(ecere::com::ObjectInfo object)", 0, 1);
6666 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CodeAddObject", "void CodeAddObject(ecere::com::Instance instance, ecere::com::ObjectInfo * object)", 0, 1);
6667 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SheetAddObject", "void SheetAddObject(ecere::com::ObjectInfo object)", 0, 1);
6668 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddToolBoxClass", "void AddToolBoxClass(ecere::com::Class _class)", 0, 1);
6669 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddDefaultMethod", "void AddDefaultMethod(ecere::com::Instance instance, ecere::com::Instance classInstance)", 0, 1);
6670 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DeleteObject", "void DeleteObject(ecere::com::ObjectInfo object)", 0, 1);
6671 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ObjectContainsCode", "bool ObjectContainsCode(ecere::com::ObjectInfo object)", 0, 1);
6672 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ModifyCode", "void ModifyCode(void)", 0, 1);
6673 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "UpdateProperties", "void UpdateProperties(void)", 0, 1);
6674 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDesigner", "ecere::com::ClassDesignerBase", arch_PointerSize, arch_PointerSize, 1);
6675 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "objectClass", "char *", arch_PointerSize, arch_PointerSize, 1);
6676 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isDragging", "bool", 4, 4, 1);
6677 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "classDesigner", "ecere::com::ClassDesignerBase", __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_classDesigner, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_classDesigner, 1);
6678 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6679 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6680 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "objectClass", "char *", __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_objectClass, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_objectClass, 1);
6681 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6682 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6683 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "isDragging", "bool", __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_isDragging, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_isDragging, 1);
6684 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6685 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;
6686 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::ClassDesignerBase", "ecere::gui::Window", 0, 0, 0, 0, module, 4, 1);
6687 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6688 __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase = class;
6689 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Reset", "void Reset(void)", 0, 1);
6690 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddObject", "void AddObject(void)", 0, 1);
6691 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObject", "void SelectObject(ecere::com::ObjectInfo object, ecere::com::Instance control)", 0, 1);
6692 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ListToolBoxClasses", "void ListToolBoxClasses(ecere::com::DesignerBase designer)", 0, 1);
6693 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "PrepareTestObject", "void ::PrepareTestObject(ecere::com::DesignerBase designer, ecere::com::Instance test)", 0, 1);
6694 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CreateObject", "void ::CreateObject(ecere::com::DesignerBase designer, ecere::com::Instance instance, ecere::com::ObjectInfo object, bool isClass, ecere::com::Instance _class)", 0, 1);
6695 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "PostCreateObject", "void ::PostCreateObject(ecere::com::Instance instance, ecere::com::ObjectInfo object, bool isClass, ecere::com::Instance _class)", 0, 1);
6696 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DroppedObject", "void ::DroppedObject(ecere::com::Instance instance, ecere::com::ObjectInfo object, bool isClass, ecere::com::Instance _class)", 0, 1);
6697 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DestroyObject", "void ::DestroyObject(ecere::com::Instance object)", 0, 1);
6698 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FixProperty", "void ::FixProperty(ecere::com::Property prop, ecere::com::Instance object)", 0, 1);
6699 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CreateNew", "void ::CreateNew(EditBox editBox, Size clientSize, char * name, char * inherit)", 0, 1);
6700 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::SetActiveDesigner", "void ecere::com::SetActiveDesigner(ecere::com::DesignerBase designer)", __ecereNameSpace__ecere__com__SetActiveDesigner, module, 4);
6701 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetActiveDesigner", "ecere::com::DesignerBase ecere::com::GetActiveDesigner(void)", __ecereNameSpace__ecere__com__GetActiveDesigner, module, 4);
6702 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_SetPoolingDisabled", "void ecere::com::eSystem_SetPoolingDisabled(bool disabled)", __ecereNameSpace__ecere__com__eSystem_SetPoolingDisabled, module, 4);
6703 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::LEAD_OFFSET", "0xD800 - (0x10000 >> 10)", module, 2);
6704 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::SURROGATE_OFFSET", "0x10000 - (0xD800 << 10) - 0xDC00", module, 2);
6705 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8Validate", "bool ecere::sys::UTF8Validate(char * source)", __ecereNameSpace__ecere__sys__UTF8Validate, module, 4);
6706 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::ISO8859_1toUTF8", "int ecere::sys::ISO8859_1toUTF8(char * source, char * dest, int max)", __ecereNameSpace__ecere__sys__ISO8859_1toUTF8, module, 4);
6707 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8", "char * ecere::sys::UTF16toUTF8(uint16 * source)", __ecereNameSpace__ecere__sys__UTF16toUTF8, module, 4);
6708 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8Buffer", "int ecere::sys::UTF16toUTF8Buffer(uint16 * source, byte * dest, int max)", __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer, module, 4);
6709 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8GetChar", "ecere::com::unichar ecere::sys::UTF8GetChar(char * string, int * numBytes)", __ecereNameSpace__ecere__sys__UTF8GetChar, module, 4);
6710 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16Buffer", "int ecere::sys::UTF8toUTF16Buffer(char * source, uint16 * dest, int max)", __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer, module, 4);
6711 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF32toUTF8Len", "int ecere::sys::UTF32toUTF8Len(ecere::com::unichar * source, int count, byte * dest, int max)", __ecereNameSpace__ecere__sys__UTF32toUTF8Len, module, 4);
6712 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16", "uint16 * ecere::sys::UTF8toUTF16(char * source, int * wordCount)", __ecereNameSpace__ecere__sys__UTF8toUTF16, module, 4);
6715 void __ecereUnregisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
6718 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6719 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6720 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;