From 6ca5bad1e0419080547f733aa5cb363e2592b07f Mon Sep 17 00:00:00 2001 From: Brian Heim Date: Wed, 18 Dec 2019 19:03:08 -0600 Subject: [PATCH] SC: precalc class symbol --- src/SuperColliderEngine.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/SuperColliderEngine.cpp b/src/SuperColliderEngine.cpp index 76cb700..841ab99 100644 --- a/src/SuperColliderEngine.cpp +++ b/src/SuperColliderEngine.cpp @@ -71,6 +71,7 @@ private: bool copyFloatArray(const PyrSlot& inSlot, const char* context, float* outArray, int size) noexcept; SuperColliderEngine* _engine; + PyrSymbol* _vcvPrototypeProcessBlockSym; bool _ok = true; }; @@ -142,6 +143,8 @@ SC_VcvPrototypeClient::SC_VcvPrototypeClient(SuperColliderEngine* engine) compileLibrary(/* isStandalone */ true); if (!isLibraryCompiled()) fail("Error while compiling class library"); + + _vcvPrototypeProcessBlockSym = getsym("VcvPrototypeProcessBlock"); } SC_VcvPrototypeClient::~SC_VcvPrototypeClient() { @@ -229,7 +232,7 @@ bool SC_VcvPrototypeClient::isVcvPrototypeProcessBlock(const PyrSlot* slot) cons auto* klass = slotRawObject(slot)->classptr; auto* klassNameSymbol = slotRawSymbol(&klass->name); - return klassNameSymbol == getsym("VcvPrototypeProcessBlock"); + return klassNameSymbol == _vcvPrototypeProcessBlockSym; } template