| 226 | // delete |
| 227 | |
| 228 | vec4f SimNode_DeleteTable::eval ( Context & context ) { |
| 229 | DAS_PROFILE_NODE |
| 230 | auto pTable = (Table *) subexpr->evalPtr(context); |
| 231 | pTable = pTable + total - 1; |
| 232 | for ( uint32_t i=0, is=total; i!=is; ++i, pTable-- ) { |
| 233 | if ( pTable->data ) { |
| 234 | if ( !pTable->isLocked() ) { |
| 235 | uint64_t oldSize = pTable->capacity * uint64_t(vts_add_kts) + pTable->capacity*tableHashSlotBytes(*pTable); |
| 236 | context.free(pTable->data, oldSize, &debugInfo); |
| 237 | } else { |
| 238 | context.throw_error_at(debugInfo, "deleting locked table%s", errorMessage); |
| 239 | return v_zero(); |
| 240 | } |
| 241 | } |
| 242 | memset ( pTable, 0, sizeof(Table) ); |
| 243 | } |
| 244 | return v_zero(); |
| 245 | } |
| 246 | } |
| 247 |
nothing calls this directly
no test coverage detected