#if !defined ARRLIST_h #define ARRLIST_h #if defined EXTERN # undef EXTERN #endif #if defined ARRLISTMODULE # define EXTERN #else # define EXTERN extern #endif #if !defined TECPLOTKERNEL typedef struct ___135* ___134; #endif typedef enum { ArrayListType_UInt8, ArrayListType_UInt16, ArrayListType_UInt32, ArrayListType_UInt64, ArrayListType_Int64, ArrayListType_Char, ArrayListType_Short, ArrayListType_Int, ArrayListType_Long, ArrayListType_Float, ArrayListType_Double, ArrayListType_LgIndex, ArrayListType_EntIndex, ArrayListType_SmInteger, ArrayListType_Boolean, ArrayListType_ArbParam, ArrayListType_UInt8Ptr, ArrayListType_UInt16Ptr, ArrayListType_UInt32Ptr, ArrayListType_UInt64Ptr, ArrayListType_Int64Ptr, ArrayListType_CharPtr, ArrayListType_ShortPtr, ArrayListType_IntPtr, ArrayListType_LongPtr, ArrayListType_FloatPtr, ArrayListType_DoublePtr, ArrayListType_LgIndexPtr, ArrayListType_EntIndexPtr, ArrayListType_SmIntegerPtr, ArrayListType_BooleanPtr, ArrayListType_ArbParamPtr, ArrayListType_VoidPtr, ArrayListType_FunctionPtr, ArrayListType_Any, END_ArrayListType_e, ArrayListType_Invalid = ___329 } ArrayListType_e; typedef union { uint8_t UInt8; uint16_t UInt16; uint32_t UInt32; uint64_t UInt64; int64_t ___1969; char ___472; short Short; int Int; long Long; float Float; double Double; ___2227 ___2225; ___1172 ___1170; int32_t ___3634; ___372 ___350; ___90 ___88; uint8_t* UInt8Ptr; uint16_t* UInt16Ptr; uint32_t* UInt32Ptr; uint64_t* UInt64Ptr; int64_t* ___1970; char* ___474; short* ___3561; int* ___1986; long* ___2321; float* ___1436; double* ___1110; ___2227* ___2226; ___1172* ___1171; int32_t* ___3635; ___372* ___371; ___90* ___89; void* ___4440; void (*___1541)(void); } ArrayListItem_u; typedef ___372 (*ArrayListItemVisitor_pf)(void* ___2098, ___90 ___494); #if 0 { REQUIRE(VALID_REF(___4239)); REQUIRE(VALID_REF(*___4239) || *___4239 == NULL); ___372 ___1096 = ___4226; * ___4239 = static_cast<*>(___2098); ENSURE(VALID_BOOLEAN(___1096)); return ___1096; } #endif typedef ArrayListItemVisitor_pf ArrayListItemDestructor_pf; typedef ___372 (*ArrayListItemDuplicator_pf)(void* ___3949, void* ___3645, ___90 ___494); #if 0 { REQUIRE(VALID_REF(___3950)); REQUIRE(VALID_REF(___3646)); REQUIRE(VALID_REF(*___3646) || *___3646 == NULL); ___372 ___2040 = ___4226; * ___3950 = static_cast<*>(___3949); * ___3646 = static_cast<*>(___3645); ENSURE(VALID_BOOLEAN(___2040)); return ___2040; } #endif typedef ___2227 (*ArrayListCapacityRequestAdjuster_pf)(___134 ___94, ___2227 ___693, ___2227 ___3354, ___90 ___494); #if 0 { REQUIRE(ArrayListIsValid(___94)); REQUIRE((___3354 == 0 && ___693 == 0) || ___3354 > ___94->___439); ___2227 ___3359; ENSURE(___3359 == 0 || ___3359 >= ___3354); return ___3359; } #endif struct ___135 { char* Array; ArrayListType_e ___4236; int32_t ___2102; ___2227 ___684; ___2227 ___439; ___372 ___2080; ArrayListCapacityRequestAdjuster_pf ___440; ___90 ___441; }; typedef int (STDCALL *ArrayListItemComparator_pf)(ArrayListItem_u ___2087, ArrayListItem_u ___2088, ___90 ___494); EXTERN ___372 ArrayListIsValid(___134 ___94); EXTERN ArrayListType_e ArrayListGetType(___134 ___94); EXTERN ___372 ArrayListEnlargeCapacity(___134 ___94, ___2227 ___3354); EXTERN ___134 ArrayListAlloc(___2227 ___1188, ArrayListType_e ___4236, ArrayListCapacityRequestAdjuster_pf ___440 = 0, ___90 ___441 = 0); EXTERN void ArrayListDealloc(___134* ___94, ArrayListItemDestructor_pf ___2094 = 0, ___90 ___494 = 0); EXTERN void ArrayListDeleteAllItems(___134 ___94, ArrayListItemDestructor_pf ___2094 = 0, ___90 ___494 = 0); EXTERN void ArrayListDeleteItems(___134 ___94, ___2227 ___2097, ___2227 ___684, ArrayListItemDestructor_pf ___2094 = 0, ___90 ___494 = 0); EXTERN void ArrayListDeleteItem(___134 ___94, ___2227 ___2097, ArrayListItemDestructor_pf ___2094 = 0, ___90 ___494 = 0); EXTERN ___134 ArrayListRemoveItems(___134 ___94, ___2227 ___2097, ___2227 ___684); EXTERN ArrayListItem_u ArrayListRemoveItem(___134 ___94, ___2227 ___2097); EXTERN ___372 ArrayListInsertItem(___134 ___94, ___2227 ___2097, ArrayListItem_u ___2086); EXTERN ___372 ArrayListInsert(___134 ___3946, ___2227 ___2097, ___134 ___3642); EXTERN ___372 ArrayListVisitItems(___134 ___94, ___2227 ___2097, ___2227 ___684, ArrayListItemVisitor_pf ___2103, ___90 ___494); EXTERN ___134 ArrayListGetItems(___134 ___94, ___2227 ___2097, ___2227 ___684); EXTERN ArrayListItem_u ArrayListGetItem(___134 ___94, ___2227 ___2097); EXTERN ___372 ArrayListSetItem(___134 ___94, ___2227 ___2097, ArrayListItem_u ___2086, ArrayListItemDestructor_pf ___2094 = 0, ___90 ___494 = 0); EXTERN ___372 ArrayListAppendItem(___134 ___94, ArrayListItem_u ___2086); EXTERN ___372 ArrayListAppend(___134 ___3946, ___134 ___3642); EXTERN ___134 ArrayListCopy(___134 ___94, ArrayListItemDuplicator_pf ___2095 = 0, ___90 ___494 = 0); EXTERN void* ArrayListToArray(___134 ___94, ArrayListItemDuplicator_pf ___2095, ___90 ___494); EXTERN ___134 ArrayListFromArray(void* ___3642, ___2227 ___684, ArrayListType_e ___4236, ArrayListItemDuplicator_pf ___2095 = 0, ___90 ___494 = 0); EXTERN ___372 ArrayListBSearch(___134 ___94, ArrayListItem_u ___2086, ArrayListItemComparator_pf ___535, ___90 ___494, ___2227* ___2096 = 0); #if defined USE_MACROS_FOR_FUNCTIONS # define ___112 ___113 # define ___115 ArrayListGetItemInternalRef_MACRO # define ___101 ArrayListGetCount_MACRO # define ___131(___94, ___2097) ___124(___94, ___2097, uint8_t) # define ___125(___94, ___2097) ___124(___94, ___2097, uint16_t) # define ___127(___94, ___2097) ___124(___94, ___2097, uint32_t) # define ___129(___94, ___2097) ___124(___94, ___2097, uint64_t) # define ___110(___94, ___2097) ___124(___94, ___2097, int64_t) # define ___99(___94, ___2097) ___124(___94, ___2097, char) # define ___120(___94, ___2097) ___124(___94, ___2097, short) # define ___109(___94, ___2097) ___124(___94, ___2097, int) # define ___118(___94, ___2097) ___124(___94, ___2097, long) # define ___106(___94, ___2097) ___124(___94, ___2097, float) # define ___102(___94, ___2097) ___124(___94, ___2097, double) # define ___116(___94, ___2097) ___124(___94, ___2097, ___2227) # define ___104(___94, ___2097) ___124(___94, ___2097, ___1172) # define ___122(___94, ___2097) ___124(___94, ___2097, int32_t) # define ___97(___94, ___2097) ___124(___94, ___2097, ___372) # define ___95(___94, ___2097) ___124(___94, ___2097, ___90) # define ___132(___94, ___2097) ___124(___94, ___2097, uint8_t*) # define ___126(___94, ___2097) ___124(___94, ___2097, uint16_t*) # define ___128(___94, ___2097) ___124(___94, ___2097, uint32_t*) # define ___130(___94, ___2097) ___124(___94, ___2097, uint64_t*) # define ___111(___94, ___2097) ___124(___94, ___2097, int64_t*) # define ___100(___94, ___2097) ___124(___94, ___2097, char*) # define ___121(___94, ___2097) ___124(___94, ___2097, short*) # define ___114(___94, ___2097) ___124(___94, ___2097, int*) # define ___119(___94, ___2097) ___124(___94, ___2097, long*) # define ___107(___94, ___2097) ___124(___94, ___2097, float*) # define ___103(___94, ___2097) ___124(___94, ___2097, double*) # define ___117(___94, ___2097) ___124(___94, ___2097, ___2227*) # define ___105(___94, ___2097) ___124(___94, ___2097, ___1172*) # define ___123(___94, ___2097) ___124(___94, ___2097, int32_t*) # define ___98(___94, ___2097) ___124(___94, ___2097, ___372*) # define ___96(___94, ___2097) ___124(___94, ___2097, ___90*) # define ___133(___94, ___2097) ___124(___94, ___2097, void*) # define ___108(___94, ___2097) ___124(___94, ___2097, (**)(void)) #else # define ___112 ArrayListGetInternalRef_FUNC # define ___115 ArrayListGetItemInternalRef_FUNC # define ___101 ArrayListGetCount_FUNC # define ___131(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___125(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___127(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___129(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___110(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___99(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___120(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___109(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___118(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___106(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___102(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___116(___94, ___2097) (*(static_cast<___2227*>(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___104(___94, ___2097) (*(static_cast<___1172*>(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___122(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___97(___94, ___2097) (*(static_cast<___372*>(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___95(___94, ___2097) (*(static_cast<___90*>(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___132(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ArrayListGetUInt16tPtr(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ArrayListGetUInt32tr(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___130(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___111(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___100(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___121(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___114(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___119(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___107(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___103(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___117(___94, ___2097) (*(static_cast<___2227**>(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___105(___94, ___2097) (*(static_cast<___1172**>(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___123(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___98(___94, ___2097) (*(static_cast<___372**>(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___96(___94, ___2097) (*(static_cast<___90**>(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___133(___94, ___2097) (*(static_cast(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) # define ___108(___94, ___2097) (*(static_cast<**(void)*>(const_cast(ArrayListGetItemInternalRef_FUNC(___94, ___2097))))) #endif #if !defined USE_MACROS_FOR_FUNCTIONS EXTERN void const* ArrayListGetInternalRef_FUNC(___134 ___94); EXTERN void const* ArrayListGetItemInternalRef_FUNC(___134 ___94, ___2227 ___2097); EXTERN ___2227 ArrayListGetCount_FUNC(___134 ___94); #endif #define ___113(___94) static_cast((___94)->Array) #define ArrayListGetItemInternalRef_MACRO(___94, ___2097) static_cast(&((___94)->Array[(___2097)*(___94)->___2102])) #define ArrayListGetCount_MACRO(___94) ((___94)->___684) #define ArrayListGetTypedArrayRef(___94, ___2688) reinterpret_cast<___2688*>((___94)->Array) #define ___124(___94, ___2097, ___2688) (ArrayListGetTypedArrayRef(___94,___2688)[___2097]) #if defined NO_ASSERTS # define ArrayListOffsetWithinCapacity(___94, ___2097) ((___2097) < (___94)->___439) #else # define ArrayListOffsetWithinCapacity(___94, ___2097) ((assert((___2097) >= 0),___4226) && ((___2097) < (___94)->___439)) #endif #define ___161(___94, ___2097, ___2086, ___2688) \ ((ArrayListOffsetWithinCapacity((___94), (___2097)) || \ ArrayListEnlargeCapacity((___94), (___2097)+1)) \ ? ((void)((ArrayListGetTypedArrayRef((___94),___2688)[(___2097)]) = (___2086)), \ (((___2097)+1 > (___94)->___684) \ ? (((___94)->___684 = (___2097)+1), ___4226) \ : (___4226))) \ : (___1305)) #define ArrayListAppendTypedItem(___94, ___2086, ___2688) \ ((ArrayListOffsetWithinCapacity((___94), (___94)->___684) || \ ArrayListEnlargeCapacity((___94), (___94)->___684+1)) \ ? ((void)((ArrayListGetTypedArrayRef((___94),___2688)[(___94)->___684]) = (___2086)), \ (((___94)->___684 = (___94)->___684+1), ___4226)) \ : (___1305)) #define ___168(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),uint8_t) #define ___162(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),uint16_t) #define ___164(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),uint32_t) #define ___166(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),uint64_t) #define ___150(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),int64_t) #define ___140(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),char) #define ___157(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),short) #define ___149(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),int) #define ___155(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),long) #define ___146(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),float) #define ___142(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),double) #define ___153(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),___2227) #define ___144(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),___1172) #define ___159(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),int32_t) #define ___138(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),___372) #define ___136(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),___90) #define ___169(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),uint8_t*) #define ___163(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),uint16_t*) #define ___165(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),uint32_t*) #define ___167(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),uint64_t*) #define ___151(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),int64_t*) #define ___141(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),char*) #define ___158(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),short*) #define ___152(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),int*) #define ___156(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),long*) #define ___147(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),float*) #define ___143(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),double*) #define ___154(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),___2227*) #define ___145(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),___1172*) #define ___160(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),int32_t*) #define ___139(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),___372*) #define ___137(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),___90*) #define ___170(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),void*) #define ___148(___94, ___2097, ___2086) ___161((___94),(___2097),(___2086),(**)(void)) #define ArrayListAppendUInt8(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),uint8_t) #define ArrayListAppendUInt16(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),uint16_t) #define ArrayListAppendUInt32(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),uint32_t) #define ArrayListAppendUInt64(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),uint64_t) #define ArrayListAppendInt64(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),int64_t) #define ArrayListAppendChar(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),char) #define ArrayListAppendShort(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),short) #define ArrayListAppendInt(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),int) #define ArrayListAppendLong(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),long) #define ArrayListAppendFloat(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),float) #define ArrayListAppendDouble(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),double) #define ArrayListAppendLgIndex(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),___2227) #define ArrayListAppendEntIndex(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),___1172) #define ArrayListAppendSmInteger(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),int32_t) #define ArrayListAppendBoolean(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),___372) #define ArrayListAppendArbParam(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),___90) #define ArrayListAppendUInt8Ptr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),uint8_t*) #define ArrayListAppendUInt16tPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),uint16_t*) #define ArrayListAppendUInt32tr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),uint32_t*) #define ArrayListAppendUInt64Ptr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),uint64_t*) #define ArrayListAppendInt64Ptr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),int64_t*) #define ArrayListAppendCharPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),char*) #define ArrayListAppendShortPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),short*) #define ArrayListAppendIntPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),int*) #define ArrayListAppendLongPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),long*) #define ArrayListAppendFloatPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),float*) #define ArrayListAppendDoublePtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),double*) #define ArrayListAppendLgIndexPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),___2227*) #define ArrayListAppendEntIndexPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),___1172*) #define ArrayListAppendSmIntegerPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),int32_t*) #define ArrayListAppendBooleanPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),___372*) #define ArrayListAppendArbParamPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),___90*) #define ArrayListAppendVoidPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),void*) #define ArrayListAppendFunctionPtr(___94, ___2086) ArrayListAppendTypedItem((___94),(___2086),(**)(void)) #endif