diff --git a/ext/v8/v8_function.cpp b/ext/v8/v8_function.cpp index dde83a5..5e631b4 100644 --- a/ext/v8/v8_function.cpp +++ b/ext/v8/v8_function.cpp @@ -1,4 +1,5 @@ +#include #include "v8_function.h" #include "v8_object.h" #include "v8_handle.h" @@ -21,11 +22,11 @@ namespace { Local thisObj = rr_rb2v8(recv)->ToObject(); Handle args = rr_v8_handle(arguments); int argc = args->Length(); - Handle argv[argc]; + std::vector< Handle > argv (argc); for (int i = 0; i < argc; i++) { argv[i] = args->Get(i); } - return rr_v82rb(function->Call(thisObj, argc, argv)); + return rr_v82rb(function->Call(thisObj, argc, &argv[0])); } VALUE NewInstance(VALUE self, VALUE arguments) { @@ -33,11 +34,11 @@ namespace { Handle function = unwrap(self); Handle args = rr_v8_handle(arguments); int argc = args->Length(); - Handle argv[argc]; + std::vector< Handle > argv (argc); for (int i = 0; i < argc; i++) { argv[i] = args->Get(i); } - return rr_v82rb(function->NewInstance(argc, argv)); + return rr_v82rb(function->NewInstance(argc, &argv[0])); } VALUE GetName(VALUE self) { HandleScope scope;