| 12 | } |
| 13 | |
| 14 | void table_reserve_impl ( Context & context, Table & arr, int32_t baseType, uint64_t newCapacity, uint32_t valueTypeSize, LineInfo * at ) { |
| 15 | if ( arr.isLocked() ) context.throw_error_at(at, "can't reserve locked table"); |
| 16 | if ( !newCapacity ) return; |
| 17 | switch ( Type(baseType) ) { |
| 18 | case Type::tBool: table_reserve_internal<bool>(context, arr, newCapacity, valueTypeSize, at); break; |
| 19 | case Type::tInt8: table_reserve_internal<int8_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 20 | case Type::tUInt8: table_reserve_internal<uint8_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 21 | case Type::tInt16: table_reserve_internal<int16_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 22 | case Type::tUInt16: table_reserve_internal<uint16_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 23 | case Type::tInt64: table_reserve_internal<int64_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 24 | case Type::tUInt64: table_reserve_internal<uint64_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 25 | case Type::tEnumeration: table_reserve_internal<int32_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 26 | case Type::tEnumeration8: table_reserve_internal<int8_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 27 | case Type::tEnumeration16: table_reserve_internal<int16_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 28 | case Type::tEnumeration64: table_reserve_internal<int64_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 29 | case Type::tBitfield: table_reserve_internal<uint32_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 30 | case Type::tBitfield8: table_reserve_internal<uint8_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 31 | case Type::tBitfield16: table_reserve_internal<uint16_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 32 | case Type::tBitfield64: table_reserve_internal<uint64_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 33 | case Type::tInt: table_reserve_internal<int32_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 34 | case Type::tInt2: table_reserve_internal<int2>(context, arr, newCapacity, valueTypeSize, at); break; |
| 35 | case Type::tInt3: table_reserve_internal<int3>(context, arr, newCapacity, valueTypeSize, at); break; |
| 36 | case Type::tInt4: table_reserve_internal<int4>(context, arr, newCapacity, valueTypeSize, at); break; |
| 37 | case Type::tUInt: table_reserve_internal<uint32_t>(context, arr, newCapacity, valueTypeSize, at); break; |
| 38 | case Type::tUInt2: table_reserve_internal<uint2>(context, arr, newCapacity, valueTypeSize, at); break; |
| 39 | case Type::tUInt3: table_reserve_internal<uint3>(context, arr, newCapacity, valueTypeSize, at); break; |
| 40 | case Type::tUInt4: table_reserve_internal<uint4>(context, arr, newCapacity, valueTypeSize, at); break; |
| 41 | case Type::tFloat: table_reserve_internal<float>(context, arr, newCapacity, valueTypeSize, at); break; |
| 42 | case Type::tFloat2: table_reserve_internal<float2>(context, arr, newCapacity, valueTypeSize, at); break; |
| 43 | case Type::tFloat3: table_reserve_internal<float3>(context, arr, newCapacity, valueTypeSize, at); break; |
| 44 | case Type::tFloat4: table_reserve_internal<float4>(context, arr, newCapacity, valueTypeSize, at); break; |
| 45 | case Type::tRange: table_reserve_internal<range>(context, arr, newCapacity, valueTypeSize, at); break; |
| 46 | case Type::tURange: table_reserve_internal<urange>(context, arr, newCapacity, valueTypeSize, at); break; |
| 47 | case Type::tRange64: table_reserve_internal<range64>(context, arr, newCapacity, valueTypeSize, at); break; |
| 48 | case Type::tURange64: table_reserve_internal<urange64>(context, arr, newCapacity, valueTypeSize, at); break; |
| 49 | case Type::tString: table_reserve_internal<char *>(context, arr, newCapacity, valueTypeSize, at); break; |
| 50 | case Type::tPointer: table_reserve_internal<void *>(context, arr, newCapacity, valueTypeSize, at); break; |
| 51 | case Type::tDouble: table_reserve_internal<double>(context, arr, newCapacity, valueTypeSize, at); break; |
| 52 | default: |
| 53 | context.throw_error_at(at, "usupported table reserve type"); |
| 54 | return; |
| 55 | } |
| 56 | } |
| 57 | |
| 58 | void table_clear ( Context & context, Table & arr, LineInfo * at ) { |
| 59 | if ( arr.isLocked() ) context.throw_error_at(at, "can't clear locked table"); |
no test coverage detected