MCPcopy Create free account
hub / github.com/GaijinEntertainment/daScript / eval

Method eval

src/simulate/runtime_table.cpp:228–245  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 6

tableHashSlotBytesFunction · 0.85
isLockedMethod · 0.80
throw_error_atMethod · 0.80
v_zeroFunction · 0.50
evalPtrMethod · 0.45
freeMethod · 0.45

Tested by

no test coverage detected