From a9b1c0cd4e4a5f7ba5cefcb71fa380d7eb6c39a2 Mon Sep 17 00:00:00 2001 From: Julian Storer Date: Thu, 1 Jul 2010 13:39:42 +0100 Subject: [PATCH] NPAPI fix. --- .../wrapper/juce_NPAPI_GlueCode.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp b/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp index 92db232d67..12021ddd18 100644 --- a/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp +++ b/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp @@ -686,16 +686,20 @@ private: if (o == 0 || ! o->hasMethod (methodName)) return false; - HeapBlock params; - params.calloc (argCount); + struct ParamHolder + { + ParamHolder (uint32_t num) { params = new var [num]; } + ~ParamHolder() { delete[] params; } + + var* params; + }; + + ParamHolder params (argCount); for (uint32_t i = 0; i < argCount; ++i) - params[i] = createValueFromNPVariant (npp, args[i]); + params.params[i] = createValueFromNPVariant (npp, args[i]); - const var result (o->invokeMethod (methodName, params, argCount)); - - for (int i = argCount; --i >= 0;) - params[i] = var(); + const var result (o->invokeMethod (methodName, params.params, argCount)); if (out != 0) createNPVariantFromValue (npp, *out, result);