Files
SonicForgeStudio/native_bridge/debug/fix_bisect_queryinterface.py

48 lines
1.6 KiB
Python

p = r"C:/Users/locpham/SonicForgeStudio/native_bridge/src/Vst3Instrument.cpp"
data = open(p, "rb").read()
n = b"\r\n"
old1 = n.join([
b" tresult queryInterface(const char* iid, void** v) override {",
b" if (std::memcmp(iid, Steinberg::Vst::IComponentHandler::iid, 16) == 0 ||",
b" std::memcmp(iid, Steinberg::FUnknown::iid, 16) == 0) {",
b" *v = static_cast<Steinberg::Vst::IComponentHandler*>(this);",
b" addRef();",
b" return kResultOk;",
b" }",
b" *v = nullptr;",
b" return kNoInterface;",
b" }",
])
new1 = n.join([
b" tresult queryInterface(const char*, void** v) override {",
b" *v = nullptr;",
b" return kNoInterface;",
b" }",
])
old2 = n.join([
b" tresult queryInterface(const char* iid, void** v) override {",
b" if (std::memcmp(iid, Steinberg::IPlugFrame::iid, 16) == 0 ||",
b" std::memcmp(iid, Steinberg::FUnknown::iid, 16) == 0) {",
b" *v = static_cast<Steinberg::IPlugFrame*>(this);",
b" addRef();",
b" return kResultOk;",
b" }",
b" *v = nullptr;",
b" return kNoInterface;",
b" }",
])
new2 = n.join([
b" tresult queryInterface(const char*, void** v) override {",
b" *v = nullptr;",
b" return kNoInterface;",
b" }",
])
c1 = data.count(old1)
c2 = data.count(old2)
data = data.replace(old1, new1).replace(old2, new2)
open(p, "wb").write(data)
print(f"edit1={c1} edit2={c2}")