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;

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 <typename Array>


Loading…
Cancel
Save