compiler: Updated bootstrap, precompiled parsers and i18n templates
[sdk] / compiler / bootstrap / ecere / bootstrap / OldList.c
1 #if defined(__GNUC__)
2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #ifndef _WIN32
5 #define __declspec(x)
6 #endif
7 #elif defined(__TINYC__)
8 #include <stdarg.h>
9 #define __builtin_va_list va_list
10 #define __builtin_va_start va_start
11 #define __builtin_va_end va_end
12 #ifdef _WIN32
13 #define strcasecmp stricmp
14 #define strncasecmp strnicmp
15 #define __declspec(x) __attribute__((x))
16 #else
17 #define __declspec(x)
18 #endif
19 typedef long long int64;
20 typedef unsigned long long uint64;
21 #else
22 typedef __int64 int64;
23 typedef unsigned __int64 uint64;
24 #endif
25 #ifdef __BIG_ENDIAN__
26 #define __ENDIAN_PAD(x) (8 - (x))
27 #else
28 #define __ENDIAN_PAD(x) 0
29 #endif
30 #ifdef __MINGW32__
31 #ifdef _WIN64
32 typedef unsigned long long int uintptr_t;
33 typedef long long int intptr_t;
34 #else
35 typedef unsigned int uintptr_t;
36 typedef int intptr_t;
37 #endif
38 #else
39 #include <stdint.h>
40 #endif
41 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
42
43 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
44
45 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
46
47 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
48
49 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
50
51 struct __ecereNameSpace__ecere__sys__BTNode;
52
53 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
54
55 struct __ecereNameSpace__ecere__sys__BinaryTree
56 {
57 struct __ecereNameSpace__ecere__sys__BTNode * root;
58 int count;
59 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
60 void (*  FreeKey)(void *  key);
61 } __attribute__ ((gcc_struct));
62
63 struct __ecereNameSpace__ecere__sys__OldList
64 {
65 void * first, * last;
66 int count;
67 unsigned int offset;
68 unsigned int circ;
69 } __attribute__ ((gcc_struct));
70
71 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
72
73 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
74
75 struct __ecereNameSpace__ecere__com__Class
76 {
77 struct __ecereNameSpace__ecere__com__Class * prev;
78 struct __ecereNameSpace__ecere__com__Class * next;
79 char *  name;
80 int offset;
81 int structSize;
82 int (* *  _vTbl)();
83 int vTblSize;
84 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
85 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
86 int offsetClass;
87 int sizeClass;
88 struct __ecereNameSpace__ecere__com__Class * base;
89 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
90 struct __ecereNameSpace__ecere__sys__BinaryTree members;
91 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
92 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
93 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
94 struct __ecereNameSpace__ecere__sys__OldList derivatives;
95 int memberID;
96 int startMemberID;
97 int type;
98 struct __ecereNameSpace__ecere__com__Instance * module;
99 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
100 char *  dataTypeString;
101 struct __ecereNameSpace__ecere__com__Instance * dataType;
102 int typeSize;
103 int defaultAlignment;
104 void (*  Initialize)();
105 int memberOffset;
106 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
107 char *  designerClass;
108 unsigned int noExpansion;
109 char *  defaultProperty;
110 unsigned int comRedefinition;
111 int count;
112 unsigned int isRemote;
113 unsigned int internalDecl;
114 void *  data;
115 unsigned int computeSize;
116 int structAlignment;
117 int destructionWatchOffset;
118 unsigned int fixed;
119 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
120 int inheritanceAccess;
121 char *  fullName;
122 void *  symbol;
123 struct __ecereNameSpace__ecere__sys__OldList conversions;
124 struct __ecereNameSpace__ecere__sys__OldList templateParams;
125 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
126 struct __ecereNameSpace__ecere__com__Class * templateClass;
127 struct __ecereNameSpace__ecere__sys__OldList templatized;
128 int numParams;
129 } __attribute__ ((gcc_struct));
130
131 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name);
132
133 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
134
135 struct __ecereNameSpace__ecere__com__Instance
136 {
137 int (* *  _vTbl)();
138 struct __ecereNameSpace__ecere__com__Class * _class;
139 int _refCount;
140 } __attribute__ ((gcc_struct));
141
142 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
143
144 struct __ecereNameSpace__ecere__com__Property
145 {
146 struct __ecereNameSpace__ecere__com__Property * prev;
147 struct __ecereNameSpace__ecere__com__Property * next;
148 char *  name;
149 unsigned int isProperty;
150 int memberAccess;
151 int id;
152 struct __ecereNameSpace__ecere__com__Class * _class;
153 char *  dataTypeString;
154 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
155 struct __ecereNameSpace__ecere__com__Instance * dataType;
156 void (*  Set)();
157 int (*  Get)();
158 unsigned int (*  IsSet)();
159 void *  data;
160 void *  symbol;
161 int vid;
162 unsigned int conversion;
163 unsigned int watcherOffset;
164 char *  category;
165 unsigned int compiled;
166 unsigned int selfWatchable;
167 unsigned int isWatchable;
168 } __attribute__ ((gcc_struct));
169
170 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
171
172 struct __ecereNameSpace__ecere__com__DataMember
173 {
174 struct __ecereNameSpace__ecere__com__DataMember * prev;
175 struct __ecereNameSpace__ecere__com__DataMember * next;
176 char *  name;
177 unsigned int isProperty;
178 int memberAccess;
179 int id;
180 struct __ecereNameSpace__ecere__com__Class * _class;
181 char *  dataTypeString;
182 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
183 struct __ecereNameSpace__ecere__com__Instance * dataType;
184 int type;
185 int offset;
186 int memberID;
187 struct __ecereNameSpace__ecere__sys__OldList members;
188 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
189 int memberOffset;
190 int structAlignment;
191 } __attribute__ ((gcc_struct));
192
193 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
194
195 struct __ecereNameSpace__ecere__com__Method
196 {
197 char *  name;
198 struct __ecereNameSpace__ecere__com__Method * parent;
199 struct __ecereNameSpace__ecere__com__Method * left;
200 struct __ecereNameSpace__ecere__com__Method * right;
201 int depth;
202 int (*  function)();
203 int vid;
204 int type;
205 struct __ecereNameSpace__ecere__com__Class * _class;
206 void *  symbol;
207 char *  dataTypeString;
208 struct __ecereNameSpace__ecere__com__Instance * dataType;
209 int memberAccess;
210 } __attribute__ ((gcc_struct));
211
212 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
213
214 struct __ecereNameSpace__ecere__com__SerialBuffer
215 {
216 unsigned char *  _buffer;
217 unsigned int count;
218 unsigned int _size;
219 unsigned int pos;
220 } __attribute__ ((gcc_struct));
221
222 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
223
224 struct __ecereNameSpace__ecere__com__DataValue
225 {
226 union
227 {
228 char c;
229 unsigned char uc;
230 short s;
231 unsigned short us;
232 int i;
233 unsigned int ui;
234 void *  p;
235 float f;
236 double d;
237 long long i64;
238 uint64 ui64;
239 } __attribute__ ((gcc_struct));
240 } __attribute__ ((gcc_struct));
241
242 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
243
244 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
245 {
246 union
247 {
248 struct
249 {
250 char *  dataTypeString;
251 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
252 } __attribute__ ((gcc_struct));
253 struct __ecereNameSpace__ecere__com__DataValue expression;
254 struct
255 {
256 char *  memberString;
257 union
258 {
259 struct __ecereNameSpace__ecere__com__DataMember * member;
260 struct __ecereNameSpace__ecere__com__Property * prop;
261 struct __ecereNameSpace__ecere__com__Method * method;
262 } __attribute__ ((gcc_struct));
263 } __attribute__ ((gcc_struct));
264 } __attribute__ ((gcc_struct));
265 } __attribute__ ((gcc_struct));
266
267 struct __ecereNameSpace__ecere__sys__Item
268 {
269 struct __ecereNameSpace__ecere__sys__Item * prev, * next;
270 } __attribute__ ((gcc_struct));
271
272 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__Item;
273
274 extern void *  memcpy(void * , const void * , unsigned int size);
275
276 void __ecereMethod___ecereNameSpace__ecere__sys__Item_Copy(struct __ecereNameSpace__ecere__sys__Item * this, struct __ecereNameSpace__ecere__sys__Item * src, int size)
277 {
278 memcpy((unsigned char *)this + sizeof(struct __ecereNameSpace__ecere__sys__Item), (unsigned char *)src + sizeof(struct __ecereNameSpace__ecere__sys__Item), size - sizeof(struct __ecereNameSpace__ecere__sys__Item *));
279 }
280
281 struct __ecereNameSpace__ecere__sys__NamedItem
282 {
283 struct __ecereNameSpace__ecere__sys__NamedItem * prev, * next;
284 char * name;
285 } __attribute__ ((gcc_struct));
286
287 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedItem;
288
289 struct __ecereNameSpace__ecere__sys__OldLink
290 {
291 struct __ecereNameSpace__ecere__sys__OldLink * prev, * next;
292 void * data;
293 } __attribute__ ((gcc_struct));
294
295 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
296
297 void __ecereMethod___ecereNameSpace__ecere__sys__OldLink_Free(struct __ecereNameSpace__ecere__sys__OldLink * this)
298 {
299 (__ecereNameSpace__ecere__com__eSystem_Delete(this->data), this->data = 0);
300 }
301
302 struct __ecereNameSpace__ecere__sys__NamedLink
303 {
304 struct __ecereNameSpace__ecere__sys__NamedLink * prev, * next;
305 char * name;
306 void * data;
307 } __attribute__ ((gcc_struct));
308
309 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
310
311 struct __ecereNameSpace__ecere__sys__NamedLink64
312 {
313 struct __ecereNameSpace__ecere__sys__NamedLink64 * prev, * next;
314 char * name;
315 long long data;
316 } __attribute__ ((gcc_struct));
317
318 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink64;
319
320 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(struct __ecereNameSpace__ecere__sys__OldList * this);
321
322 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void *  item);
323
324 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void *  item);
325
326 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Merge(struct __ecereNameSpace__ecere__sys__OldList * this, struct __ecereNameSpace__ecere__sys__OldList * list1, struct __ecereNameSpace__ecere__sys__OldList * list2, int (* compare)(void *, void *, void *), void * data)
327 {
328 void * item;
329
330 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(this);
331 this->offset = list1->offset;
332 while((list1->first && list2->first))
333 {
334 if(compare(list1->first, list2->first, data) <= 0)
335 {
336 item = list1->first;
337 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list1, item);
338 }
339 else
340 {
341 item = list2->first;
342 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list2, item);
343 }
344 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, item);
345 }
346 while((item = list1->first))
347 {
348 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list1, item);
349 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, item);
350 }
351 while((item = list2->first))
352 {
353 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list2, item);
354 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, item);
355 }
356 }
357
358 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
359 {
360 if(item)
361 {
362 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
363
364 link->prev = this->last;
365 if(link->prev)
366 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = item;
367 if(!this->first)
368 this->first = item;
369 this->last = item;
370 link->next = this->circ ? this->first : (((void *)0));
371 if(this->circ)
372 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)this->first + this->offset))->prev = item;
373 this->count++;
374 }
375 }
376
377 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(struct __ecereNameSpace__ecere__sys__OldList * this, void * prevItem, void * item)
378 {
379 if(item && prevItem != item)
380 {
381 struct __ecereNameSpace__ecere__sys__Item * prevLink = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)prevItem + this->offset);
382 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
383
384 link->prev = prevItem ? prevItem : (this->circ ? this->last : (((void *)0)));
385 if(prevItem)
386 {
387 link->next = prevLink->next;
388 prevLink->next = item;
389 }
390 else
391 {
392 link->next = this->first;
393 this->first = item;
394 if(this->circ)
395 {
396 if(link->prev)
397 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = item;
398 else
399 link->next = item;
400 }
401 }
402 if(prevItem == this->last)
403 this->last = item;
404 if(link->next)
405 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = item;
406 this->count++;
407 return 0x1;
408 }
409 return 0x0;
410 }
411
412 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
413 {
414 if(item)
415 {
416 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
417
418 if(link->prev)
419 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = link->next;
420 if(link->next)
421 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = link->prev;
422 if(this->circ && this->last == this->first)
423 this->last = this->first = (((void *)0));
424 else
425 {
426 if(this->last == item)
427 this->last = link->prev;
428 if(this->first == item)
429 this->first = link->next;
430 }
431 link->prev = (((void *)0));
432 link->next = (((void *)0));
433 this->count--;
434 }
435 }
436
437 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
438 {
439 if(item)
440 {
441 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(this, item);
442 (__ecereNameSpace__ecere__com__eSystem_Delete(item), item = 0);
443 }
444 }
445
446 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void *))
447 {
448 void * item, * next;
449
450 for(item = this->first; item; item = next)
451 {
452 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
453
454 next = link->next;
455 if(freeFn)
456 freeFn(item);
457 (__ecereNameSpace__ecere__com__eSystem_Delete(item), item = 0);
458 if(next == this->first)
459 break;
460 }
461 this->first = this->last = (((void *)0));
462 this->count = 0;
463 }
464
465 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_RemoveAll(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void *))
466 {
467 void * item, * next;
468
469 for(item = this->first; item; item = next)
470 {
471 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
472
473 next = link->next;
474 if(freeFn)
475 freeFn(item);
476 if(next == this->first)
477 break;
478 }
479 this->first = this->last = (((void *)0));
480 this->count = 0;
481 }
482
483 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(struct __ecereNameSpace__ecere__sys__OldList * this)
484 {
485 this->offset = 0;
486 this->circ = 0x0;
487 this->count = 0;
488 this->first = this->last = (((void *)0));
489 }
490
491 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Move(struct __ecereNameSpace__ecere__sys__OldList * this, void * item, void * prevItem)
492 {
493 if(item)
494 {
495 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
496 struct __ecereNameSpace__ecere__sys__Item * prevLink = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)prevItem + this->offset);
497
498 if(prevItem != item && (this->first != item || prevItem))
499 {
500 if(link->prev)
501 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = link->next;
502 if(link->next)
503 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = link->prev;
504 if(item == this->first)
505 this->first = link->next;
506 if(item == this->last)
507 this->last = link->prev;
508 if(prevItem == this->last)
509 this->last = item;
510 link->prev = prevItem ? prevItem : (this->circ ? this->last : (((void *)0)));
511 if(prevItem)
512 {
513 link->next = prevLink->next;
514 prevLink->next = item;
515 }
516 else
517 {
518 link->next = this->first;
519 this->first = item;
520 if(this->circ)
521 {
522 if(link->prev)
523 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = item;
524 else
525 link->next = item;
526 }
527 }
528 if(link->next)
529 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = item;
530 }
531 }
532 }
533
534 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Swap(struct __ecereNameSpace__ecere__sys__OldList * this, void * item1, void * item2)
535 {
536 struct __ecereNameSpace__ecere__sys__Item * link1 = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item1 + this->offset);
537 struct __ecereNameSpace__ecere__sys__Item * link2 = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item2 + this->offset);
538 struct __ecereNameSpace__ecere__sys__Item * prev1 = link1->prev, * next1 = link1->next;
539 void * tmp1 = item1, * tmp2 = item2;
540
541 link1->prev = link2->prev;
542 link1->next = link2->next;
543 link2->prev = prev1;
544 link2->next = next1;
545 if(this->first == tmp1)
546 this->first = item2;
547 else if(this->first == tmp2)
548 this->first = item1;
549 if(this->last == tmp1)
550 this->last = item1;
551 else if(this->last == tmp2)
552 this->last = item2;
553 if(link1->next)
554 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link1->next + this->offset))->prev = item2;
555 if(link1->prev)
556 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link1->prev + this->offset))->next = item2;
557 if(link2->next)
558 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link2->next + this->offset))->prev = item1;
559 if(link2->prev)
560 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link2->prev + this->offset))->next = item1;
561 }
562
563 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort(struct __ecereNameSpace__ecere__sys__OldList * this, int (* compare)(void *, void *, void *), void * data)
564 {
565 if(this->first && ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)this->first + this->offset))->next)
566 {
567 struct __ecereNameSpace__ecere__sys__OldList list1, list2;
568 void * middle, * end;
569
570 for(middle = this->first, list1.count = 0, list2.count = 0, end = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)this->first + this->offset))->next; middle && end; middle = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)middle + this->offset))->next, list1.count++, end = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)end + this->offset))->next, list2.count++)
571 {
572 end = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)end + this->offset))->next;
573 if(!end)
574 break;
575 }
576 list1.offset = this->offset;
577 list2.offset = this->offset;
578 list1.circ = this->circ;
579 list2.circ = this->circ;
580 list1.first = this->first;
581 list1.last = middle;
582 list2.first = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)middle + this->offset))->next;
583 list2.last = this->last;
584 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)list1.last + this->offset))->next = (((void *)0));
585 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)list2.first + this->offset))->prev = (((void *)0));
586 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort(&list1, compare, data);
587 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort(&list2, compare, data);
588 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Merge(this, &list1, &list2, compare, data);
589 }
590 }
591
592 extern int strcmp(const char * , const char * );
593
594 void * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(struct __ecereNameSpace__ecere__sys__OldList * this, char * name, unsigned int warn)
595 {
596 void * result = (((void *)0));
597
598 if(name)
599 {
600 void * item;
601 struct __ecereNameSpace__ecere__sys__NamedItem * link;
602 int compare = 1;
603
604 for(item = this->first; item; item = link->next)
605 {
606 link = (struct __ecereNameSpace__ecere__sys__NamedItem *)(((unsigned char *)item) + this->offset);
607 if(link->name && (compare = strcmp(link->name, name)) >= 0)
608 break;
609 }
610 if(!compare)
611 result = item;
612 else if(warn)
613 ;
614 }
615 return result;
616 }
617
618 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_PlaceName(struct __ecereNameSpace__ecere__sys__OldList * this, char * name, void ** place)
619 {
620 unsigned int result = 0x1;
621 void * item;
622 struct __ecereNameSpace__ecere__sys__NamedItem * link;
623 int compare = 1;
624
625 for(item = this->first; item; item = link->next)
626 {
627 link = (struct __ecereNameSpace__ecere__sys__NamedItem *)((unsigned char *)item + this->offset);
628 if(link->name && (compare = strcmp(link->name, name)) >= 0)
629 break;
630 }
631 if(!item)
632 *place = this->last;
633 else
634 *place = link->prev;
635 if(compare)
636 result = 0x1;
637 else
638 ;
639 return result;
640 }
641
642 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
643 {
644 unsigned int result = 0x0;
645 void * place;
646 struct __ecereNameSpace__ecere__sys__NamedItem * link = ((struct __ecereNameSpace__ecere__sys__NamedItem *)((unsigned char *)item + this->offset));
647
648 if(__ecereMethod___ecereNameSpace__ecere__sys__OldList_PlaceName(this, link->name, &place))
649 {
650 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(this, place, item);
651 result = 0x1;
652 }
653 return result;
654 }
655
656 struct __ecereNameSpace__ecere__sys__OldLink * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(struct __ecereNameSpace__ecere__sys__OldList * this, void * data)
657 {
658 void * item;
659 struct __ecereNameSpace__ecere__sys__OldLink * link;
660
661 for(item = this->first; item; item = link->next)
662 {
663 link = (struct __ecereNameSpace__ecere__sys__OldLink *)((unsigned char *)item + this->offset);
664 if(link->data == data)
665 break;
666 }
667 return item;
668 }
669
670 void * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindNamedLink(struct __ecereNameSpace__ecere__sys__OldList * this, char * name, unsigned int warn)
671 {
672 if(name)
673 {
674 void * item = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(this, name, warn);
675
676 return item ? ((struct __ecereNameSpace__ecere__sys__NamedLink *)((unsigned char *)item + this->offset))->data : (((void *)0));
677 }
678 return (((void *)0));
679 }
680
681 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Copy(struct __ecereNameSpace__ecere__sys__OldList * this, struct __ecereNameSpace__ecere__sys__OldList * src, int size, void (* copy)(void * dest, void * src))
682 {
683 struct __ecereNameSpace__ecere__sys__Item * item;
684
685 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(this);
686 for(item = src->first; item; item = item->next)
687 {
688 struct __ecereNameSpace__ecere__sys__Item * newItem = (struct __ecereNameSpace__ecere__sys__Item *)__ecereNameSpace__ecere__com__eSystem_New0(sizeof(unsigned char) * (size));
689
690 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, newItem);
691 __ecereMethod___ecereNameSpace__ecere__sys__Item_Copy(newItem, item, size);
692 if(copy)
693 copy(newItem, item);
694 }
695 }
696
697 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);
698
699 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
700
701 struct __ecereNameSpace__ecere__com__NameSpace
702 {
703 char *  name;
704 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
705 struct __ecereNameSpace__ecere__com__NameSpace *  left;
706 struct __ecereNameSpace__ecere__com__NameSpace *  right;
707 int depth;
708 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
709 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
710 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
711 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
712 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
713 } __attribute__ ((gcc_struct));
714
715 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
716
717 struct __ecereNameSpace__ecere__com__Module
718 {
719 struct __ecereNameSpace__ecere__com__Instance * application;
720 struct __ecereNameSpace__ecere__sys__OldList classes;
721 struct __ecereNameSpace__ecere__sys__OldList defines;
722 struct __ecereNameSpace__ecere__sys__OldList functions;
723 struct __ecereNameSpace__ecere__sys__OldList modules;
724 struct __ecereNameSpace__ecere__com__Instance * prev;
725 struct __ecereNameSpace__ecere__com__Instance * next;
726 char *  name;
727 void *  library;
728 void *  Unload;
729 int importType;
730 int origImportType;
731 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
732 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
733 } __attribute__ ((gcc_struct));
734
735 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
736
737 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);
738
739 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);
740
741 void __ecereRegisterModule_OldList(struct __ecereNameSpace__ecere__com__Instance * module)
742 {
743 struct __ecereNameSpace__ecere__com__Class * class;
744
745 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::Item", 0, sizeof(struct __ecereNameSpace__ecere__sys__Item), 0, 0, 0, module, 4, 1);
746 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
747 __ecereClass___ecereNameSpace__ecere__sys__Item = class;
748 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Copy", "void Copy(ecere::sys::Item src, int size)", __ecereMethod___ecereNameSpace__ecere__sys__Item_Copy, 1);
749 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::Item", 4, 4, 1);
750 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::Item", 4, 4, 1);
751 if(class)
752 class->fixed = (unsigned int)1;
753 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::NamedItem", 0, sizeof(struct __ecereNameSpace__ecere__sys__NamedItem), 0, 0, 0, module, 4, 1);
754 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
755 __ecereClass___ecereNameSpace__ecere__sys__NamedItem = class;
756 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::NamedItem", 4, 4, 1);
757 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::NamedItem", 4, 4, 1);
758 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
759 if(class)
760 class->fixed = (unsigned int)1;
761 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::OldLink", 0, sizeof(struct __ecereNameSpace__ecere__sys__OldLink), 0, 0, 0, module, 4, 1);
762 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
763 __ecereClass___ecereNameSpace__ecere__sys__OldLink = class;
764 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", "void Free()", __ecereMethod___ecereNameSpace__ecere__sys__OldLink_Free, 1);
765 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::OldLink", 4, 4, 1);
766 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::OldLink", 4, 4, 1);
767 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
768 if(class)
769 class->fixed = (unsigned int)1;
770 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::NamedLink", 0, sizeof(struct __ecereNameSpace__ecere__sys__NamedLink), 0, 0, 0, module, 4, 1);
771 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
772 __ecereClass___ecereNameSpace__ecere__sys__NamedLink = class;
773 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::NamedLink", 4, 4, 1);
774 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::NamedLink", 4, 4, 1);
775 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
776 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
777 if(class)
778 class->fixed = (unsigned int)1;
779 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::NamedLink64", 0, sizeof(struct __ecereNameSpace__ecere__sys__NamedLink64), 0, 0, 0, module, 4, 1);
780 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
781 __ecereClass___ecereNameSpace__ecere__sys__NamedLink64 = class;
782 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::NamedLink64", 4, 4, 1);
783 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::NamedLink64", 4, 4, 1);
784 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
785 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "int64", 8, 8, 1);
786 if(class)
787 class->fixed = (unsigned int)1;
788 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::sys::OldList", 0, sizeof(struct __ecereNameSpace__ecere__sys__OldList), 0, 0, 0, module, 4, 1);
789 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
790 __ecereClass___ecereNameSpace__ecere__sys__OldList = class;
791 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "void Add(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add, 1);
792 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "AddName", "bool AddName(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName, 1);
793 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Clear", "void Clear(void)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear, 1);
794 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Copy", "void Copy(ecere::sys::OldList src, int size, void (* copy)(void * dest, void * src))", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Copy, 1);
795 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Delete", "void Delete(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete, 1);
796 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindLink", "ecere::sys::OldLink FindLink(void * data)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink, 1);
797 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindName", "void * FindName(char * name, bool warn)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName, 1);
798 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindNamedLink", "void * FindNamedLink(char * name, bool warn)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindNamedLink, 1);
799 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", "void Free(void (* freeFn)(void *))", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free, 1);
800 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Insert", "bool Insert(void * prevItem, void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert, 1);
801 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Move", "void Move(void * item, void * prevItem)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Move, 1);
802 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "PlaceName", "bool PlaceName(char * name, void ** place)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_PlaceName, 1);
803 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove, 1);
804 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "RemoveAll", "void RemoveAll(void (* freeFn)(void *))", __ecereMethod___ecereNameSpace__ecere__sys__OldList_RemoveAll, 1);
805 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Sort", "void Sort(int (* compare)(void *, void *, void *), void * data)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort, 1);
806 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Swap", "void Swap(void * item1, void * item2)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Swap, 1);
807 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "void *", 4, 4, 1);
808 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "void *", 4, 4, 1);
809 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
810 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "uint", 4, 4, 1);
811 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "circ", "bool", 4, 4, 1);
812 }
813
814 void __ecereUnregisterModule_OldList(struct __ecereNameSpace__ecere__com__Instance * module)
815 {
816
817 }
818