1 /* Code generated from eC source file: AVLTree.ec */
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
7 #define __runtimePlatform 2
10 typedef long long int64;
11 typedef unsigned long long uint64;
15 #elif defined(__TINYC__)
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
27 typedef long long int64;
28 typedef unsigned long long uint64;
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
34 #define __ENDIAN_PAD(x) (8 - (x))
36 #define __ENDIAN_PAD(x) 0
39 # if defined(__GNUC__) || defined(__TINYC__)
40 # define ecere_stdcall __attribute__((__stdcall__))
41 # define ecere_gcc_struct __attribute__((gcc_struct))
43 # define ecere_stdcall __stdcall
44 # define ecere_gcc_struct
47 # define ecere_stdcall
48 # define ecere_gcc_struct
51 #include <sys/types.h>
52 struct __ecereNameSpace__ecere__sys__BTNode;
54 struct __ecereNameSpace__ecere__sys__OldList
63 struct __ecereNameSpace__ecere__com__DataValue
78 } ecere_gcc_struct __anon1;
81 struct __ecereNameSpace__ecere__com__SerialBuffer
83 unsigned char * _buffer;
89 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
91 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
93 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
95 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
97 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
99 extern void * memcpy(void * , const void * , size_t size);
101 struct __ecereNameSpace__ecere__com__CustomAVLTree
103 struct __ecereNameSpace__ecere__com__AVLNode * root;
107 struct __ecereNameSpace__ecere__com__ClassTemplateParameter;
109 struct __ecereNameSpace__ecere__com__IteratorPointer;
111 struct __ecereNameSpace__ecere__com__Class;
113 struct __ecereNameSpace__ecere__com__Instance
116 struct __ecereNameSpace__ecere__com__Class * _class;
120 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
122 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
124 extern void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base);
126 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
128 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
130 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Find;
132 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove;
134 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Add;
136 struct __ecereNameSpace__ecere__com__Property;
138 struct __ecereNameSpace__ecere__com__Property
140 struct __ecereNameSpace__ecere__com__Property * prev;
141 struct __ecereNameSpace__ecere__com__Property * next;
143 unsigned int isProperty;
146 struct __ecereNameSpace__ecere__com__Class * _class;
147 const char * dataTypeString;
148 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
149 struct __ecereNameSpace__ecere__com__Instance * dataType;
150 void (* Set)(void * , int);
151 int (* Get)(void * );
152 unsigned int (* IsSet)(void * );
156 unsigned int conversion;
157 unsigned int watcherOffset;
158 const char * category;
159 unsigned int compiled;
160 unsigned int selfWatchable;
161 unsigned int isWatchable;
164 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
166 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
168 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
170 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
172 struct __ecereNameSpace__ecere__com__AVLNode;
174 struct __ecereNameSpace__ecere__com__AVLNode
176 struct __ecereNameSpace__ecere__com__AVLNode * parent;
177 struct __ecereNameSpace__ecere__com__AVLNode * left;
178 struct __ecereNameSpace__ecere__com__AVLNode * right;
183 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Find(struct __ecereNameSpace__ecere__com__AVLNode * this, struct __ecereNameSpace__ecere__com__Class * Tclass, const uint64 key);
185 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(struct __ecereNameSpace__ecere__com__AVLNode * this, const uint64 key);
187 struct __ecereNameSpace__ecere__sys__BinaryTree;
189 struct __ecereNameSpace__ecere__sys__BinaryTree
191 struct __ecereNameSpace__ecere__sys__BTNode * root;
193 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
194 void (* FreeKey)(void * key);
197 struct __ecereNameSpace__ecere__com__Method;
199 struct __ecereNameSpace__ecere__com__Method
202 struct __ecereNameSpace__ecere__com__Method * parent;
203 struct __ecereNameSpace__ecere__com__Method * left;
204 struct __ecereNameSpace__ecere__com__Method * right;
209 struct __ecereNameSpace__ecere__com__Class * _class;
211 const char * dataTypeString;
212 struct __ecereNameSpace__ecere__com__Instance * dataType;
216 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, const char * type, void * function, int declMode);
218 struct __ecereNameSpace__ecere__com__Module;
220 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, const char * name, const char * baseName, int size, int sizeClass, unsigned int (* Constructor)(void * ), void (* Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
222 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
224 struct __ecereNameSpace__ecere__com__NameSpace;
226 struct __ecereNameSpace__ecere__com__NameSpace
229 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
230 struct __ecereNameSpace__ecere__com__NameSpace * left;
231 struct __ecereNameSpace__ecere__com__NameSpace * right;
233 struct __ecereNameSpace__ecere__com__NameSpace * parent;
234 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
235 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
236 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
237 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
240 struct __ecereNameSpace__ecere__com__Application
245 unsigned int isGUIApp;
246 struct __ecereNameSpace__ecere__sys__OldList allModules;
247 char * parsedCommand;
248 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
251 struct __ecereNameSpace__ecere__com__Module
253 struct __ecereNameSpace__ecere__com__Instance * application;
254 struct __ecereNameSpace__ecere__sys__OldList classes;
255 struct __ecereNameSpace__ecere__sys__OldList defines;
256 struct __ecereNameSpace__ecere__sys__OldList functions;
257 struct __ecereNameSpace__ecere__sys__OldList modules;
258 struct __ecereNameSpace__ecere__com__Instance * prev;
259 struct __ecereNameSpace__ecere__com__Instance * next;
265 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
266 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
269 void __ecereUnregisterModule_AVLTree(struct __ecereNameSpace__ecere__com__Instance * module)
274 struct __ecereNameSpace__ecere__com__DataMember;
276 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
282 const char * dataTypeString;
283 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
284 } ecere_gcc_struct __anon1;
285 struct __ecereNameSpace__ecere__com__DataValue expression;
288 const char * memberString;
291 struct __ecereNameSpace__ecere__com__DataMember * member;
292 struct __ecereNameSpace__ecere__com__Property * prop;
293 struct __ecereNameSpace__ecere__com__Method * method;
294 } ecere_gcc_struct __anon1;
295 } ecere_gcc_struct __anon2;
296 } ecere_gcc_struct __anon1;
299 struct __ecereNameSpace__ecere__com__DataMember
301 struct __ecereNameSpace__ecere__com__DataMember * prev;
302 struct __ecereNameSpace__ecere__com__DataMember * next;
304 unsigned int isProperty;
307 struct __ecereNameSpace__ecere__com__Class * _class;
308 const char * dataTypeString;
309 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
310 struct __ecereNameSpace__ecere__com__Instance * dataType;
314 struct __ecereNameSpace__ecere__sys__OldList members;
315 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
317 short structAlignment;
318 short pointerAlignment;
321 struct __ecereNameSpace__ecere__com__Class
323 struct __ecereNameSpace__ecere__com__Class * prev;
324 struct __ecereNameSpace__ecere__com__Class * next;
330 unsigned int (* Constructor)(void * );
331 void (* Destructor)(void * );
334 struct __ecereNameSpace__ecere__com__Class * base;
335 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
336 struct __ecereNameSpace__ecere__sys__BinaryTree members;
337 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
338 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
339 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
340 struct __ecereNameSpace__ecere__sys__OldList derivatives;
344 struct __ecereNameSpace__ecere__com__Instance * module;
345 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
346 const char * dataTypeString;
347 struct __ecereNameSpace__ecere__com__Instance * dataType;
349 int defaultAlignment;
350 void (* Initialize)();
352 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
353 const char * designerClass;
354 unsigned int noExpansion;
355 const char * defaultProperty;
356 unsigned int comRedefinition;
359 unsigned int internalDecl;
361 unsigned int computeSize;
362 short structAlignment;
363 short pointerAlignment;
364 int destructionWatchOffset;
366 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
367 int inheritanceAccess;
368 const char * fullName;
370 struct __ecereNameSpace__ecere__sys__OldList conversions;
371 struct __ecereNameSpace__ecere__sys__OldList templateParams;
372 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
373 struct __ecereNameSpace__ecere__com__Class * templateClass;
374 struct __ecereNameSpace__ecere__sys__OldList templatized;
376 unsigned int isInstanceClass;
377 unsigned int byValueSystemClass;
380 extern struct __ecereNameSpace__ecere__com__ClassTemplateParameter * __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, int type, const void * info, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * defaultArg);
382 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AVLTree;
384 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
386 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree;
388 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AVLNode;
390 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IteratorPointer;
392 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
394 uint64 __ecereMethod___ecereNameSpace__ecere__com__AVLTree_GetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__AVLNode * node)
396 return node ? ((((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon1.dataTypeClass->type == 1) ? (uint64)(uintptr_t)(((unsigned char *)&node->key) + __ENDIAN_PAD(sizeof(void *))) : node->key) : (uint64)0;
399 unsigned int __ecereMethod___ecereNameSpace__ecere__com__AVLTree_SetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__AVLNode * node, uint64 value)
401 if(!((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 value))__extension__ ({
402 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
404 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__AVLTree->_vTbl;
405 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Find])(this, value))
407 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
408 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
410 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__AVLTree->_vTbl;
411 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove])(this, (void *)(node));
412 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon1.dataTypeClass->type == 1)
413 memcpy((void *)(((unsigned char *)&node->key) + __ENDIAN_PAD(sizeof(void *))), (void *)(uintptr_t)value, ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon1.dataTypeClass->structSize);
416 ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__ecereClass___ecereNameSpace__ecere__com__AVLTree->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add])(this, (uint64)(uintptr_t)node);
422 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLTree_Find(struct __ecereNameSpace__ecere__com__Instance * this, const uint64 key)
424 struct __ecereNameSpace__ecere__com__AVLNode * root = ((struct __ecereNameSpace__ecere__com__CustomAVLTree *)(((char *)this + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->root;
426 return root ? __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Find(root, ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon1.dataTypeClass, key) : (((void *)0));
429 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLTree_FindAll(struct __ecereNameSpace__ecere__com__Instance * this, const uint64 key)
431 struct __ecereNameSpace__ecere__com__AVLNode * root = ((struct __ecereNameSpace__ecere__com__CustomAVLTree *)(((char *)this + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->root;
433 return root ? __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(root, key) : (((void *)0));
436 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLTree_Add(struct __ecereNameSpace__ecere__com__Instance * this, uint64 value)
438 struct __ecereNameSpace__ecere__com__AVLNode * node;
440 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon1.dataTypeClass->type == 1)
442 node = (struct __ecereNameSpace__ecere__com__AVLNode *)__ecereNameSpace__ecere__com__eSystem_New0(sizeof(unsigned char) * (sizeof(struct __ecereNameSpace__ecere__com__AVLNode) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon1.dataTypeClass->structSize - sizeof node->key));
443 memcpy((void *)(((unsigned char *)&node->key) + __ENDIAN_PAD(sizeof(void *))), (void *)(uintptr_t)value, ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[5].__anon1.__anon1.dataTypeClass->structSize);
446 node = (struct __ecereNameSpace__ecere__com__AVLNode *)__extension__ ({
447 struct __ecereNameSpace__ecere__com__AVLNode * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__AVLNode));
449 __ecereInstance1->key = value, __ecereInstance1;
451 if(!((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__ecereClass___ecereNameSpace__ecere__com__CustomAVLTree->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add])(this, (uint64)(uintptr_t)node))
452 ((node ? (__ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor ? __ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor((void *)node) : 0, __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor ? __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor((void *)node) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(node)) : 0), node = 0);
456 void __ecereMethod___ecereNameSpace__ecere__com__AVLTree_Remove(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__AVLNode * node)
458 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__ecereClass___ecereNameSpace__ecere__com__CustomAVLTree->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove])(this, (void *)(node));
459 ((node ? (__ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor ? __ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor((void *)node) : 0, __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor ? __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor((void *)node) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(node)) : 0), node = 0);
462 void __ecereRegisterModule_AVLTree(struct __ecereNameSpace__ecere__com__Instance * module)
464 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
466 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::AVLTree", "ecere::com::CustomAVLTree<BT = ecere::com::AVLNode<AT>, KT = AT, T = AT, D = AT>", 0, 0, (void *)0, (void *)0, module, 4, 1);
467 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application && class)
468 __ecereClass___ecereNameSpace__ecere__com__AVLTree = class;
469 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetData", 0, __ecereMethod___ecereNameSpace__ecere__com__AVLTree_GetData, 1);
470 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "SetData", 0, __ecereMethod___ecereNameSpace__ecere__com__AVLTree_SetData, 1);
471 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", 0, __ecereMethod___ecereNameSpace__ecere__com__AVLTree_Add, 1);
472 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", 0, __ecereMethod___ecereNameSpace__ecere__com__AVLTree_Remove, 1);
473 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", 0, __ecereMethod___ecereNameSpace__ecere__com__AVLTree_Find, 1);
474 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "AT", 0, 0, (((void *)0)));
475 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
477 class->fixed = (unsigned int)1;