| Index: gin/arguments.h
|
| diff --git a/gin/arguments.h b/gin/arguments.h
|
| index 8a372eadfdb3113b2da925c996cbaa35f8d53989..38193f9e724c1b1eca5302e9ab9f4307389caa09 100644
|
| --- a/gin/arguments.h
|
| +++ b/gin/arguments.h
|
| @@ -12,41 +12,42 @@ namespace gin {
|
|
|
| class Arguments {
|
| public:
|
| + Arguments();
|
| explicit Arguments(const v8::FunctionCallbackInfo<v8::Value>& info);
|
| ~Arguments();
|
|
|
| template<typename T>
|
| // TODO(aa): Rename GetHolder().
|
| bool Holder(T* out) {
|
| - return ConvertFromV8(info_.Holder(), out);
|
| + return ConvertFromV8(isolate_, info_->Holder(), out);
|
| }
|
|
|
| template<typename T>
|
| bool GetData(T* out) {
|
| - return ConvertFromV8(info_.Data(), out);
|
| + return ConvertFromV8(isolate_, info_->Data(), out);
|
| }
|
|
|
| template<typename T>
|
| bool GetNext(T* out) {
|
| - if (next_ >= info_.Length()) {
|
| + if (next_ >= info_->Length()) {
|
| insufficient_arguments_ = true;
|
| return false;
|
| }
|
| - v8::Handle<v8::Value> val = info_[next_++];
|
| - return ConvertFromV8(val, out);
|
| + v8::Handle<v8::Value> val = (*info_)[next_++];
|
| + return ConvertFromV8(isolate_, val, out);
|
| }
|
|
|
| template<typename T>
|
| bool GetRemaining(std::vector<T>* out) {
|
| - if (next_ >= info_.Length()) {
|
| + if (next_ >= info_->Length()) {
|
| insufficient_arguments_ = true;
|
| return false;
|
| }
|
| - int remaining = info_.Length() - next_;
|
| + int remaining = info_->Length() - next_;
|
| out->resize(remaining);
|
| for (int i = 0; i < remaining; ++i) {
|
| - v8::Handle<v8::Value> val = info_[next_++];
|
| - if (!ConvertFromV8(val, &out->at(i)))
|
| + v8::Handle<v8::Value> val = (*info_)[next_++];
|
| + if (!ConvertFromV8(isolate_, val, &out->at(i)))
|
| return false;
|
| }
|
| return true;
|
| @@ -54,7 +55,7 @@ class Arguments {
|
|
|
| template<typename T>
|
| void Return(T val) {
|
| - info_.GetReturnValue().Set(ConvertToV8(isolate_, val));
|
| + info_->GetReturnValue().Set(ConvertToV8(isolate_, val));
|
| }
|
|
|
| v8::Handle<v8::Value> PeekNext();
|
| @@ -66,13 +67,14 @@ class Arguments {
|
|
|
| private:
|
| v8::Isolate* isolate_;
|
| - const v8::FunctionCallbackInfo<v8::Value>& info_;
|
| + const v8::FunctionCallbackInfo<v8::Value>* info_;
|
| int next_;
|
| bool insufficient_arguments_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(Arguments);
|
| };
|
|
|
| +template<>
|
| +bool Arguments::GetNext<Arguments>(Arguments* out);
|
| +
|
| } // namespace gin
|
|
|
| #endif // GIN_ARGUMENTS_H_
|
|
|