MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / destroyTransformEngines

Method destroyTransformEngines

app/src/DataModel/FrameBuilder.cpp:2195–2226  ·  view source on GitHub ↗

* @brief Destroys all per-source transform engines and releases resources. */

Source from the content-addressed store, hash-verified

2193 * @brief Destroys all per-source transform engines and releases resources.
2194 */
2195void DataModel::FrameBuilder::destroyTransformEngines()
2196{
2197 m_engineCacheSourceId = -1;
2198 m_luaEngineForSource = nullptr;
2199 m_jsEngineForSource = nullptr;
2200 m_captureFlagsDirty = true;
2201
2202 m_tableStore.clearLookupCache();
2203
2204 for (auto& [id, engine] : m_transformEngines) {
2205 engine.jsRefs.clear();
2206
2207 if (engine.luaState)
2208 for (const auto& [uid, ref] : engine.luaRefs)
2209 luaL_unref(engine.luaState, LUA_REGISTRYINDEX, ref.ref);
2210
2211 engine.luaRefs.clear();
2212
2213 if (engine.luaState) {
2214 lua_close(engine.luaState);
2215 engine.luaState = nullptr;
2216 }
2217
2218 engine.jsWatchdog.reset();
2219
2220 delete engine.jsEngine;
2221 engine.jsEngine = nullptr;
2222 }
2223
2224 m_transformEngines.clear();
2225 Q_ASSERT(m_transformEngines.empty());
2226}
2227
2228/**
2229 * @brief Applies the pre-compiled transform for a dataset; returns @p rawValue on error or missing

Callers

nothing calls this directly

Calls 6

luaL_unrefFunction · 0.85
lua_closeFunction · 0.85
clearLookupCacheMethod · 0.80
emptyMethod · 0.80
clearMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected