2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #elif defined(__TINYC__)
6 #define __builtin_va_list va_list
7 #define __builtin_va_start va_start
8 #define __builtin_va_end va_end
10 #define strcasecmp stricmp
11 #define strncasecmp strnicmp
12 #define __declspec(x) __attribute__((x))
14 typedef long long int64;
15 typedef unsigned long long uint64;
17 typedef __int64 int64;
18 typedef unsigned __int64 uint64;
21 #define __ENDIAN_PAD(x) (8 - (x))
23 #define __ENDIAN_PAD(x) 0
26 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
28 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
30 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
32 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
34 struct __ecereNameSpace__ecere__sys__BTNode
37 struct __ecereNameSpace__ecere__sys__BTNode * parent, * left, * right;
39 } __attribute__ ((gcc_struct));
41 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
43 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
45 struct __ecereNameSpace__ecere__sys__BinaryTree
47 struct __ecereNameSpace__ecere__sys__BTNode * root;
49 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
50 void (* FreeKey)(void * key);
51 } __attribute__ ((gcc_struct));
53 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
55 struct __ecereNameSpace__ecere__sys__OldList
62 } __attribute__ ((gcc_struct));
64 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
66 struct __ecereNameSpace__ecere__com__Class
68 struct __ecereNameSpace__ecere__com__Class * prev;
69 struct __ecereNameSpace__ecere__com__Class * next;
75 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
76 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
79 struct __ecereNameSpace__ecere__com__Class * base;
80 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
81 struct __ecereNameSpace__ecere__sys__BinaryTree members;
82 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
83 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
84 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
85 struct __ecereNameSpace__ecere__sys__OldList derivatives;
89 struct __ecereNameSpace__ecere__com__Instance * module;
90 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
91 char * dataTypeString;
92 struct __ecereNameSpace__ecere__com__Instance * dataType;
95 void (* Initialize)();
97 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
99 unsigned int noExpansion;
100 char * defaultProperty;
101 unsigned int comRedefinition;
103 unsigned int isRemote;
104 unsigned int internalDecl;
106 unsigned int computeSize;
108 int destructionWatchOffset;
110 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
111 int inheritanceAccess;
114 struct __ecereNameSpace__ecere__sys__OldList conversions;
115 struct __ecereNameSpace__ecere__sys__OldList templateParams;
116 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
117 struct __ecereNameSpace__ecere__com__Class * templateClass;
118 struct __ecereNameSpace__ecere__sys__OldList templatized;
120 } __attribute__ ((gcc_struct));
122 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
124 struct __ecereNameSpace__ecere__com__Instance
127 struct __ecereNameSpace__ecere__com__Class * _class;
129 } __attribute__ ((gcc_struct));
131 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
133 struct __ecereNameSpace__ecere__com__Property
135 struct __ecereNameSpace__ecere__com__Property * prev;
136 struct __ecereNameSpace__ecere__com__Property * next;
138 unsigned int isProperty;
141 struct __ecereNameSpace__ecere__com__Class * _class;
142 char * dataTypeString;
143 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
144 struct __ecereNameSpace__ecere__com__Instance * dataType;
147 unsigned int (* IsSet)();
151 unsigned int conversion;
152 unsigned int watcherOffset;
154 unsigned int compiled;
155 unsigned int selfWatchable;
156 unsigned int isWatchable;
157 } __attribute__ ((gcc_struct));
159 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
161 struct __ecereNameSpace__ecere__com__DataMember
163 struct __ecereNameSpace__ecere__com__DataMember * prev;
164 struct __ecereNameSpace__ecere__com__DataMember * next;
166 unsigned int isProperty;
169 struct __ecereNameSpace__ecere__com__Class * _class;
170 char * dataTypeString;
171 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
172 struct __ecereNameSpace__ecere__com__Instance * dataType;
176 struct __ecereNameSpace__ecere__sys__OldList members;
177 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
180 } __attribute__ ((gcc_struct));
182 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
184 struct __ecereNameSpace__ecere__com__Method
187 struct __ecereNameSpace__ecere__com__Method * parent;
188 struct __ecereNameSpace__ecere__com__Method * left;
189 struct __ecereNameSpace__ecere__com__Method * right;
194 struct __ecereNameSpace__ecere__com__Class * _class;
196 char * dataTypeString;
197 struct __ecereNameSpace__ecere__com__Instance * dataType;
199 } __attribute__ ((gcc_struct));
201 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
203 struct __ecereNameSpace__ecere__com__SerialBuffer
205 unsigned char * _buffer;
209 } __attribute__ ((gcc_struct));
211 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
213 struct __ecereNameSpace__ecere__com__DataValue
228 } __attribute__ ((gcc_struct));
229 } __attribute__ ((gcc_struct));
231 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
233 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
239 char * dataTypeString;
240 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
241 } __attribute__ ((gcc_struct));
242 struct __ecereNameSpace__ecere__com__DataValue expression;
248 struct __ecereNameSpace__ecere__com__DataMember * member;
249 struct __ecereNameSpace__ecere__com__Property * prop;
250 struct __ecereNameSpace__ecere__com__Method * method;
251 } __attribute__ ((gcc_struct));
252 } __attribute__ ((gcc_struct));
253 } __attribute__ ((gcc_struct));
254 } __attribute__ ((gcc_struct));
256 typedef __builtin_va_list __gnuc_va_list;
258 typedef __gnuc_va_list va_list;
260 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TreePrintStyle;
262 extern int vsprintf(char * , const char * , __builtin_va_list);
264 extern int strlen(const char * );
266 void __ecereNameSpace__ecere__sys__strcatf(char * string, char * format, ...)
270 __builtin_va_start(args, format);
271 vsprintf(string + strlen(string), format, args);
272 __builtin_va_end(args);
275 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_prev, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev;
277 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_next, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next;
279 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_count, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count;
281 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_balanceFactor, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor;
283 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
285 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_bool;
287 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uintptr;
289 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uint;
291 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)
293 if((struct __ecereNameSpace__ecere__sys__BTNode *)this)
295 unsigned int truth = 0x1;
297 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_bool, &truth);
298 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uintptr, &this->key);
299 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, this->left);
300 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, this->right);
304 unsigned int nothing = 0;
306 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uint, ¬hing);
310 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
312 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data);
314 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(struct __ecereNameSpace__ecere__sys__BTNode * this);
316 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_depthProp, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp;
318 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)
322 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_bool, &truth);
325 (*(this)) = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__BTNode);
326 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_uintptr, &(*(this))->key);
327 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, &(*(this))->left);
330 (*(this))->left->parent = (void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this;
332 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, &(*(this))->right);
335 (*(this))->right->parent = (void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this;
337 (*(this))->depth = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(((struct __ecereNameSpace__ecere__sys__BTNode *)(void *)*(struct __ecereNameSpace__ecere__sys__BTNode **)this));
340 (*(this)) = (((void *)0));
343 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(struct __ecereNameSpace__ecere__sys__BTNode * this);
345 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_maximum, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum;
347 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_prev(struct __ecereNameSpace__ecere__sys__BTNode * this)
350 return __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(this->left);
353 if(this->parent && this == this->parent->right)
361 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(struct __ecereNameSpace__ecere__sys__BTNode * this);
363 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_minimum, * __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum;
365 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this)
367 struct __ecereNameSpace__ecere__sys__BTNode * right = this->right;
370 return __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(right);
373 struct __ecereNameSpace__ecere__sys__BTNode * parent = this->parent;
375 if(parent && this == parent->left)
380 return (((void *)0));
383 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(struct __ecereNameSpace__ecere__sys__BTNode * this)
390 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(struct __ecereNameSpace__ecere__sys__BTNode * this)
397 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count(struct __ecereNameSpace__ecere__sys__BTNode * this)
399 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);
402 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(struct __ecereNameSpace__ecere__sys__BTNode * this)
404 int leftDepth = this->left ? (__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->left) + 1) : 0;
405 int rightDepth = this->right ? (__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->right) + 1) : 0;
407 return ((leftDepth > rightDepth) ? leftDepth : rightDepth);
410 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(struct __ecereNameSpace__ecere__sys__BTNode * this, void (* FreeKey)(void * key))
413 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(this->left, FreeKey);
415 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(this->right, FreeKey);
417 FreeKey((void *)this->key);
418 ((this ? (__ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor ? __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor(this) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(this)) : 0), this = 0);
421 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)
423 uintptr_t newKey = node->key;
427 int result = tree->CompareKey(tree, newKey, this->key);
443 struct __ecereNameSpace__ecere__sys__BTNode * n;
445 for(n = this; n; n = n->parent)
447 int __simpleStruct0, __simpleStruct1;
448 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
450 if(newDepth == n->depth)
468 struct __ecereNameSpace__ecere__sys__BTNode * n;
470 for(n = this; n; n = n->parent)
472 int __simpleStruct0, __simpleStruct1;
473 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
475 if(newDepth == n->depth)
486 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BTNode * node)
490 else if(this->left && __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(this->left, node))
492 else if(this->right && __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindNode(this->right, node))
497 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)
501 int result = tree->CompareKey(tree, key, this->key);
513 extern int strcmp(const char * , const char * );
515 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindString(struct __ecereNameSpace__ecere__sys__BTNode * this, char * key)
522 result = strcmp(key, (char *)this->key);
523 else if(key && !this->key)
525 else if(!key && this->key)
539 extern int strncmp(const char * , const char * , int n);
541 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindPrefix(struct __ecereNameSpace__ecere__sys__BTNode * this, char * key)
543 struct __ecereNameSpace__ecere__sys__BTNode * subString = (((void *)0));
544 int len = key ? strlen(key) : 0;
551 result = strcmp(key, (char *)this->key);
552 else if(key && !this->key)
554 else if(!key && this->key)
560 if(!strncmp(key, (char *)this->key, len))
575 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(struct __ecereNameSpace__ecere__sys__BTNode * this, uintptr_t key)
577 struct __ecereNameSpace__ecere__sys__BTNode * result = (((void *)0));
581 if(!result && this->left)
582 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(this->left, key);
583 if(!result && this->right)
584 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(this->right, key);
588 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BTNode * swap)
592 swap->left->parent = swap->parent;
593 if(swap == swap->parent->left)
594 swap->parent->left = swap->left;
595 else if(swap == swap->parent->right)
596 swap->parent->right = swap->left;
597 swap->left = (((void *)0));
601 swap->right->parent = swap->parent;
602 if(swap == swap->parent->left)
603 swap->parent->left = swap->right;
604 else if(swap == swap->parent->right)
605 swap->parent->right = swap->right;
606 swap->right = (((void *)0));
608 if(swap == swap->parent->left)
609 swap->parent->left = (((void *)0));
610 else if(swap == swap->parent->right)
611 swap->parent->right = (((void *)0));
613 struct __ecereNameSpace__ecere__sys__BTNode * n;
615 for(n = swap->parent; n; n = n->parent)
617 int __simpleStruct0, __simpleStruct1;
618 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
620 if(newDepth == n->depth)
628 swap->left = this->left;
630 this->left->parent = swap;
633 swap->right = this->right;
635 this->right->parent = swap;
637 swap->parent = this->parent;
638 this->left = (((void *)0));
639 this->right = (((void *)0));
642 if(this == this->parent->left)
643 this->parent->left = swap;
644 else if(this == this->parent->right)
645 this->parent->right = swap;
649 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance();
651 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
653 struct __ecereNameSpace__ecere__sys__BTNode * swap = this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(this->left) : this->right;
654 struct __ecereNameSpace__ecere__sys__BTNode * swapParent = (((void *)0));
658 swapParent = swap->parent;
659 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(this, swap);
663 if(this == this->parent->left)
664 this->parent->left = (((void *)0));
665 else if(this == this->parent->right)
666 this->parent->right = (((void *)0));
669 struct __ecereNameSpace__ecere__sys__BTNode * n;
671 for(n = swap ? swap : this->parent; n; n = n->parent)
673 int __simpleStruct0, __simpleStruct1;
674 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
676 if(newDepth == n->depth && n != swap)
681 if(swapParent && swapParent != this)
682 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swapParent);
684 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swap);
685 else if(this->parent)
686 return __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(this->parent);
688 return (((void *)0));
691 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
693 struct __ecereNameSpace__ecere__sys__BTNode * result;
694 struct __ecereNameSpace__ecere__sys__BTNode * swap = this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(this->right) : this->left;
695 struct __ecereNameSpace__ecere__sys__BTNode * swapParent = (((void *)0));
699 swapParent = swap->parent;
700 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwap(this, swap);
704 if(this == this->parent->left)
705 this->parent->left = (((void *)0));
706 else if(this == this->parent->right)
707 this->parent->right = (((void *)0));
710 struct __ecereNameSpace__ecere__sys__BTNode * n;
712 for(n = swap ? swap : this->parent; n; n = n->parent)
714 int __simpleStruct0, __simpleStruct1;
715 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
717 if(newDepth == n->depth && n != swap)
722 if(swapParent && swapParent != this)
723 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swapParent);
725 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(swap);
726 else if(this->parent)
727 result = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(this->parent);
729 result = (((void *)0));
733 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(struct __ecereNameSpace__ecere__sys__BTNode * this)
735 int leftDepth = this->left ? (this->left->depth + 1) : 0;
736 int rightDepth = this->right ? (this->right->depth + 1) : 0;
738 return rightDepth - leftDepth;
741 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight();
743 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight();
745 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft();
747 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft();
749 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(struct __ecereNameSpace__ecere__sys__BTNode * this)
753 int factor = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this);
757 if(__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this->left) == 1)
758 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight(this);
760 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this);
764 if(__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this->right) == -1)
765 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft(this);
767 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this);
776 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
778 int __simpleStruct2, __simpleStruct3;
779 int __simpleStruct0, __simpleStruct1;
783 if(this == this->parent->left)
784 this->parent->left = this->left;
785 else if(this == this->parent->right)
786 this->parent->right = this->left;
788 this->left->parent = this->parent;
789 this->parent = this->left;
790 this->left = this->parent->right;
792 this->left->parent = this;
793 this->parent->right = this;
794 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
795 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);
797 struct __ecereNameSpace__ecere__sys__BTNode * n;
799 for(n = this->parent->parent; n; n = n->parent)
801 int __simpleStruct0, __simpleStruct1;
802 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
804 if(newDepth == n->depth)
811 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
813 int __simpleStruct2, __simpleStruct3;
814 int __simpleStruct0, __simpleStruct1;
818 if(this == this->parent->right)
819 this->parent->right = this->right;
820 else if(this == this->parent->left)
821 this->parent->left = this->right;
823 this->right->parent = this->parent;
824 this->parent = this->right;
825 this->right = this->parent->left;
827 this->right->parent = this;
828 this->parent->left = this;
829 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
830 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);
832 struct __ecereNameSpace__ecere__sys__BTNode * n;
834 for(n = this->parent->parent; n; n = n->parent)
836 int __simpleStruct0, __simpleStruct1;
837 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
839 if(newDepth == n->depth)
846 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateRight(struct __ecereNameSpace__ecere__sys__BTNode * this)
848 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this->left);
849 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this);
852 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_DoubleRotateLeft(struct __ecereNameSpace__ecere__sys__BTNode * this)
854 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateRight(this->right);
855 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_SingleRotateLeft(this);
858 extern char * strcat(char * , const char * );
860 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int wantedDepth, int curDepth, int maxDepth, unsigned int last);
862 char * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int tps)
871 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
873 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(this->left, output, tps);
875 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
877 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(this->right, output, tps);
879 __ecereNameSpace__ecere__sys__strcatf(output, "%d ", this->key);
884 int maxDepth = this->depth;
887 for(curDepth = 0; curDepth <= maxDepth; curDepth++)
891 for(c = 0; c < ((1 << (maxDepth - curDepth)) - 1) * 4 / 2; c++)
893 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(this, output, curDepth, 0, maxDepth, 0x1);
894 strcat(output, "\n");
899 return (((void *)0));
902 extern int sprintf(char * , char * , ...);
904 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth(struct __ecereNameSpace__ecere__sys__BTNode * this, char * output, int wantedDepth, int curDepth, int maxDepth, unsigned int last)
908 if(wantedDepth == curDepth)
910 char nodeString[10] = "";
914 sprintf(nodeString, "%d", this->key);
915 len = strlen(nodeString);
916 for(c = 0; c < (4 - len) / 2; c++)
919 strcat(output, nodeString);
920 for(c = len; c < 4; c++)
922 if(curDepth && !last)
924 for(c = 0; c < ((1 << (maxDepth - curDepth)) - 1) * 4; c++)
928 else if(curDepth <= maxDepth)
930 __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);
931 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_PrintDepth((this ? this->right : (struct __ecereNameSpace__ecere__sys__BTNode *)(((void *)0))), output, wantedDepth, curDepth + 1, maxDepth, last);
935 extern int printf(char * , ...);
937 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree)
939 unsigned int valid = 0x1;
940 int leftHeight = this->left ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->left) + 1 : 0;
941 int rightHeight = this->right ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this->right) + 1 : 0;
942 int diffHeight = rightHeight - leftHeight;
946 if(this->left->parent != this)
948 printf("Parent not set properly at node %d\n", this->left->key);
951 valid *= __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(this->left, tree);
955 if(this->right->parent != this)
957 printf("Parent not set properly at node %d\n", this->right->key);
960 valid *= __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(this->right, tree);
962 if(this->depth != __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(this))
964 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));
965 valid = (unsigned int)0;
967 if(diffHeight < -1 || diffHeight > 1)
969 valid = (unsigned int)0;
970 printf("Height difference is %d at node %d\n", diffHeight, this->key);
972 if(diffHeight != __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this))
974 valid = (unsigned int)0;
975 printf("Height difference %d doesnt match balance-factor of %d at node \n", diffHeight, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor(this), this->key);
977 if(this->left && tree->CompareKey(tree, this->left->key, this->key) > 0)
980 printf("Node %d is *smaller* than left subtree %d\n", this->key, this->left->key);
982 if(this->right && tree->CompareKey(tree, this->right->key, this->key) < 0)
985 printf("Node %d is *greater* than right subtree %d\n", this->key, this->right->key);
990 struct __ecereNameSpace__ecere__sys__StringBTNode
993 struct __ecereNameSpace__ecere__sys__StringBTNode * parent, * left, * right;
995 } __attribute__ ((gcc_struct));
997 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__StringBTNode;
999 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
1001 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)
1003 if((struct __ecereNameSpace__ecere__sys__StringBTNode *)this)
1005 unsigned int truth = 0x1;
1007 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_bool, &truth);
1008 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_String, this->key);
1009 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, this->left);
1010 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, this->right);
1014 unsigned int nothing = 0;
1016 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_uint, ¬hing);
1020 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)
1024 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_bool, &truth);
1027 (*(this)) = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__StringBTNode);
1028 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &(*(this))->key);
1029 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, &(*(this))->left);
1032 (*(this))->left->parent = (void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this;
1034 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, &(*(this))->right);
1035 if((*(this))->right)
1037 (*(this))->right->parent = (void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this;
1039 (*(this))->depth = __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp(((struct __ecereNameSpace__ecere__sys__BTNode *)((void *)*(struct __ecereNameSpace__ecere__sys__StringBTNode **)this)));
1042 (*(this)) = (((void *)0));
1045 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);
1047 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
1049 struct __ecereNameSpace__ecere__com__NameSpace
1052 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
1053 struct __ecereNameSpace__ecere__com__NameSpace * left;
1054 struct __ecereNameSpace__ecere__com__NameSpace * right;
1056 struct __ecereNameSpace__ecere__com__NameSpace * parent;
1057 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1058 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1059 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1060 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1061 } __attribute__ ((gcc_struct));
1063 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
1065 struct __ecereNameSpace__ecere__com__Module
1067 struct __ecereNameSpace__ecere__com__Instance * application;
1068 struct __ecereNameSpace__ecere__sys__OldList classes;
1069 struct __ecereNameSpace__ecere__sys__OldList defines;
1070 struct __ecereNameSpace__ecere__sys__OldList functions;
1071 struct __ecereNameSpace__ecere__sys__OldList modules;
1072 struct __ecereNameSpace__ecere__com__Instance * prev;
1073 struct __ecereNameSpace__ecere__com__Instance * next;
1079 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1080 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1081 } __attribute__ ((gcc_struct));
1083 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
1085 extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value);
1087 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
1089 struct __ecereNameSpace__ecere__com__GlobalFunction;
1091 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);
1093 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);
1095 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);
1097 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);
1099 void __ecereRegisterModule_BTNode(struct __ecereNameSpace__ecere__com__Instance * module)
1101 struct __ecereNameSpace__ecere__com__Class * class;
1103 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::TreePrintStyle", 0, 0, 0, 0, 0, module, 4, 1);
1104 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1105 __ecereClass___ecereNameSpace__ecere__sys__TreePrintStyle = class;
1106 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "inOrder", 0);
1107 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "postOrder", 1);
1108 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preOrder", 2);
1109 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "depthOrder", 3);
1110 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::strcatf", "void ecere::sys::strcatf(char * string, char * format, ...)", __ecereNameSpace__ecere__sys__strcatf, module, 4);
1111 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::BTNode", 0, sizeof(struct __ecereNameSpace__ecere__sys__BTNode), 0, 0, 0, module, 4, 1);
1112 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1113 __ecereClass___ecereNameSpace__ecere__sys__BTNode = class;
1114 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnSerialize, 1);
1115 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BTNode_OnUnserialize, 1);
1116 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindPrefix", "ecere::sys::BTNode FindPrefix(char * key)", __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindPrefix, 1);
1117 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindString", "ecere::sys::BTNode FindString(char * key)", __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindString, 1);
1118 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "uintptr", 4, 4, 1);
1119 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::sys::BTNode", 4, 4, 1);
1120 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::sys::BTNode", 4, 4, 1);
1121 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::sys::BTNode", 4, 4, 1);
1122 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
1123 __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);
1124 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1125 __ecereProp___ecereNameSpace__ecere__sys__BTNode_prev = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = (void *)0;
1126 __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);
1127 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1128 __ecereProp___ecereNameSpace__ecere__sys__BTNode_next = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = (void *)0;
1129 __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);
1130 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1131 __ecereProp___ecereNameSpace__ecere__sys__BTNode_minimum = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = (void *)0;
1132 __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);
1133 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1134 __ecereProp___ecereNameSpace__ecere__sys__BTNode_maximum = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = (void *)0;
1135 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "count", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count, 1);
1136 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1137 __ecereProp___ecereNameSpace__ecere__sys__BTNode_count = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = (void *)0;
1138 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "depthProp", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_depthProp, 1);
1139 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1140 __ecereProp___ecereNameSpace__ecere__sys__BTNode_depthProp = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = (void *)0;
1141 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "balanceFactor", "int", 0, __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_balanceFactor, 2);
1142 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1143 __ecereProp___ecereNameSpace__ecere__sys__BTNode_balanceFactor = __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor, __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = (void *)0;
1145 class->fixed = (unsigned int)1;
1146 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::StringBTNode", 0, sizeof(struct __ecereNameSpace__ecere__sys__StringBTNode), 0, 0, 0, module, 4, 1);
1147 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1148 __ecereClass___ecereNameSpace__ecere__sys__StringBTNode = class;
1149 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnSerialize, 1);
1150 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBTNode_OnUnserialize, 1);
1151 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "String", 4, 4, 1);
1152 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::sys::StringBTNode", 4, 4, 1);
1153 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::sys::StringBTNode", 4, 4, 1);
1154 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::sys::StringBTNode", 4, 4, 1);
1155 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
1157 class->fixed = (unsigned int)1;
1160 void __ecereUnregisterModule_BTNode(struct __ecereNameSpace__ecere__com__Instance * module)
1163 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_prev = (void *)0;
1164 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_next = (void *)0;
1165 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_minimum = (void *)0;
1166 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_maximum = (void *)0;
1167 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_count = (void *)0;
1168 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_depthProp = (void *)0;
1169 __ecerePropM___ecereNameSpace__ecere__sys__BTNode_balanceFactor = (void *)0;