compiler/bootstrap: synced
[sdk] / compiler / bootstrap / ecere / bootstrap / Container.c
1 /* Code generated from eC source file: Container.ec */
2 #if defined(_WIN32)
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
6 #else
7 #define __runtimePlatform 2
8 #endif
9 #if defined(__GNUC__)
10 typedef long long int64;
11 typedef unsigned long long uint64;
12 #ifndef _WIN32
13 #define __declspec(x)
14 #endif
15 #elif defined(__TINYC__)
16 #include <stdarg.h>
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
20 #ifdef _WIN32
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
24 #else
25 #define __declspec(x)
26 #endif
27 typedef long long int64;
28 typedef unsigned long long uint64;
29 #else
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
32 #endif
33 #ifdef __BIG_ENDIAN__
34 #define __ENDIAN_PAD(x) (8 - (x))
35 #else
36 #define __ENDIAN_PAD(x) 0
37 #endif
38 #if defined(_WIN32)
39 #   if defined(__GNUC__) || defined(__TINYC__)
40 #      define ecere_stdcall __attribute__((__stdcall__))
41 #      define ecere_gcc_struct __attribute__((gcc_struct))
42 #   else
43 #      define ecere_stdcall __stdcall
44 #      define ecere_gcc_struct
45 #   endif
46 #else
47 #   define ecere_stdcall
48 #   define ecere_gcc_struct
49 #endif
50 #include <stdint.h>
51 #include <sys/types.h>
52 extern int __ecereVMethodID_class_OnCompare;
53
54 extern int __ecereVMethodID_class_OnGetString;
55
56 extern int __ecereVMethodID_class_OnSerialize;
57
58 extern int __ecereVMethodID_class_OnUnserialize;
59
60 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Class_char__PTR_;
61
62 struct __ecereNameSpace__ecere__sys__BTNode;
63
64 struct __ecereNameSpace__ecere__sys__OldList
65 {
66 void *  first;
67 void *  last;
68 int count;
69 unsigned int offset;
70 unsigned int circ;
71 } ecere_gcc_struct;
72
73 struct __ecereNameSpace__ecere__com__DataValue
74 {
75 union
76 {
77 char c;
78 unsigned char uc;
79 short s;
80 unsigned short us;
81 int i;
82 unsigned int ui;
83 void *  p;
84 float f;
85 double d;
86 long long i64;
87 uint64 ui64;
88 } ecere_gcc_struct __anon1;
89 } ecere_gcc_struct;
90
91 struct __ecereNameSpace__ecere__com__IteratorPointer;
92
93 struct __ecereNameSpace__ecere__com__SerialBuffer
94 {
95 unsigned char *  _buffer;
96 unsigned int count;
97 unsigned int _size;
98 unsigned int pos;
99 } ecere_gcc_struct;
100
101 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
102
103 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
104
105 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
106
107 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
108
109 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void *  memory);
110
111 extern char *  strcat(char * , const char * );
112
113 extern void *  memset(void *  area, int value, size_t count);
114
115 extern unsigned int __ecereNameSpace__ecere__com__log2i(unsigned int number);
116
117 struct __ecereNameSpace__ecere__com__ClassTemplateParameter;
118
119 int __ecereVMethodID_class_OnCompare;
120
121 int __ecereVMethodID_class_OnCopy;
122
123 int __ecereVMethodID_class_OnGetString;
124
125 int __ecereVMethodID_class_OnFree;
126
127 struct __ecereNameSpace__ecere__com__Property;
128
129 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void *  instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
130
131 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Iterator_data, * __ecerePropM___ecereNameSpace__ecere__com__Iterator_data;
132
133 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Container_copySrc, * __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc;
134
135 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Container_firstIterator, * __ecerePropM___ecereNameSpace__ecere__com__Container_firstIterator;
136
137 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Container_lastIterator, * __ecerePropM___ecereNameSpace__ecere__com__Container_lastIterator;
138
139 struct __ecereNameSpace__ecere__com__Class;
140
141 struct __ecereNameSpace__ecere__com__Instance
142 {
143 void * *  _vTbl;
144 struct __ecereNameSpace__ecere__com__Class * _class;
145 int _refCount;
146 } ecere_gcc_struct;
147
148 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
149
150 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
151
152 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
153
154 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  dataType, void *  setStmt, void *  getStmt, int declMode);
155
156 extern void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base);
157
158 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst;
159
160 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetLast;
161
162 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetPrev;
163
164 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext;
165
166 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData;
167
168 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_SetData;
169
170 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetAtPosition;
171
172 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Insert;
173
174 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Add;
175
176 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove;
177
178 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Move;
179
180 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll;
181
182 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Copy;
183
184 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Find;
185
186 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_FreeIterator;
187
188 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount;
189
190 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Free;
191
192 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Delete;
193
194 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Sort;
195
196 struct __ecereNameSpace__ecere__com__Property
197 {
198 struct __ecereNameSpace__ecere__com__Property * prev;
199 struct __ecereNameSpace__ecere__com__Property * next;
200 const char *  name;
201 unsigned int isProperty;
202 int memberAccess;
203 int id;
204 struct __ecereNameSpace__ecere__com__Class * _class;
205 const char *  dataTypeString;
206 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
207 struct __ecereNameSpace__ecere__com__Instance * dataType;
208 void (*  Set)(void * , int);
209 int (*  Get)(void * );
210 unsigned int (*  IsSet)(void * );
211 void *  data;
212 void *  symbol;
213 int vid;
214 unsigned int conversion;
215 unsigned int watcherOffset;
216 const char *  category;
217 unsigned int compiled;
218 unsigned int selfWatchable;
219 unsigned int isWatchable;
220 } ecere_gcc_struct;
221
222 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
223
224 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
225
226 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
227
228 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
229
230 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
231
232 struct __ecereNameSpace__ecere__com__Iterator
233 {
234 struct __ecereNameSpace__ecere__com__Instance * container;
235 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
236 } ecere_gcc_struct;
237
238 void __ecereProp___ecereNameSpace__ecere__com__Container_Set_copySrc(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value);
239
240 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_GetFirst(struct __ecereNameSpace__ecere__com__Instance * this)
241 {
242 return (((void *)0));
243 }
244
245 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_GetLast(struct __ecereNameSpace__ecere__com__Instance * this)
246 {
247 return (((void *)0));
248 }
249
250 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_GetPrev(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer)
251 {
252 return (((void *)0));
253 }
254
255 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_GetNext(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer)
256 {
257 return (((void *)0));
258 }
259
260 uint64 __ecereMethod___ecereNameSpace__ecere__com__Container_GetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer)
261 {
262 return (uint64)0;
263 }
264
265 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_GetAtPosition(struct __ecereNameSpace__ecere__com__Instance * this, const uint64 pos, unsigned int create, unsigned int * justAdded)
266 {
267 return (((void *)0));
268 }
269
270 int __ecereVMethodID_class_OnSerialize;
271
272 int __ecereVMethodID_class_OnUnserialize;
273
274 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
275
276 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Put(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, const void * data);
277
278 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Get(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * *  data);
279
280 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this);
281
282 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value);
283
284 struct __ecereNameSpace__ecere__sys__BinaryTree;
285
286 struct __ecereNameSpace__ecere__sys__BinaryTree
287 {
288 struct __ecereNameSpace__ecere__sys__BTNode * root;
289 int count;
290 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
291 void (*  FreeKey)(void *  key);
292 } ecere_gcc_struct;
293
294 struct __ecereNameSpace__ecere__com__DataMember;
295
296 struct __ecereNameSpace__ecere__com__DataMember
297 {
298 struct __ecereNameSpace__ecere__com__DataMember * prev;
299 struct __ecereNameSpace__ecere__com__DataMember * next;
300 const char *  name;
301 unsigned int isProperty;
302 int memberAccess;
303 int id;
304 struct __ecereNameSpace__ecere__com__Class * _class;
305 const char *  dataTypeString;
306 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
307 struct __ecereNameSpace__ecere__com__Instance * dataType;
308 int type;
309 int offset;
310 int memberID;
311 struct __ecereNameSpace__ecere__sys__OldList members;
312 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
313 int memberOffset;
314 short structAlignment;
315 short pointerAlignment;
316 } ecere_gcc_struct;
317
318 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  type, unsigned int size, unsigned int alignment, int declMode);
319
320 struct __ecereNameSpace__ecere__com__Method;
321
322 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
323 {
324 union
325 {
326 struct
327 {
328 const char *  dataTypeString;
329 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
330 } ecere_gcc_struct __anon1;
331 struct __ecereNameSpace__ecere__com__DataValue expression;
332 struct
333 {
334 const char *  memberString;
335 union
336 {
337 struct __ecereNameSpace__ecere__com__DataMember * member;
338 struct __ecereNameSpace__ecere__com__Property * prop;
339 struct __ecereNameSpace__ecere__com__Method * method;
340 } ecere_gcc_struct __anon1;
341 } ecere_gcc_struct __anon2;
342 } ecere_gcc_struct __anon1;
343 } ecere_gcc_struct;
344
345 struct __ecereNameSpace__ecere__com__Method
346 {
347 const char *  name;
348 struct __ecereNameSpace__ecere__com__Method * parent;
349 struct __ecereNameSpace__ecere__com__Method * left;
350 struct __ecereNameSpace__ecere__com__Method * right;
351 int depth;
352 int (*  function)();
353 int vid;
354 int type;
355 struct __ecereNameSpace__ecere__com__Class * _class;
356 void *  symbol;
357 const char *  dataTypeString;
358 struct __ecereNameSpace__ecere__com__Instance * dataType;
359 int memberAccess;
360 } ecere_gcc_struct;
361
362 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  type, void *  function, int declMode);
363
364 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  type, void *  function, int declMode);
365
366 extern struct __ecereNameSpace__ecere__com__ClassTemplateParameter * __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, int type, const void *  info, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * defaultArg);
367
368 struct __ecereNameSpace__ecere__com__Module;
369
370 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, const char *  name, const char *  baseName, int size, int sizeClass, unsigned int (*  Constructor)(void * ), void (*  Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
371
372 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
373
374 struct __ecereNameSpace__ecere__com__NameSpace;
375
376 struct __ecereNameSpace__ecere__com__NameSpace
377 {
378 const char *  name;
379 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
380 struct __ecereNameSpace__ecere__com__NameSpace *  left;
381 struct __ecereNameSpace__ecere__com__NameSpace *  right;
382 int depth;
383 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
384 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
385 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
386 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
387 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
388 } ecere_gcc_struct;
389
390 struct __ecereNameSpace__ecere__com__Class
391 {
392 struct __ecereNameSpace__ecere__com__Class * prev;
393 struct __ecereNameSpace__ecere__com__Class * next;
394 const char *  name;
395 int offset;
396 int structSize;
397 void * *  _vTbl;
398 int vTblSize;
399 unsigned int (*  Constructor)(void * );
400 void (*  Destructor)(void * );
401 int offsetClass;
402 int sizeClass;
403 struct __ecereNameSpace__ecere__com__Class * base;
404 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
405 struct __ecereNameSpace__ecere__sys__BinaryTree members;
406 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
407 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
408 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
409 struct __ecereNameSpace__ecere__sys__OldList derivatives;
410 int memberID;
411 int startMemberID;
412 int type;
413 struct __ecereNameSpace__ecere__com__Instance * module;
414 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
415 const char *  dataTypeString;
416 struct __ecereNameSpace__ecere__com__Instance * dataType;
417 int typeSize;
418 int defaultAlignment;
419 void (*  Initialize)();
420 int memberOffset;
421 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
422 const char *  designerClass;
423 unsigned int noExpansion;
424 const char *  defaultProperty;
425 unsigned int comRedefinition;
426 int count;
427 int isRemote;
428 unsigned int internalDecl;
429 void *  data;
430 unsigned int computeSize;
431 short structAlignment;
432 short pointerAlignment;
433 int destructionWatchOffset;
434 unsigned int fixed;
435 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
436 int inheritanceAccess;
437 const char *  fullName;
438 void *  symbol;
439 struct __ecereNameSpace__ecere__sys__OldList conversions;
440 struct __ecereNameSpace__ecere__sys__OldList templateParams;
441 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
442 struct __ecereNameSpace__ecere__com__Class * templateClass;
443 struct __ecereNameSpace__ecere__sys__OldList templatized;
444 int numParams;
445 unsigned int isInstanceClass;
446 unsigned int byValueSystemClass;
447 } ecere_gcc_struct;
448
449 struct __ecereNameSpace__ecere__com__Application
450 {
451 int argc;
452 const char * *  argv;
453 int exitCode;
454 unsigned int isGUIApp;
455 struct __ecereNameSpace__ecere__sys__OldList allModules;
456 char *  parsedCommand;
457 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
458 } ecere_gcc_struct;
459
460 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Iterator;
461
462 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Container;
463
464 void __ecereMethod___ecereNameSpace__ecere__com__Container_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance * this)
465 {
466 if((struct __ecereNameSpace__ecere__com__Instance *)this)
467 {
468 (__extension__ ({
469 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
470
471 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
472 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
473
474 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
475 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free]);
476 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (void)1;
477 }));
478 (__ecereNameSpace__ecere__com__eInstance_DecRef(this), this = 0);
479 }
480 }
481
482 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_int;
483
484 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
485
486 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uint;
487
488 const char *  __ecereProp___ecereNameSpace__ecere__com__Class_Get_char__PTR_(struct __ecereNameSpace__ecere__com__Class * this);
489
490 struct __ecereNameSpace__ecere__com__Class * __ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_(const char *  value);
491
492 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
493
494 struct __ecereNameSpace__ecere__com__Module
495 {
496 struct __ecereNameSpace__ecere__com__Instance * application;
497 struct __ecereNameSpace__ecere__sys__OldList classes;
498 struct __ecereNameSpace__ecere__sys__OldList defines;
499 struct __ecereNameSpace__ecere__sys__OldList functions;
500 struct __ecereNameSpace__ecere__sys__OldList modules;
501 struct __ecereNameSpace__ecere__com__Instance * prev;
502 struct __ecereNameSpace__ecere__com__Instance * next;
503 const char *  name;
504 void *  library;
505 void *  Unload;
506 int importType;
507 int origImportType;
508 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
509 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
510 } ecere_gcc_struct;
511
512 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this)
513 {
514 return (__extension__ ({
515 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
516
517 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
518 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
519
520 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
521 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
522 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (uint64)1;
523 }));
524 }
525
526 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value)
527 {
528 (__extension__ ({
529 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer, uint64 data);
530
531 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer, uint64 data))__extension__ ({
532 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
533
534 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
535 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_SetData]);
536 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer, value) : (unsigned int)1;
537 }));
538 }
539
540 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Prev(struct __ecereNameSpace__ecere__com__Iterator * this)
541 {
542 if(this->pointer && this->container)
543 this->pointer = (__extension__ ({
544 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
545
546 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
547 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
548
549 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
550 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetPrev]);
551 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
552 }));
553 else if(this->container)
554 this->pointer = (__extension__ ({
555 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
556
557 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
558 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
559
560 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
561 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetLast]);
562 __internal_VirtualMethod ? __internal_VirtualMethod(this->container) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
563 }));
564 return this->pointer != (((void *)0));
565 }
566
567 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(struct __ecereNameSpace__ecere__com__Iterator * this)
568 {
569 if(this->pointer && this->container)
570 this->pointer = (__extension__ ({
571 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
572
573 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
574 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
575
576 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
577 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
578 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
579 }));
580 else if(this->container)
581 this->pointer = (__extension__ ({
582 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
583
584 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
585 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
586
587 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
588 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
589 __internal_VirtualMethod ? __internal_VirtualMethod(this->container) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
590 }));
591 return this->pointer != (((void *)0));
592 }
593
594 uint64 __ecereMethod___ecereNameSpace__ecere__com__Iterator_GetData(struct __ecereNameSpace__ecere__com__Iterator * this)
595 {
596 return (__extension__ ({
597 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
598
599 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
600 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
601
602 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
603 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
604 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (uint64)1;
605 }));
606 }
607
608 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_SetData(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value)
609 {
610 return (__extension__ ({
611 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer, uint64 data);
612
613 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer, uint64 data))__extension__ ({
614 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
615
616 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
617 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_SetData]);
618 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer, value) : (unsigned int)1;
619 }));
620 }
621
622 void __ecereMethod___ecereNameSpace__ecere__com__Iterator_Remove(struct __ecereNameSpace__ecere__com__Iterator * this)
623 {
624 if(this->container)
625 (__extension__ ({
626 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
627
628 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
629 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
630
631 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
632 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove]);
633 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (void)1;
634 }));
635 this->pointer = (((void *)0));
636 }
637
638 void __ecereMethod___ecereNameSpace__ecere__com__Iterator_Free(struct __ecereNameSpace__ecere__com__Iterator * this)
639 {
640 if(this->container)
641 (__extension__ ({
642 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
643
644 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
645 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
646
647 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
648 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_FreeIterator]);
649 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, this->pointer) : (void)1;
650 }));
651 }
652
653 void __ecereDestructor___ecereNameSpace__ecere__com__Container(struct __ecereNameSpace__ecere__com__Instance * this)
654 {
655 {
656 (__extension__ ({
657 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
658
659 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
660 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
661
662 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
663 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll]);
664 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (void)1;
665 }));
666 }
667 }
668
669 void __ecereProp___ecereNameSpace__ecere__com__Container_Set_copySrc(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value)
670 {
671 if(value)
672 (__extension__ ({
673 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance * source);
674
675 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance * source))__extension__ ({
676 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
677
678 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
679 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Copy]);
680 __internal_VirtualMethod ? __internal_VirtualMethod(this, value) : (void)1;
681 }));
682 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__Container_copySrc), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc);
683 }
684
685 void __ecereProp___ecereNameSpace__ecere__com__Container_Get_firstIterator(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Iterator * value)
686 {
687 struct __ecereNameSpace__ecere__com__Iterator __simpleStruct0;
688
689 *value = (__simpleStruct0.container = (struct __ecereNameSpace__ecere__com__Instance *)this, __simpleStruct0.pointer = (__extension__ ({
690 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
691
692 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
693 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
694
695 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
696 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
697 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
698 })), __simpleStruct0);
699 }
700
701 void __ecereProp___ecereNameSpace__ecere__com__Container_Get_lastIterator(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Iterator * value)
702 {
703 struct __ecereNameSpace__ecere__com__Iterator __simpleStruct0;
704
705 *value = (__simpleStruct0.container = (struct __ecereNameSpace__ecere__com__Instance *)this, __simpleStruct0.pointer = (__extension__ ({
706 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
707
708 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
709 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
710
711 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
712 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetLast]);
713 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
714 })), __simpleStruct0);
715 }
716
717 void __ecereMethod___ecereNameSpace__ecere__com__Container_RemoveAll(struct __ecereNameSpace__ecere__com__Instance * this)
718 {
719 struct __ecereNameSpace__ecere__com__IteratorPointer * i, * next;
720
721 for(i = (__extension__ ({
722 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
723
724 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
725 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
726
727 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
728 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
729 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
730 })), next = i ? (__extension__ ({
731 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
732
733 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
734 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
735
736 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
737 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
738 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
739 })) : (((void *)0)); i; i = next, next = i ? (__extension__ ({
740 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
741
742 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
743 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
744
745 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
746 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
747 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
748 })) : (((void *)0)))
749 (__extension__ ({
750 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
751
752 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
753 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
754
755 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
756 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove]);
757 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (void)1;
758 }));
759 }
760
761 void __ecereMethod___ecereNameSpace__ecere__com__Container_Copy(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * source)
762 {
763 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
764
765 (__extension__ ({
766 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
767
768 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
769 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
770
771 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
772 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll]);
773 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (void)1;
774 }));
775 for(i = (__extension__ ({
776 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
777
778 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
779 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = source;
780
781 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
782 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
783 __internal_VirtualMethod ? __internal_VirtualMethod(source) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
784 })); i; i = (__extension__ ({
785 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
786
787 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
788 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = source;
789
790 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
791 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
792 __internal_VirtualMethod ? __internal_VirtualMethod(source, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
793 })))
794 {
795 uint64 data = (__extension__ ({
796 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
797
798 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
799 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = source;
800
801 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
802 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
803 __internal_VirtualMethod ? __internal_VirtualMethod(source, i) : (uint64)1;
804 }));
805
806 (__extension__ ({
807 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
808
809 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
810 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
811
812 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
813 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
814 __internal_VirtualMethod ? __internal_VirtualMethod(this, data) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
815 }));
816 }
817 }
818
819 int __ecereMethod___ecereNameSpace__ecere__com__Container_OnCompare(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * b)
820 {
821 struct __ecereNameSpace__ecere__com__IteratorPointer * ia, * ib;
822 struct __ecereNameSpace__ecere__com__Class * Dclass = class->templateArgs[2].__anon1.__anon1.dataTypeClass;
823 unsigned int byRef = (Dclass->type == 1000 && !Dclass->byValueSystemClass) || Dclass->type == 2 || Dclass->type == 4 || Dclass->type == 3;
824 int (* onCompare)(void *, const void *, const void *) = (void *)Dclass->_vTbl[__ecereVMethodID_class_OnCompare];
825
826 if(this && !b)
827 return 1;
828 if(b && !this)
829 return -1;
830 if(!b && !this)
831 return 0;
832 if((__extension__ ({
833 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
834
835 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
836 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
837
838 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
839 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
840 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (int)1;
841 })) > (__extension__ ({
842 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
843
844 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
845 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = b;
846
847 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
848 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
849 __internal_VirtualMethod ? __internal_VirtualMethod(b) : (int)1;
850 })))
851 return 1;
852 if((__extension__ ({
853 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
854
855 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
856 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
857
858 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
859 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
860 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (int)1;
861 })) < (__extension__ ({
862 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
863
864 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
865 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = b;
866
867 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
868 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
869 __internal_VirtualMethod ? __internal_VirtualMethod(b) : (int)1;
870 })))
871 return -1;
872 ia = (__extension__ ({
873 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
874
875 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
876 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
877
878 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
879 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
880 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
881 }));
882 ib = (__extension__ ({
883 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
884
885 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
886 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = b;
887
888 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
889 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
890 __internal_VirtualMethod ? __internal_VirtualMethod(b) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
891 }));
892 while(ia && ib)
893 {
894 uint64 dataA = (__extension__ ({
895 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
896
897 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
898 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
899
900 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
901 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
902 __internal_VirtualMethod ? __internal_VirtualMethod(this, ia) : (uint64)1;
903 }));
904 uint64 dataB = (__extension__ ({
905 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
906
907 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
908 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = b;
909
910 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
911 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
912 __internal_VirtualMethod ? __internal_VirtualMethod(b, ib) : (uint64)1;
913 }));
914 int r = onCompare(Dclass, byRef ? ((char *)&dataA + __ENDIAN_PAD(class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (const void *)(uintptr_t)dataA, byRef ? ((char *)&dataB + __ENDIAN_PAD(class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (const void *)(uintptr_t)dataB);
915
916 if(r)
917 return r;
918 ia = (__extension__ ({
919 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
920
921 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
922 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
923
924 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
925 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
926 __internal_VirtualMethod ? __internal_VirtualMethod(this, ia) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
927 }));
928 ib = (__extension__ ({
929 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
930
931 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
932 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = b;
933
934 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
935 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
936 __internal_VirtualMethod ? __internal_VirtualMethod(b, ib) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
937 }));
938 }
939 if(ia)
940 return 1;
941 if(ib)
942 return -1;
943 return 0;
944 }
945
946 int __ecereMethod___ecereNameSpace__ecere__com__Container_GetCount(struct __ecereNameSpace__ecere__com__Instance * this)
947 {
948 int count = 0;
949 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
950
951 for(i = (__extension__ ({
952 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
953
954 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
955 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
956
957 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
958 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
959 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
960 })); i; i = (__extension__ ({
961 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
962
963 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
964 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
965
966 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
967 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
968 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
969 })))
970 count++;
971 return count;
972 }
973
974 void __ecereMethod___ecereNameSpace__ecere__com__Container_Free(struct __ecereNameSpace__ecere__com__Instance * this)
975 {
976 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
977
978 while((i = (__extension__ ({
979 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
980
981 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
982 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
983
984 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
985 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
986 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
987 }))))
988 (__extension__ ({
989 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * i);
990
991 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * i))__extension__ ({
992 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
993
994 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
995 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Delete]);
996 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (void)1;
997 }));
998 }
999
1000 const char * __ecereMethod___ecereNameSpace__ecere__com__Container_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance * this, char * tempString, void * fieldData, unsigned int * needClass)
1001 {
1002 if((struct __ecereNameSpace__ecere__com__Instance *)this)
1003 {
1004 char itemString[4096];
1005 unsigned int first = 1;
1006 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
1007
1008 tempString[0] = '\0';
1009 for(i = (__extension__ ({
1010 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1011
1012 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1013 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1014
1015 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1016 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
1017 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1018 })); i; i = (__extension__ ({
1019 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1020
1021 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1022 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1023
1024 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1025 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
1026 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1027 })))
1028 {
1029 struct __ecereNameSpace__ecere__com__Class * Dclass = class->templateArgs[2].__anon1.__anon1.dataTypeClass;
1030 uint64 data = (__extension__ ({
1031 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1032
1033 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1034 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1035
1036 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1037 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
1038 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (uint64)1;
1039 }));
1040 const char * result;
1041
1042 itemString[0] = '\0';
1043 result = ((const char * (*)(void *, void *, char *, void *, unsigned int *))(void *)Dclass->_vTbl[__ecereVMethodID_class_OnGetString])(Dclass, ((Dclass->type == 1000 && !Dclass->byValueSystemClass) || Dclass->type == 2 || Dclass->type == 4 || Dclass->type == 3) ? ((char *)&data + __ENDIAN_PAD(class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (void *)(uintptr_t)data, itemString, (((void *)0)), (((void *)0)));
1044 if(!first)
1045 strcat(tempString, ", ");
1046 strcat(tempString, result);
1047 first = 0;
1048 }
1049 }
1050 else
1051 tempString[0] = 0;
1052 return tempString;
1053 }
1054
1055 void __ecereMethod___ecereNameSpace__ecere__com__Container_TakeOut(struct __ecereNameSpace__ecere__com__Instance * this, const uint64 d)
1056 {
1057 struct __ecereNameSpace__ecere__com__IteratorPointer * i = (__extension__ ({
1058 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 value);
1059
1060 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 value))__extension__ ({
1061 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1062
1063 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1064 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Find]);
1065 __internal_VirtualMethod ? __internal_VirtualMethod(this, d) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1066 }));
1067
1068 if(i)
1069 (__extension__ ({
1070 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
1071
1072 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
1073 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1074
1075 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1076 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove]);
1077 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (void)1;
1078 }));
1079 }
1080
1081 static __attribute__((unused)) void UnusedFunction()
1082 {
1083 int a;
1084
1085 (__extension__ ({
1086 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Class * , const void * , const void * object);
1087
1088 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Class *, const void *, const void * object))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnCompare]);
1089 __internal_VirtualMethod ? __internal_VirtualMethod(__ecereClass_int, (void *)&a, (((void *)0))) : (int)1;
1090 }));
1091 (__extension__ ({
1092 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Class * , const void * , const void * newData);
1093
1094 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Class *, const void *, const void * newData))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnCopy]);
1095 __internal_VirtualMethod ? __internal_VirtualMethod(__ecereClass_int, (void *)&a, (((void *)0))) : (void)1;
1096 }));
1097 (__extension__ ({
1098 const char *  (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Class * , const void * , char *  tempString, void *  fieldData, unsigned int *  needClass);
1099
1100 __internal_VirtualMethod = ((const char *  (*)(struct __ecereNameSpace__ecere__com__Class *, const void *, char *  tempString, void *  fieldData, unsigned int *  needClass))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnGetString]);
1101 __internal_VirtualMethod ? __internal_VirtualMethod(__ecereClass_int, (void *)&a, (((void *)0)), (((void *)0)), (((void *)0))) : (const char * )1;
1102 }));
1103 (__extension__ ({
1104 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Class * , const void * , struct __ecereNameSpace__ecere__com__Instance * channel);
1105
1106 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Class *, const void *, struct __ecereNameSpace__ecere__com__Instance * channel))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnSerialize]);
1107 __internal_VirtualMethod ? __internal_VirtualMethod(__ecereClass_int, (void *)&a, (((void *)0))) : (void)1;
1108 }));
1109 (__extension__ ({
1110 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Class * , const void * , struct __ecereNameSpace__ecere__com__Instance * channel);
1111
1112 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Class *, const void *, struct __ecereNameSpace__ecere__com__Instance * channel))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnUnserialize]);
1113 __internal_VirtualMethod ? __internal_VirtualMethod(__ecereClass_int, (void *)&a, (((void *)0))) : (void)1;
1114 }));
1115 }
1116
1117 void __ecereMethod___ecereNameSpace__ecere__com__Container_OnCopy(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance ** this, struct __ecereNameSpace__ecere__com__Instance * source)
1118 {
1119 if((struct __ecereNameSpace__ecere__com__Instance *)source)
1120 {
1121 struct __ecereNameSpace__ecere__com__Instance * container = __ecereNameSpace__ecere__com__eInstance_New(((struct __ecereNameSpace__ecere__com__Instance *)(char *)source)->_class);
1122
1123 (__extension__ ({
1124 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance * source);
1125
1126 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance * source))__extension__ ({
1127 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = container;
1128
1129 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1130 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Copy]);
1131 __internal_VirtualMethod ? __internal_VirtualMethod(container, (struct __ecereNameSpace__ecere__com__Instance *)source) : (void)1;
1132 }));
1133 (*this) = container;
1134 }
1135 else
1136 {
1137 (*this) = (((void *)0));
1138 }
1139 }
1140
1141 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__Container_Find(struct __ecereNameSpace__ecere__com__Instance * this, const uint64 value)
1142 {
1143 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
1144 struct __ecereNameSpace__ecere__com__Class * Dclass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass;
1145 unsigned int byRef = (Dclass->type == 1000 && !Dclass->byValueSystemClass) || Dclass->type == 2 || Dclass->type == 4 || Dclass->type == 3;
1146 int (* onCompare)(void *, const void *, const void *) = (void *)Dclass->_vTbl[__ecereVMethodID_class_OnCompare];
1147
1148 if(byRef)
1149 {
1150 for(i = (__extension__ ({
1151 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1152
1153 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1154 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1155
1156 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1157 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
1158 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1159 })); i; i = (__extension__ ({
1160 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1161
1162 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1163 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1164
1165 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1166 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
1167 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1168 })))
1169 {
1170 uint64 data = (__extension__ ({
1171 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1172
1173 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1174 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1175
1176 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1177 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
1178 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (uint64)1;
1179 }));
1180 int result = onCompare(Dclass, ((char *)&value + __ENDIAN_PAD(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)), ((char *)&data + __ENDIAN_PAD(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)));
1181
1182 if(!result)
1183 return i;
1184 }
1185 }
1186 else
1187 {
1188 for(i = (__extension__ ({
1189 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1190
1191 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1192 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1193
1194 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1195 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
1196 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1197 })); i; i = (__extension__ ({
1198 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1199
1200 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1201 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1202
1203 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1204 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
1205 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1206 })))
1207 {
1208 uint64 data = (__extension__ ({
1209 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1210
1211 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1212 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1213
1214 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1215 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
1216 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (uint64)1;
1217 }));
1218 int result = onCompare(Dclass, (const void *)(uintptr_t)value, (const void *)(uintptr_t)data);
1219
1220 if(!result)
1221 return i;
1222 }
1223 }
1224 return (((void *)0));
1225 }
1226
1227 void __ecereMethod___ecereNameSpace__ecere__com__Container_Delete(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * i)
1228 {
1229 uint64 data = (__extension__ ({
1230 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1231
1232 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1233 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1234
1235 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1236 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
1237 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (uint64)1;
1238 }));
1239
1240 (((void (* )(void *  _class, void *  data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance * )(char * )this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass, ((void * )((uintptr_t)(data)))), data = 0);
1241 (__extension__ ({
1242 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it);
1243
1244 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__extension__ ({
1245 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1246
1247 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1248 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove]);
1249 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (void)1;
1250 }));
1251 }
1252
1253 void __ecereMethod___ecereNameSpace__ecere__com__Container_OnSerialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * channel)
1254 {
1255 unsigned int count = (struct __ecereNameSpace__ecere__com__Instance *)this ? (__extension__ ({
1256 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1257
1258 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1259 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1260
1261 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1262 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
1263 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (int)1;
1264 })) : 0;
1265 struct __ecereNameSpace__ecere__com__IteratorPointer * i;
1266 struct __ecereNameSpace__ecere__com__Class * Dclass = class->templateArgs[2].__anon1.__anon1.dataTypeClass;
1267 unsigned int isNormalClass = (Dclass->type == 0) && Dclass->structSize;
1268
1269 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Put(channel, __ecereClass_uint, (void *)&count);
1270 if((struct __ecereNameSpace__ecere__com__Instance *)this)
1271 for(i = (__extension__ ({
1272 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1273
1274 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1275 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1276
1277 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1278 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst]);
1279 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1280 })); i; i = (__extension__ ({
1281 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1282
1283 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1284 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1285
1286 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1287 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetNext]);
1288 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1289 })))
1290 {
1291 uint64 data = (__extension__ ({
1292 uint64 (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer);
1293
1294 __internal_VirtualMethod = ((uint64 (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * pointer))__extension__ ({
1295 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1296
1297 __internal_ClassInst ? __internal_ClassInst->_vTbl : class->_vTbl;
1298 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetData]);
1299 __internal_VirtualMethod ? __internal_VirtualMethod(this, i) : (uint64)1;
1300 }));
1301 struct __ecereNameSpace__ecere__com__Class * Eclass = isNormalClass ? ((struct __ecereNameSpace__ecere__com__Instance *)(char *)((struct __ecereNameSpace__ecere__com__Instance *)((uintptr_t)((uint64)(data)))))->_class : Dclass;
1302
1303 ((void (*)(void *, void *, void *))(void *)Eclass->_vTbl[__ecereVMethodID_class_OnSerialize])(Eclass, ((Dclass->type == 1000 && !Dclass->byValueSystemClass) || Dclass->type == 2 || Dclass->type == 4 || Dclass->type == 3) ? ((char *)&data + __ENDIAN_PAD(class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (void *)(uintptr_t)data, channel);
1304 }
1305 }
1306
1307 void __ecereMethod___ecereNameSpace__ecere__com__Container_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance ** this, struct __ecereNameSpace__ecere__com__Instance * channel)
1308 {
1309 struct __ecereNameSpace__ecere__com__Instance * container = __ecereNameSpace__ecere__com__eInstance_New(__ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_(class->fullName));
1310 unsigned int count, c;
1311 struct __ecereNameSpace__ecere__com__Class * Dclass = class->templateArgs[2].__anon1.__anon1.dataTypeClass;
1312 uint64 data;
1313 unsigned int isStruct = Dclass->type == 1;
1314
1315 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Get(channel, __ecereClass_uint, (void *)&count);
1316 if(isStruct)
1317 data = (uint64)(uintptr_t)(__ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (Dclass->structSize)));
1318 for(c = 0; c < count; c++)
1319 {
1320 if(isStruct)
1321 memset((char *)(uintptr_t)data, 0, Dclass->structSize);
1322 else
1323 data = (uint64)0;
1324 ((void (*)(void *, void *, void *))(void *)Dclass->_vTbl[__ecereVMethodID_class_OnUnserialize])(Dclass, isStruct ? (void *)(uintptr_t)data : ((char *)&data + __ENDIAN_PAD(class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)), channel);
1325 (__extension__ ({
1326 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
1327
1328 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
1329 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = container;
1330
1331 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1332 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
1333 __internal_VirtualMethod ? __internal_VirtualMethod(container, data) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1334 }));
1335 }
1336 if(isStruct)
1337 (__ecereNameSpace__ecere__com__eSystem_Delete((void *)(uintptr_t)data), data = 0);
1338 (*this) = container;
1339 }
1340
1341 void __ecereUnregisterModule_Container(struct __ecereNameSpace__ecere__com__Instance * module)
1342 {
1343
1344 __ecerePropM___ecereNameSpace__ecere__com__Iterator_data = (void *)0;
1345 __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc = (void *)0;
1346 __ecerePropM___ecereNameSpace__ecere__com__Container_firstIterator = (void *)0;
1347 __ecerePropM___ecereNameSpace__ecere__com__Container_lastIterator = (void *)0;
1348 }
1349
1350 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Find(struct __ecereNameSpace__ecere__com__Iterator * this, const uint64 value)
1351 {
1352 if(this->container)
1353 {
1354 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Free(this);
1355 this->pointer = (__extension__ ({
1356 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 value);
1357
1358 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 value))__extension__ ({
1359 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
1360
1361 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1362 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Find]);
1363 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, value) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1364 }));
1365 }
1366 return this->pointer != (((void *)0));
1367 }
1368
1369 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(struct __ecereNameSpace__ecere__com__Iterator * this, const uint64 index, unsigned int create)
1370 {
1371 if(this->container)
1372 {
1373 unsigned int justAdded = 0;
1374
1375 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Free(this);
1376 this->pointer = (__extension__ ({
1377 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 pos, unsigned int create, unsigned int *  justAdded);
1378
1379 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, const uint64 pos, unsigned int create, unsigned int *  justAdded))__extension__ ({
1380 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this->container;
1381
1382 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1383 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetAtPosition]);
1384 __internal_VirtualMethod ? __internal_VirtualMethod(this->container, index, create, &justAdded) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1385 }));
1386 return !justAdded && this->pointer != (((void *)0));
1387 }
1388 return 0;
1389 }
1390
1391 static void __ecereMethod___ecereNameSpace__ecere__com__Container__Sort(struct __ecereNameSpace__ecere__com__Instance *  this, unsigned int ascending, struct __ecereNameSpace__ecere__com__Instance * *  lists);
1392
1393 static void __ecereMethod___ecereNameSpace__ecere__com__Container__Sort(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int ascending, struct __ecereNameSpace__ecere__com__Instance ** lists)
1394 {
1395 int count = (__extension__ ({
1396 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1397
1398 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1399 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1400
1401 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1402 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
1403 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (int)1;
1404 }));
1405
1406 if(count >= 2 && ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[1].__anon1.__anon1.dataTypeClass == __ecereClass_int)
1407 {
1408 struct __ecereNameSpace__ecere__com__Iterator __simpleStruct1 =
1409 {
1410 0, 0
1411 };
1412 struct __ecereNameSpace__ecere__com__Iterator __simpleStruct0 =
1413 {
1414 0, 0
1415 };
1416 struct __ecereNameSpace__ecere__com__Iterator a =
1417 {
1418 this, 0
1419 };
1420 struct __ecereNameSpace__ecere__com__Iterator b =
1421 {
1422 this, 0
1423 };
1424 struct __ecereNameSpace__ecere__com__Iterator mid =
1425 {
1426 this, 0
1427 };
1428 struct __ecereNameSpace__ecere__com__Class * Dclass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass;
1429 unsigned int byRef = (Dclass->type == 1000 && !Dclass->byValueSystemClass) || Dclass->type == 2 || Dclass->type == 4 || Dclass->type == 3;
1430 int (* onCompare)(void *, const void *, const void *) = (void *)Dclass->_vTbl[__ecereVMethodID_class_OnCompare];
1431 struct __ecereNameSpace__ecere__com__Instance * listA = lists[0];
1432 struct __ecereNameSpace__ecere__com__Instance * listB = lists[1];
1433
1434 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&mid, (uint64)(count / 2 - 1), 0);
1435 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&a))
1436 {
1437 (__extension__ ({
1438 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
1439
1440 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
1441 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = listA;
1442
1443 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1444 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
1445 __internal_VirtualMethod ? __internal_VirtualMethod(listA, __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&a)) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1446 }));
1447 if(a.pointer == mid.pointer)
1448 break;
1449 }
1450 b.pointer = mid.pointer;
1451 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&b))
1452 (__extension__ ({
1453 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
1454
1455 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
1456 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = listB;
1457
1458 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1459 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
1460 __internal_VirtualMethod ? __internal_VirtualMethod(listB, __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&b)) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1461 }));
1462 (__extension__ ({
1463 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1464
1465 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1466 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1467
1468 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1469 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll]);
1470 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (void)1;
1471 }));
1472 __ecereMethod___ecereNameSpace__ecere__com__Container__Sort(listA, ascending, lists + 2);
1473 __ecereMethod___ecereNameSpace__ecere__com__Container__Sort(listB, ascending, lists + 2);
1474 a = (__simpleStruct0.container = listA, __simpleStruct0);
1475 b = (__simpleStruct1.container = listB, __simpleStruct1);
1476 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&a);
1477 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&b);
1478 while(a.pointer || b.pointer)
1479 {
1480 int r;
1481
1482 if(a.pointer && b.pointer)
1483 {
1484 uint64 dataA = __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&a), dataB = __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&b);
1485
1486 r = onCompare(Dclass, byRef ? ((char *)&dataA + __ENDIAN_PAD(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (const void *)(uintptr_t)dataA, byRef ? ((char *)&dataB + __ENDIAN_PAD(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[2].__anon1.__anon1.dataTypeClass->typeSize)) : (const void *)(uintptr_t)dataB);
1487 }
1488 else if(a.pointer)
1489 r = -1;
1490 else
1491 r = 1;
1492 if(!ascending)
1493 r *= -1;
1494 if(r < 0)
1495 {
1496 (__extension__ ({
1497 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
1498
1499 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
1500 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1501
1502 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1503 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
1504 __internal_VirtualMethod ? __internal_VirtualMethod(this, __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&a)) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1505 }));
1506 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&a);
1507 }
1508 else
1509 {
1510 (__extension__ ({
1511 struct __ecereNameSpace__ecere__com__IteratorPointer * (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
1512
1513 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
1514 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1515
1516 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1517 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
1518 __internal_VirtualMethod ? __internal_VirtualMethod(this, __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&b)) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
1519 }));
1520 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&b);
1521 }
1522 }
1523 (__extension__ ({
1524 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1525
1526 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1527 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = listA;
1528
1529 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1530 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll]);
1531 __internal_VirtualMethod ? __internal_VirtualMethod(listA) : (void)1;
1532 }));
1533 (__extension__ ({
1534 void (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1535
1536 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1537 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = listB;
1538
1539 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1540 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll]);
1541 __internal_VirtualMethod ? __internal_VirtualMethod(listB) : (void)1;
1542 }));
1543 }
1544 }
1545
1546 void __ecereMethod___ecereNameSpace__ecere__com__Container_Sort(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int ascending)
1547 {
1548 int i, numLists = __ecereNameSpace__ecere__com__log2i((__extension__ ({
1549 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
1550
1551 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1552 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
1553
1554 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Container->_vTbl;
1555 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetCount]);
1556 __internal_VirtualMethod ? __internal_VirtualMethod(this) : (int)1;
1557 }))) * 2;
1558 struct __ecereNameSpace__ecere__com__Instance ** lists = __ecereNameSpace__ecere__com__eSystem_New(sizeof(struct __ecereNameSpace__ecere__com__Instance *) * (numLists));
1559
1560 for(i = 0; i < numLists; i++)
1561 lists[i] = __ecereNameSpace__ecere__com__eInstance_New(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class);
1562 __ecereMethod___ecereNameSpace__ecere__com__Container__Sort(this, ascending, lists);
1563 for(i = 0; i < numLists; i++)
1564 (__ecereNameSpace__ecere__com__eInstance_DecRef(lists[i]), lists[i] = 0);
1565 (__ecereNameSpace__ecere__com__eSystem_Delete(lists), lists = 0);
1566 }
1567
1568 void __ecereRegisterModule_Container(struct __ecereNameSpace__ecere__com__Instance * module)
1569 {
1570 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct2 =
1571 {
1572
1573 .__anon1 = {
1574
1575 .__anon1 = {
1576 .dataTypeString = "T"
1577 }
1578 }
1579 };
1580 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct1 =
1581 {
1582
1583 .__anon1 = {
1584
1585 .__anon1 = {
1586 .dataTypeString = "int"
1587 }
1588 }
1589 };
1590 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct0 =
1591 {
1592
1593 .__anon1 = {
1594
1595 .__anon1 = {
1596 .dataTypeString = "int"
1597 }
1598 }
1599 };
1600 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
1601
1602 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::Iterator", 0, sizeof(struct __ecereNameSpace__ecere__com__Iterator), 0, (void *)0, (void *)0, module, 4, 1);
1603 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application && class)
1604 __ecereClass___ecereNameSpace__ecere__com__Iterator = class;
1605 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", "bool Find(const T value)", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Find, 1);
1606 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", "void Free()", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Free, 1);
1607 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetData", "T GetData()", __ecereMethod___ecereNameSpace__ecere__com__Iterator_GetData, 1);
1608 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Index", "bool Index(const IT index, bool create)", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index, 1);
1609 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Next", "bool Next()", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next, 1);
1610 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Prev", "bool Prev()", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Prev, 1);
1611 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove()", __ecereMethod___ecereNameSpace__ecere__com__Iterator_Remove, 1);
1612 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "SetData", "bool SetData(T value)", __ecereMethod___ecereNameSpace__ecere__com__Iterator_SetData, 1);
1613 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "container", "ecere::com::Container<T, IT>", sizeof(void *), 0xF000F000, 1);
1614 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pointer", "ecere::com::IteratorPointer", sizeof(void *), 0xF000F000, 1);
1615 __ecerePropM___ecereNameSpace__ecere__com__Iterator_data = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "data", "T", __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data, __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data, 1);
1616 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1617 __ecereProp___ecereNameSpace__ecere__com__Iterator_data = __ecerePropM___ecereNameSpace__ecere__com__Iterator_data, __ecerePropM___ecereNameSpace__ecere__com__Iterator_data = (void *)0;
1618 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "T", 0, 0, (((void *)0)));
1619 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "IT", 0, 0, &__simpleStruct0);
1620 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
1621 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Container", 0, 0, 0, (void *)0, (void *)__ecereDestructor___ecereNameSpace__ecere__com__Container, module, 4, 1);
1622 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application && class)
1623 __ecereClass___ecereNameSpace__ecere__com__Container = class;
1624 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnCompare", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnCompare, 1);
1625 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnCopy", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnCopy, 1);
1626 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnFree, 1);
1627 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnGetString, 1);
1628 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnSerialize, 1);
1629 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Container_OnUnserialize, 1);
1630 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetFirst", "ecere::com::IteratorPointer GetFirst()", __ecereMethod___ecereNameSpace__ecere__com__Container_GetFirst, 1);
1631 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetLast", "ecere::com::IteratorPointer GetLast()", __ecereMethod___ecereNameSpace__ecere__com__Container_GetLast, 1);
1632 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetPrev", "ecere::com::IteratorPointer GetPrev(ecere::com::IteratorPointer pointer)", __ecereMethod___ecereNameSpace__ecere__com__Container_GetPrev, 1);
1633 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetNext", "ecere::com::IteratorPointer GetNext(ecere::com::IteratorPointer pointer)", __ecereMethod___ecereNameSpace__ecere__com__Container_GetNext, 1);
1634 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetData", "D GetData(ecere::com::IteratorPointer pointer)", __ecereMethod___ecereNameSpace__ecere__com__Container_GetData, 1);
1635 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SetData", "bool SetData(ecere::com::IteratorPointer pointer, D data)", 0, 1);
1636 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetAtPosition", "ecere::com::IteratorPointer GetAtPosition(const I pos, bool create, bool * justAdded)", __ecereMethod___ecereNameSpace__ecere__com__Container_GetAtPosition, 1);
1637 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Insert", "ecere::com::IteratorPointer Insert(ecere::com::IteratorPointer after, T value)", 0, 1);
1638 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Add", "ecere::com::IteratorPointer Add(T value)", 0, 1);
1639 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Remove", "void Remove(ecere::com::IteratorPointer it)", 0, 1);
1640 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Move", "void Move(ecere::com::IteratorPointer it, ecere::com::IteratorPointer after)", 0, 1);
1641 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "RemoveAll", "void RemoveAll()", __ecereMethod___ecereNameSpace__ecere__com__Container_RemoveAll, 1);
1642 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Copy", "void Copy(ecere::com::Container<T> source)", __ecereMethod___ecereNameSpace__ecere__com__Container_Copy, 1);
1643 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Find", "ecere::com::IteratorPointer Find(const D value)", __ecereMethod___ecereNameSpace__ecere__com__Container_Find, 1);
1644 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FreeIterator", "void FreeIterator(ecere::com::IteratorPointer it)", 0, 1);
1645 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetCount", "int GetCount()", __ecereMethod___ecereNameSpace__ecere__com__Container_GetCount, 1);
1646 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Free", "void Free()", __ecereMethod___ecereNameSpace__ecere__com__Container_Free, 1);
1647 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Delete", "void Delete(ecere::com::IteratorPointer i)", __ecereMethod___ecereNameSpace__ecere__com__Container_Delete, 1);
1648 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Sort", "void Sort(bool ascending)", __ecereMethod___ecereNameSpace__ecere__com__Container_Sort, 1);
1649 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "TakeOut", "void TakeOut(const D d)", __ecereMethod___ecereNameSpace__ecere__com__Container_TakeOut, 1);
1650 __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "copySrc", "ecere::com::Container<T>", __ecereProp___ecereNameSpace__ecere__com__Container_Set_copySrc, 0, 1);
1651 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1652 __ecereProp___ecereNameSpace__ecere__com__Container_copySrc = __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc, __ecerePropM___ecereNameSpace__ecere__com__Container_copySrc = (void *)0;
1653 __ecerePropM___ecereNameSpace__ecere__com__Container_firstIterator = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "firstIterator", "ecere::com::Iterator<T>", 0, __ecereProp___ecereNameSpace__ecere__com__Container_Get_firstIterator, 1);
1654 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1655 __ecereProp___ecereNameSpace__ecere__com__Container_firstIterator = __ecerePropM___ecereNameSpace__ecere__com__Container_firstIterator, __ecerePropM___ecereNameSpace__ecere__com__Container_firstIterator = (void *)0;
1656 __ecerePropM___ecereNameSpace__ecere__com__Container_lastIterator = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "lastIterator", "ecere::com::Iterator<T>", 0, __ecereProp___ecereNameSpace__ecere__com__Container_Get_lastIterator, 1);
1657 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application)
1658 __ecereProp___ecereNameSpace__ecere__com__Container_lastIterator = __ecerePropM___ecereNameSpace__ecere__com__Container_lastIterator, __ecerePropM___ecereNameSpace__ecere__com__Container_lastIterator = (void *)0;
1659 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "T", 0, 0, (((void *)0)));
1660 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "I", 0, 0, &__simpleStruct1);
1661 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "D", 0, 0, &__simpleStruct2);
1662 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
1663 if(class)
1664 class->fixed = (unsigned int)1;
1665 }
1666