From a20e02ee23631e3a9b9af526087950bd12975d38 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 15 Apr 2014 15:30:30 +0800 Subject: [PATCH] Fix compilation error of function_template. --- native_mate/function_template.h | 48 ++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/native_mate/function_template.h b/native_mate/function_template.h index 2dd5ba5cc4f9..192aa8ed15e2 100644 --- a/native_mate/function_template.h +++ b/native_mate/function_template.h @@ -8,6 +8,7 @@ #include "base/callback.h" #include "base/logging.h" #include "native_mate/arguments.h" +#include "native_mate/compat.h" #include "native_mate/converter.h" #include "v8/include/v8.h" @@ -229,7 +230,8 @@ struct Invoker { Arguments& args, const base::Callback& callback, const P1& a1) { - MATE_METHOD_RETURN(callback.Run(a1)); + callback.Run(a1); + MATE_METHOD_RETURN_UNDEFINED(); } }; @@ -318,7 +320,7 @@ struct Dispatcher { HolderT* holder = static_cast(holder_base); typename CallbackParamTraits::LocalType a1; - if (!GetNextArgument(args, holder->flags, true, &a1)) { + if (!GetNextArgument(&args, holder->flags, true, &a1)) { args.ThrowError(); MATE_METHOD_RETURN_UNDEFINED(); } @@ -341,8 +343,8 @@ struct Dispatcher { typename CallbackParamTraits::LocalType a1; typename CallbackParamTraits::LocalType a2; - if (!GetNextArgument(args, holder->flags, true, &a1) || - !GetNextArgument(args, holder->flags, false, &a2)) { + if (!GetNextArgument(&args, holder->flags, true, &a1) || + !GetNextArgument(&args, holder->flags, false, &a2)) { args.ThrowError(); MATE_METHOD_RETURN_UNDEFINED(); } @@ -366,9 +368,9 @@ struct Dispatcher { typename CallbackParamTraits::LocalType a1; typename CallbackParamTraits::LocalType a2; typename CallbackParamTraits::LocalType a3; - if (!GetNextArgument(args, holder->flags, true, &a1) || - !GetNextArgument(args, holder->flags, false, &a2) || - !GetNextArgument(args, holder->flags, false, &a3)) { + if (!GetNextArgument(&args, holder->flags, true, &a1) || + !GetNextArgument(&args, holder->flags, false, &a2) || + !GetNextArgument(&args, holder->flags, false, &a3)) { args.ThrowError(); MATE_METHOD_RETURN_UNDEFINED(); } @@ -393,10 +395,10 @@ struct Dispatcher { typename CallbackParamTraits::LocalType a2; typename CallbackParamTraits::LocalType a3; typename CallbackParamTraits::LocalType a4; - if (!GetNextArgument(args, holder->flags, true, &a1) || - !GetNextArgument(args, holder->flags, false, &a2) || - !GetNextArgument(args, holder->flags, false, &a3) || - !GetNextArgument(args, holder->flags, false, &a4)) { + if (!GetNextArgument(&args, holder->flags, true, &a1) || + !GetNextArgument(&args, holder->flags, false, &a2) || + !GetNextArgument(&args, holder->flags, false, &a3) || + !GetNextArgument(&args, holder->flags, false, &a4)) { args.ThrowError(); MATE_METHOD_RETURN_UNDEFINED(); } @@ -424,11 +426,11 @@ struct Dispatcher { typename CallbackParamTraits::LocalType a3; typename CallbackParamTraits::LocalType a4; typename CallbackParamTraits::LocalType a5; - if (!GetNextArgument(args, holder->flags, true, &a1) || - !GetNextArgument(args, holder->flags, false, &a2) || - !GetNextArgument(args, holder->flags, false, &a3) || - !GetNextArgument(args, holder->flags, false, &a4) || - !GetNextArgument(args, holder->flags, false, &a5)) { + if (!GetNextArgument(&args, holder->flags, true, &a1) || + !GetNextArgument(&args, holder->flags, false, &a2) || + !GetNextArgument(&args, holder->flags, false, &a3) || + !GetNextArgument(&args, holder->flags, false, &a4) || + !GetNextArgument(&args, holder->flags, false, &a5)) { args.ThrowError(); MATE_METHOD_RETURN_UNDEFINED(); } @@ -457,12 +459,12 @@ struct Dispatcher { typename CallbackParamTraits::LocalType a4; typename CallbackParamTraits::LocalType a5; typename CallbackParamTraits::LocalType a6; - if (!GetNextArgument(args, holder->flags, true, &a1) || - !GetNextArgument(args, holder->flags, false, &a2) || - !GetNextArgument(args, holder->flags, false, &a3) || - !GetNextArgument(args, holder->flags, false, &a4) || - !GetNextArgument(args, holder->flags, false, &a5) || - !GetNextArgument(args, holder->flags, false, &a6)) { + if (!GetNextArgument(&args, holder->flags, true, &a1) || + !GetNextArgument(&args, holder->flags, false, &a2) || + !GetNextArgument(&args, holder->flags, false, &a3) || + !GetNextArgument(&args, holder->flags, false, &a4) || + !GetNextArgument(&args, holder->flags, false, &a5) || + !GetNextArgument(&args, holder->flags, false, &a6)) { args.ThrowError(); MATE_METHOD_RETURN_UNDEFINED(); } @@ -487,7 +489,9 @@ v8::Local CreateFunctionTemplate( HolderT* holder = new HolderT(isolate, callback, callback_flags); return v8::FunctionTemplate::New( +#if NODE_VERSION_AT_LEAST(0, 11, 11) isolate, +#endif &internal::Dispatcher::DispatchToCallback, ConvertToV8 >(isolate, holder->GetHandle(isolate)));