Browse Source

SC: precalc class symbol

tags/v1.3.0
Brian Heim 5 years ago
parent
commit
6ca5bad1e0
1 changed files with 4 additions and 1 deletions
  1. +4
    -1
      src/SuperColliderEngine.cpp

+ 4
- 1
src/SuperColliderEngine.cpp View File

@@ -71,6 +71,7 @@ private:
bool copyFloatArray(const PyrSlot& inSlot, const char* context, float* outArray, int size) noexcept; bool copyFloatArray(const PyrSlot& inSlot, const char* context, float* outArray, int size) noexcept;


SuperColliderEngine* _engine; SuperColliderEngine* _engine;
PyrSymbol* _vcvPrototypeProcessBlockSym;
bool _ok = true; bool _ok = true;
}; };


@@ -142,6 +143,8 @@ SC_VcvPrototypeClient::SC_VcvPrototypeClient(SuperColliderEngine* engine)
compileLibrary(/* isStandalone */ true); compileLibrary(/* isStandalone */ true);
if (!isLibraryCompiled()) if (!isLibraryCompiled())
fail("Error while compiling class library"); fail("Error while compiling class library");

_vcvPrototypeProcessBlockSym = getsym("VcvPrototypeProcessBlock");
} }


SC_VcvPrototypeClient::~SC_VcvPrototypeClient() { SC_VcvPrototypeClient::~SC_VcvPrototypeClient() {
@@ -229,7 +232,7 @@ bool SC_VcvPrototypeClient::isVcvPrototypeProcessBlock(const PyrSlot* slot) cons


auto* klass = slotRawObject(slot)->classptr; auto* klass = slotRawObject(slot)->classptr;
auto* klassNameSymbol = slotRawSymbol(&klass->name); auto* klassNameSymbol = slotRawSymbol(&klass->name);
return klassNameSymbol == getsym("VcvPrototypeProcessBlock");
return klassNameSymbol == _vcvPrototypeProcessBlockSym;
} }


template <typename Array> template <typename Array>


Loading…
Cancel
Save