2 typedef long long int64;
3 typedef unsigned long long uint64;
7 #elif defined(__TINYC__)
9 #define __builtin_va_list va_list
10 #define __builtin_va_start va_start
11 #define __builtin_va_end va_end
13 #define strcasecmp stricmp
14 #define strncasecmp strnicmp
15 #define __declspec(x) __attribute__((x))
19 typedef long long int64;
20 typedef unsigned long long uint64;
22 typedef __int64 int64;
23 typedef unsigned __int64 uint64;
26 #define __ENDIAN_PAD(x) (8 - (x))
28 #define __ENDIAN_PAD(x) 0
31 #include <sys/types.h>
33 #if defined(_W64) || (defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
39 #define arch_PointerSize sizeof(void *)
40 #define structSize_Instance (_64BIT ? 24 : 12)
42 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
44 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
46 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
48 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
50 struct __ecereNameSpace__ecere__sys__BTNode
53 struct __ecereNameSpace__ecere__sys__BTNode * parent, * left, * right;
55 } __attribute__ ((gcc_struct));
57 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
59 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
61 struct __ecereNameSpace__ecere__sys__BinaryTree
63 struct __ecereNameSpace__ecere__sys__BTNode * root;
65 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
66 void (* FreeKey)(void * key);
67 } __attribute__ ((gcc_struct));
69 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
71 struct __ecereNameSpace__ecere__sys__OldList
78 } __attribute__ ((gcc_struct));
80 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
82 struct __ecereNameSpace__ecere__com__Class
84 struct __ecereNameSpace__ecere__com__Class * prev;
85 struct __ecereNameSpace__ecere__com__Class * next;
91 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
92 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
95 struct __ecereNameSpace__ecere__com__Class * base;
96 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
97 struct __ecereNameSpace__ecere__sys__BinaryTree members;
98 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
99 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
100 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
101 struct __ecereNameSpace__ecere__sys__OldList derivatives;
105 struct __ecereNameSpace__ecere__com__Instance * module;
106 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
107 char * dataTypeString;
108 struct __ecereNameSpace__ecere__com__Instance * dataType;
110 int defaultAlignment;
111 void (* Initialize)();
113 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
114 char * designerClass;
115 unsigned int noExpansion;
116 char * defaultProperty;
117 unsigned int comRedefinition;
119 unsigned int isRemote;
120 unsigned int internalDecl;
122 unsigned int computeSize;
124 int destructionWatchOffset;
126 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
127 int inheritanceAccess;
130 struct __ecereNameSpace__ecere__sys__OldList conversions;
131 struct __ecereNameSpace__ecere__sys__OldList templateParams;
132 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
133 struct __ecereNameSpace__ecere__com__Class * templateClass;
134 struct __ecereNameSpace__ecere__sys__OldList templatized;
136 } __attribute__ ((gcc_struct));
138 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name);
140 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
142 struct __ecereNameSpace__ecere__com__Instance
145 struct __ecereNameSpace__ecere__com__Class * _class;
147 } __attribute__ ((gcc_struct));
149 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
151 struct __ecereNameSpace__ecere__com__Property
153 struct __ecereNameSpace__ecere__com__Property * prev;
154 struct __ecereNameSpace__ecere__com__Property * next;
156 unsigned int isProperty;
159 struct __ecereNameSpace__ecere__com__Class * _class;
160 char * dataTypeString;
161 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
162 struct __ecereNameSpace__ecere__com__Instance * dataType;
163 void (* Set)(void * , int);
164 int (* Get)(void * );
165 unsigned int (* IsSet)(void * );
169 unsigned int conversion;
170 unsigned int watcherOffset;
172 unsigned int compiled;
173 unsigned int selfWatchable;
174 unsigned int isWatchable;
175 } __attribute__ ((gcc_struct));
177 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
179 struct __ecereNameSpace__ecere__com__DataMember
181 struct __ecereNameSpace__ecere__com__DataMember * prev;
182 struct __ecereNameSpace__ecere__com__DataMember * next;
184 unsigned int isProperty;
187 struct __ecereNameSpace__ecere__com__Class * _class;
188 char * dataTypeString;
189 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
190 struct __ecereNameSpace__ecere__com__Instance * dataType;
194 struct __ecereNameSpace__ecere__sys__OldList members;
195 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
198 } __attribute__ ((gcc_struct));
200 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
202 struct __ecereNameSpace__ecere__com__Method
205 struct __ecereNameSpace__ecere__com__Method * parent;
206 struct __ecereNameSpace__ecere__com__Method * left;
207 struct __ecereNameSpace__ecere__com__Method * right;
212 struct __ecereNameSpace__ecere__com__Class * _class;
214 char * dataTypeString;
215 struct __ecereNameSpace__ecere__com__Instance * dataType;
217 } __attribute__ ((gcc_struct));
219 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
221 struct __ecereNameSpace__ecere__com__SerialBuffer
223 unsigned char * _buffer;
227 } __attribute__ ((gcc_struct));
229 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
231 struct __ecereNameSpace__ecere__com__DataValue
246 } __attribute__ ((gcc_struct));
247 } __attribute__ ((gcc_struct));
249 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
251 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
257 char * dataTypeString;
258 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
259 } __attribute__ ((gcc_struct));
260 struct __ecereNameSpace__ecere__com__DataValue expression;
266 struct __ecereNameSpace__ecere__com__DataMember * member;
267 struct __ecereNameSpace__ecere__com__Property * prop;
268 struct __ecereNameSpace__ecere__com__Method * method;
269 } __attribute__ ((gcc_struct));
270 } __attribute__ ((gcc_struct));
271 } __attribute__ ((gcc_struct));
272 } __attribute__ ((gcc_struct));
274 typedef __builtin_va_list va_list;
276 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TreePrintStyle;
278 extern int vsprintf(char * , const char * , __builtin_va_list);
280 extern size_t strlen(const char * );
282 void __ecereNameSpace__ecere__sys__strcatf(char * string, char * format, ...)
286 __builtin_va_start(args, format);
287 vsprintf(string + strlen(string), format, args);
288 __builtin_va_end(args);
291 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_prev, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev;
293 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_next, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next;
295 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_count, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count;
297 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_balanceFactor, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor;
299 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
301 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_bool;
303 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uintptr;
305 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uint;
307 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnSerialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__com__Instance * channel)
309 if((struct __ecereNameSpace__ecere__sys__BTNode *)this)
311 unsigned int truth = 0x1;
313 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_bool, &truth);
314 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uintptr, &this->key);
315 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, this->left);
316 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, this->right);
320 unsigned int nothing = 0;
322 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uint, ¬hing);
326 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
328 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data);
330 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(struct __ecereNameSpace__ecere__sys__BTNode * this);
332 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_depthProp, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp;
334 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__BTNode ** this, struct __ecereNameSpace__ecere__com__Instance * channel)
338 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_bool, &truth);
341 (*(this)) = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__BTNode);
342 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_uintptr, &(*(this))->key);
343 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, &(*(this))->left);
346 (*(this))->left->parent = (void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this;
348 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, &(*(this))->right);
351 (*(this))->right->parent = (void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this;
353 (*(this))->depth = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(((struct __ecereNameSpace__ecere__sys__BTNode *)(void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this));
356 (*(this)) = (((void *)0));
359 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(struct __ecereNameSpace__ecere__sys__BTNode * this);
361 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_maximum, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum;
363 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_prev(struct __ecereNameSpace__ecere__sys__BTNode * this)
366 return __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(this->left);
369 if(this->parent && this == this->parent->right)
377 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(struct __ecereNameSpace__ecere__sys__BTNode * this);
379 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_minimum, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum;
381 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this)
383 struct __ecereNameSpace__ecere__sys__BTNode * right = this->right;
386 return __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(right);
389 struct __ecereNameSpace__ecere__sys__BTNode * parent = this->parent;
391 if(parent && this == parent->left)
396 return (((void *)0));
399 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(struct __ecereNameSpace__ecere__sys__BTNode * this)
406 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(struct __ecereNameSpace__ecere__sys__BTNode * this)
413 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count(struct __ecereNameSpace__ecere__sys__BTNode * this)
415 return 1 + (this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count(this->left) : 0) + (this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count(this->right) : 0);
418 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(struct __ecereNameSpace__ecere__sys__BTNode * this)
420 int leftDepth = this->left ? (__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->left) + 1) : 0;
421 int rightDepth = this->right ? (__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->right) + 1) : 0;
423 return ((leftDepth > rightDepth) ? leftDepth : rightDepth);
426 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(struct __ecereNameSpace__ecere__sys__BTNode * this, void (* FreeKey)(void * key))
429 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(this->left, FreeKey);
431 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(this->right, FreeKey);
433 FreeKey((void *)this->key);
434 ((this ? (__ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor ? __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor(this) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(this)) : 0), this = 0);
437 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Add(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree, struct __ecereNameSpace__ecere__sys__BTNode * node)
439 uintptr_t newKey = node->key;
443 int result = tree->CompareKey(tree, newKey, this->key);
459 struct __ecereNameSpace__ecere__sys__BTNode * n;
461 for(n = this; n; n = n->parent)
463 int __simpleStruct0, __simpleStruct1;
464 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
466 if(newDepth == n->depth)
484 struct __ecereNameSpace__ecere__sys__BTNode * n;
486 for(n = this; n; n = n->parent)
488 int __simpleStruct0, __simpleStruct1;
489 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
491 if(newDepth == n->depth)
502 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BTNode * node)
506 else if(this->left && __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(this->left, node))
508 else if(this->right && __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(this->right, node))
513 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Find(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t key)
517 int result = tree->CompareKey(tree, key, this->key);
529 extern int strcmp(const char * , const char * );
531 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindString(struct __ecereNameSpace__ecere__sys__BTNode * this, char * key)
538 result = strcmp(key, (char *)this->key);
539 else if(key && !this->key)
541 else if(!key && this->key)
555 extern int strncmp(const char * , const char * , size_t n);
557 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindPrefix(struct __ecereNameSpace__ecere__sys__BTNode * this, char * key)
559 struct __ecereNameSpace__ecere__sys__BTNode * subString = (((void *)0));
560 int len = key ? strlen(key) : 0;
567 result = strcmp(key, (char *)this->key);
568 else if(key && !this->key)
570 else if(!key && this->key)
576 if(!strncmp(key, (char *)this->key, len))
591 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(struct __ecereNameSpace__ecere__sys__BTNode * this, uintptr_t key)
593 struct __ecereNameSpace__ecere__sys__BTNode * result = (((void *)0));
597 if(!result && this->left)
598 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(this->left, key);
599 if(!result && this->right)
600 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(this->right, key);
604 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BTNode * swap)
608 swap->left->parent = swap->parent;
609 if(swap == swap->parent->left)
610 swap->parent->left = swap->left;
611 else if(swap == swap->parent->right)
612 swap->parent->right = swap->left;
613 swap->left = (((void *)0));
617 swap->right->parent = swap->parent;
618 if(swap == swap->parent->left)
619 swap->parent->left = swap->right;
620 else if(swap == swap->parent->right)
621 swap->parent->right = swap->right;
622 swap->right = (((void *)0));
624 if(swap == swap->parent->left)
625 swap->parent->left = (((void *)0));
626 else if(swap == swap->parent->right)
627 swap->parent->right = (((void *)0));
629 struct __ecereNameSpace__ecere__sys__BTNode * n;
631 for(n = swap->parent; n; n = n->parent)
633 int __simpleStruct0, __simpleStruct1;
634 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
636 if(newDepth == n->depth)
644 swap->left = this->left;
646 this->left->parent = swap;
649 swap->right = this->right;
651 this->right->parent = swap;
653 swap->parent = this->parent;
654 this->left = (((void *)0));
655 this->right = (((void *)0));
658 if(this == this->parent->left)
659 this->parent->left = swap;
660 else if(this == this->parent->right)
661 this->parent->right = swap;
665 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance();
667 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
669 struct __ecereNameSpace__ecere__sys__BTNode * swap = this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(this->left) : this->right;
670 struct __ecereNameSpace__ecere__sys__BTNode * swapParent = (((void *)0));
674 swapParent = swap->parent;
675 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(this, swap);
679 if(this == this->parent->left)
680 this->parent->left = (((void *)0));
681 else if(this == this->parent->right)
682 this->parent->right = (((void *)0));
685 struct __ecereNameSpace__ecere__sys__BTNode * n;
687 for(n = swap ? swap : this->parent; n; n = n->parent)
689 int __simpleStruct0, __simpleStruct1;
690 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
692 if(newDepth == n->depth && n != swap)
697 if(swapParent && swapParent != this)
698 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swapParent);
700 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swap);
701 else if(this->parent)
702 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(this->parent);
704 return (((void *)0));
707 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
709 struct __ecereNameSpace__ecere__sys__BTNode * result;
710 struct __ecereNameSpace__ecere__sys__BTNode * swap = this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(this->right) : this->left;
711 struct __ecereNameSpace__ecere__sys__BTNode * swapParent = (((void *)0));
715 swapParent = swap->parent;
716 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(this, swap);
720 if(this == this->parent->left)
721 this->parent->left = (((void *)0));
722 else if(this == this->parent->right)
723 this->parent->right = (((void *)0));
726 struct __ecereNameSpace__ecere__sys__BTNode * n;
728 for(n = swap ? swap : this->parent; n; n = n->parent)
730 int __simpleStruct0, __simpleStruct1;
731 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
733 if(newDepth == n->depth && n != swap)
738 if(swapParent && swapParent != this)
739 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swapParent);
741 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swap);
742 else if(this->parent)
743 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(this->parent);
745 result = (((void *)0));
749 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(struct __ecereNameSpace__ecere__sys__BTNode * this)
751 int leftDepth = this->left ? (this->left->depth + 1) : 0;
752 int rightDepth = this->right ? (this->right->depth + 1) : 0;
754 return rightDepth - leftDepth;
757 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight();
759 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight();
761 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft();
763 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft();
765 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(struct __ecereNameSpace__ecere__sys__BTNode * this)
769 int factor = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this);
773 if(__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this->left) == 1)
774 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight(this);
776 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this);
780 if(__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this->right) == -1)
781 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft(this);
783 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this);
792 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
794 int __simpleStruct2, __simpleStruct3;
795 int __simpleStruct0, __simpleStruct1;
799 if(this == this->parent->left)
800 this->parent->left = this->left;
801 else if(this == this->parent->right)
802 this->parent->right = this->left;
804 this->left->parent = this->parent;
805 this->parent = this->left;
806 this->left = this->parent->right;
808 this->left->parent = this;
809 this->parent->right = this;
810 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
811 this->parent->depth = (__simpleStruct2 = this->parent->left ? (this->parent->left->depth + 1) : 0, __simpleStruct3 = this->parent->right ? (this->parent->right->depth + 1) : 0, (__simpleStruct2 > __simpleStruct3) ? __simpleStruct2 : __simpleStruct3);
813 struct __ecereNameSpace__ecere__sys__BTNode * n;
815 for(n = this->parent->parent; n; n = n->parent)
817 int __simpleStruct0, __simpleStruct1;
818 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
820 if(newDepth == n->depth)
827 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
829 int __simpleStruct2, __simpleStruct3;
830 int __simpleStruct0, __simpleStruct1;
834 if(this == this->parent->right)
835 this->parent->right = this->right;
836 else if(this == this->parent->left)
837 this->parent->left = this->right;
839 this->right->parent = this->parent;
840 this->parent = this->right;
841 this->right = this->parent->left;
843 this->right->parent = this;
844 this->parent->left = this;
845 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
846 this->parent->depth = (__simpleStruct2 = this->parent->left ? (this->parent->left->depth + 1) : 0, __simpleStruct3 = this->parent->right ? (this->parent->right->depth + 1) : 0, (__simpleStruct2 > __simpleStruct3) ? __simpleStruct2 : __simpleStruct3);
848 struct __ecereNameSpace__ecere__sys__BTNode * n;
850 for(n = this->parent->parent; n; n = n->parent)
852 int __simpleStruct0, __simpleStruct1;
853 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
855 if(newDepth == n->depth)
862 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
864 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this->left);
865 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this);
868 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
870 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this->right);
871 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this);
874 extern char * strcat(char * , const char * );
876 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int wantedDepth, int curDepth, int maxDepth, unsigned int last);
878 char * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int tps)
887 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
889 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(this->left, output, tps);
891 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
893 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(this->right, output, tps);
895 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
900 int maxDepth = this->depth;
903 for(curDepth = 0; curDepth <= maxDepth; curDepth++)
907 for(c = 0; c < ((1 << (maxDepth - curDepth)) - 1) * 4 / 2; c++)
909 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(this, output, curDepth, 0, maxDepth, 0x1);
910 strcat(output, "\n");
915 return (((void *)0));
918 extern int sprintf(char * , char * , ...);
920 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int wantedDepth, int curDepth, int maxDepth, unsigned int last)
924 if(wantedDepth == curDepth)
926 char nodeString[10] = "";
930 sprintf(nodeString, "%d", this->key);
931 len = strlen(nodeString);
932 for(c = 0; c < (4 - len) / 2; c++)
935 strcat(output, nodeString);
936 for(c = len; c < 4; c++)
938 if(curDepth && !last)
940 for(c = 0; c < ((1 << (maxDepth - curDepth)) - 1) * 4; c++)
944 else if(curDepth <= maxDepth)
946 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth((this ? this->left : (struct __ecereNameSpace__ecere__sys__BTNode *)(((void *)0))), output, wantedDepth, curDepth + 1, maxDepth, last && this && !this->right);
947 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth((this ? this->right : (struct __ecereNameSpace__ecere__sys__BTNode *)(((void *)0))), output, wantedDepth, curDepth + 1, maxDepth, last);
951 extern int printf(char * , ...);
953 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree)
955 unsigned int valid = 0x1;
956 int leftHeight = this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->left) + 1 : 0;
957 int rightHeight = this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->right) + 1 : 0;
958 int diffHeight = rightHeight - leftHeight;
962 if(this->left->parent != this)
964 printf("Parent not set properly at node %d\n", this->left->key);
967 valid *= __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(this->left, tree);
971 if(this->right->parent != this)
973 printf("Parent not set properly at node %d\n", this->right->key);
976 valid *= __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(this->right, tree);
978 if(this->depth != __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this))
980 printf("Depth value at node %d (%d) doesn't match depth property (%d)\n", this->key, this->depth, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this));
981 valid = (unsigned int)0;
983 if(diffHeight < -1 || diffHeight > 1)
985 valid = (unsigned int)0;
986 printf("Height difference is %d at node %d\n", diffHeight, this->key);
988 if(diffHeight != __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this))
990 valid = (unsigned int)0;
991 printf("Height difference %d doesnt match balance-factor of %d at node \n", diffHeight, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this), this->key);
993 if(this->left && tree->CompareKey(tree, this->left->key, this->key) > 0)
996 printf("Node %d is *smaller* than left subtree %d\n", this->key, this->left->key);
998 if(this->right && tree->CompareKey(tree, this->right->key, this->key) < 0)
1001 printf("Node %d is *greater* than right subtree %d\n", this->key, this->right->key);
1006 struct __ecereNameSpace__ecere__sys__StringBTNode
1009 struct __ecereNameSpace__ecere__sys__StringBTNode * parent, * left, * right;
1011 } __attribute__ ((gcc_struct));
1013 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__StringBTNode;
1015 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
1017 void __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnSerialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__StringBTNode * this, struct __ecereNameSpace__ecere__com__Instance * channel)
1019 if((struct __ecereNameSpace__ecere__sys__StringBTNode *)this)
1021 unsigned int truth = 0x1;
1023 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_bool, &truth);
1024 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_String, this->key);
1025 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, this->left);
1026 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, this->right);
1030 unsigned int nothing = 0;
1032 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uint, ¬hing);
1036 void __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__StringBTNode ** this, struct __ecereNameSpace__ecere__com__Instance * channel)
1040 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_bool, &truth);
1043 (*(this)) = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__StringBTNode);
1044 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &(*(this))->key);
1045 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, &(*(this))->left);
1048 (*(this))->left->parent = (void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this;
1050 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, &(*(this))->right);
1051 if((*(this))->right)
1053 (*(this))->right->parent = (void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this;
1055 (*(this))->depth = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(((struct __ecereNameSpace__ecere__sys__BTNode *)((void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this)));
1058 (*(this)) = (((void *)0));
1061 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char * name, char * baseName, int size, int sizeClass, unsigned int (* )(void * ), void (* )(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
1063 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
1065 struct __ecereNameSpace__ecere__com__NameSpace
1068 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
1069 struct __ecereNameSpace__ecere__com__NameSpace * left;
1070 struct __ecereNameSpace__ecere__com__NameSpace * right;
1072 struct __ecereNameSpace__ecere__com__NameSpace * parent;
1073 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1074 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1075 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1076 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1077 } __attribute__ ((gcc_struct));
1079 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
1081 struct __ecereNameSpace__ecere__com__Module
1083 struct __ecereNameSpace__ecere__com__Instance * application;
1084 struct __ecereNameSpace__ecere__sys__OldList classes;
1085 struct __ecereNameSpace__ecere__sys__OldList defines;
1086 struct __ecereNameSpace__ecere__sys__OldList functions;
1087 struct __ecereNameSpace__ecere__sys__OldList modules;
1088 struct __ecereNameSpace__ecere__com__Instance * prev;
1089 struct __ecereNameSpace__ecere__com__Instance * next;
1095 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1096 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1097 } __attribute__ ((gcc_struct));
1099 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
1101 extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value);
1103 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
1105 struct __ecereNameSpace__ecere__com__GlobalFunction;
1107 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
1109 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode);
1111 extern 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);
1113 extern 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);
1115 void __ecereRegisterModule_BTNode(struct __ecereNameSpace__ecere__com__Instance * module)
1117 struct __ecereNameSpace__ecere__com__Class * class;
1119 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::TreePrintStyle", 0, 0, 0, 0, 0, module, 4, 1);
1120 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
1121 __ecereClass___ecereNameSpace__ecere__sys__TreePrintStyle = class;
1122 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "inOrder", 0);
1123 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "postOrder", 1);
1124 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preOrder", 2);
1125 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "depthOrder", 3);
1126 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::strcatf", "void ecere::sys::strcatf(char * string, char * format, ...)", __ecereNameSpace__ecere__sys__strcatf, module, 4);
1127 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::BTNode", 0, sizeof(struct __ecereNameSpace__ecere__sys__BTNode), 0, 0, 0, module, 4, 1);
1128 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
1129 __ecereClass___ecereNameSpace__ecere__sys__BTNode = class;
1130 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnSerialize, 1);
1131 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnUnserialize, 1);
1132 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindPrefix", "ecere::sys::BTNode FindPrefix(char * key)", __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindPrefix, 1);
1133 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindString", "ecere::sys::BTNode FindString(char * key)", __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindString, 1);
1134 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "uintptr", arch_PointerSize, arch_PointerSize, 1);
1135 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::sys::BTNode", arch_PointerSize, arch_PointerSize, 1);
1136 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::sys::BTNode", arch_PointerSize, arch_PointerSize, 1);
1137 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::sys::BTNode", arch_PointerSize, arch_PointerSize, 1);
1138 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
1139 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "prev", "ecere::sys::BTNode", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_prev, 1);
1140 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
1141 __ecereProp___ecereNameSpace__ecere__sys__BTNode_prev = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = (void *)0;
1142 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "next", "ecere::sys::BTNode", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next, 1);
1143 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
1144 __ecereProp___ecereNameSpace__ecere__sys__BTNode_next = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = (void *)0;
1145 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "minimum", "ecere::sys::BTNode", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum, 1);
1146 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
1147 __ecereProp___ecereNameSpace__ecere__sys__BTNode_minimum = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = (void *)0;
1148 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "maximum", "ecere::sys::BTNode", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum, 1);
1149 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
1150 __ecereProp___ecereNameSpace__ecere__sys__BTNode_maximum = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = (void *)0;
1151 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "count", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count, 1);
1152 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
1153 __ecereProp___ecereNameSpace__ecere__sys__BTNode_count = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = (void *)0;
1154 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "depthProp", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp, 1);
1155 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
1156 __ecereProp___ecereNameSpace__ecere__sys__BTNode_depthProp = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = (void *)0;
1157 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "balanceFactor", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor, 2);
1158 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
1159 __ecereProp___ecereNameSpace__ecere__sys__BTNode_balanceFactor = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = (void *)0;
1161 class->fixed = (unsigned int)1;
1162 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::StringBTNode", 0, sizeof(struct __ecereNameSpace__ecere__sys__StringBTNode), 0, 0, 0, module, 4, 1);
1163 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
1164 __ecereClass___ecereNameSpace__ecere__sys__StringBTNode = class;
1165 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnSerialize, 1);
1166 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnUnserialize, 1);
1167 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "String", arch_PointerSize, arch_PointerSize, 1);
1168 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::sys::StringBTNode", arch_PointerSize, arch_PointerSize, 1);
1169 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::sys::StringBTNode", arch_PointerSize, arch_PointerSize, 1);
1170 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::sys::StringBTNode", arch_PointerSize, arch_PointerSize, 1);
1171 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
1173 class->fixed = (unsigned int)1;
1176 void __ecereUnregisterModule_BTNode(struct __ecereNameSpace__ecere__com__Instance * module)
1179 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = (void *)0;
1180 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = (void *)0;
1181 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = (void *)0;
1182 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = (void *)0;
1183 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = (void *)0;
1184 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = (void *)0;
1185 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = (void *)0;