diff --git a/ext/v8/accessor.cc b/ext/v8/accessor.cc index da47409..4cbb2f4 100644 --- a/ext/v8/accessor.cc +++ b/ext/v8/accessor.cc @@ -13,8 +13,8 @@ namespace rr { } Accessor::Accessor(const v8::AccessorInfo& info) { - this->thisObject = Object::wrap(info.This()); - this->holder = Object::wrap(info.Holder()); + this->thisObject = Object::create(info.This()); + this->holder = Object::create(info.Holder()); this->value = Data_Wrap_Struct(Class, &mark, &sweep, this); this->info = new Info(info.Data()); } diff --git a/ext/v8/context.cc b/ext/v8/context.cc index 790e428..3c791b6 100644 --- a/ext/v8/context.cc +++ b/ext/v8/context.cc @@ -2,8 +2,6 @@ namespace rr { -VALUE Context::Class; - void Context::Init() { ClassBuilder("Context"). defineSingletonMethod("New", &New). @@ -42,15 +40,15 @@ VALUE Context::ReattachGlobal(VALUE self, VALUE global) { } VALUE Context::GetEntered(VALUE self) { - return Context::create(v8::Context::GetEntered(), Class); + return Context::create(v8::Context::GetEntered()); } VALUE Context::GetCurrent(VALUE self) { - return Context::create(v8::Context::GetCurrent(), Class); + return Context::create(v8::Context::GetCurrent()); } VALUE Context::GetCalling(VALUE self) { - return Context::create(v8::Context::GetCalling(), Class); + return Context::create(v8::Context::GetCalling()); } VALUE Context::SetSecurityToken(VALUE self, VALUE token) { @@ -95,7 +93,7 @@ VALUE Context::IsCodeGenerationFromStringsAllowed(VALUE self) { VALUE Context::New(VALUE ContextClass) { v8::Persistent context = v8::Context::New(); - Ref ref = Context::create(context, ContextClass); + Ref ref = Context::create(context); context.Dispose(); return ref; } diff --git a/ext/v8/convert.cc b/ext/v8/convert.cc index 8c8613d..1996550 100644 --- a/ext/v8/convert.cc +++ b/ext/v8/convert.cc @@ -28,7 +28,7 @@ VALUE Convert(v8::Handle value) { return rb_float_new(value->NumberValue()); } if (value->IsString()) { - return String::convert(value->ToString()); + return String::create(value->ToString()); } if (value->IsFunction()) { // return Function(value); @@ -40,7 +40,7 @@ VALUE Convert(v8::Handle value) { // return rr_reflect_v8_date(value); } if (value->IsObject()) { - return Object::convert(value->ToObject()); + return Object::create(value->ToObject()); } return Qnil; } diff --git a/ext/v8/external.cc b/ext/v8/external.cc index 5d4e276..c54b27d 100644 --- a/ext/v8/external.cc +++ b/ext/v8/external.cc @@ -2,8 +2,6 @@ namespace rr { -VALUE External::Class; - void External::Init() { ClassBuilder("External", "Value"). defineSingletonMethod("New", &New). @@ -11,7 +9,7 @@ void External::Init() { store(&Class); } VALUE External::New(VALUE self, VALUE data) { - return External::create(wrap(data), self); + return External::create(wrap(data)); } v8::Handle External::wrap(VALUE data) { diff --git a/ext/v8/object.cc b/ext/v8/object.cc index e1b5b0f..9fa4f3c 100644 --- a/ext/v8/object.cc +++ b/ext/v8/object.cc @@ -2,8 +2,6 @@ namespace rr { -VALUE Object::Class; - void Object::Init() { ClassBuilder("Object", "Value"). defineSingletonMethod("New", &New). @@ -28,15 +26,9 @@ void Object::Init() { defineEnumConst("PROHIBITS_OVERWRITING", v8::PROHIBITS_OVERWRITING); } -VALUE Object::convert(v8::Handle object) { - return Object::create(object, Class); -} -VALUE Object::wrap(v8::Handle object) { - return convert(object); -} VALUE Object::New(VALUE self) { - return Object::create(v8::Object::New(), self); + return Object::create(v8::Object::New()); } //TODO: Allow setting of property attributes diff --git a/ext/v8/rr.h b/ext/v8/rr.h index b140e0e..fb69c73 100644 --- a/ext/v8/rr.h +++ b/ext/v8/rr.h @@ -63,8 +63,8 @@ public: virtual operator v8::Handle() { return holder->handle; } - static Ref create(v8::Handle handle, VALUE klass) { - return Ref(new Holder(handle, klass)); + static Ref create(v8::Handle handle) { + return Ref(new Holder(handle, Class)); } inline v8::Handle operator->() const { return holder->handle; } v8::Handle GetHandle() {return holder->handle;} @@ -92,7 +92,9 @@ public: this->holder = holder; }; Holder* holder; + static VALUE Class; }; +template VALUE Ref::Class; class Handles { public: @@ -136,7 +138,6 @@ public: static VALUE AllowCodeGenerationFromStrings(VALUE self, VALUE allow); static VALUE IsCodeGenerationFromStringsAllowed(VALUE self); - static VALUE Class; inline Context(VALUE value) : Ref(value) {} }; @@ -149,7 +150,6 @@ public: static v8::Handle wrap(VALUE data); static VALUE unwrap(v8::Handle external); - static VALUE Class; private: static void release(v8::Persistent object, void* parameter); struct Data { @@ -184,10 +184,7 @@ public: static VALUE Utf8Value(VALUE self); static VALUE Concat(VALUE self, VALUE left, VALUE right); - static VALUE convert(v8::Handle value); inline String(VALUE value) : Ref(value) {} -private: - static VALUE Class; }; class PropertyAttribute: public Enum { @@ -252,11 +249,6 @@ public: static VALUE ForceDelete(VALUE self, VALUE key); static VALUE SetAccessor(int argc, VALUE* argv, VALUE self); - static VALUE Class; - static VALUE convert(v8::Handle value); - static VALUE wrap(v8::Handle value); - static v8::Handle getter(v8::Local property, const v8::AccessorInfo& info); - static void setter(v8::Local property, v8::Local value, const v8::AccessorInfo& info); inline Object(VALUE value) : Ref(value) {} }; diff --git a/ext/v8/script.cc b/ext/v8/script.cc index 2c29c53..9d1f59d 100644 --- a/ext/v8/script.cc +++ b/ext/v8/script.cc @@ -9,7 +9,7 @@ void Script::Init() { } VALUE Script::New(VALUE klass, VALUE source, VALUE filename) { - return Script::create(v8::Script::New(String(source), Value(filename)), klass); + return Script::create(v8::Script::New(String(source), Value(filename))); } VALUE Script::Run(VALUE self) { diff --git a/ext/v8/string.cc b/ext/v8/string.cc index 5bea8ad..2213a62 100644 --- a/ext/v8/string.cc +++ b/ext/v8/string.cc @@ -2,8 +2,6 @@ namespace rr { -VALUE String::Class; - void String::Init() { ClassBuilder("String", "Value"). defineSingletonMethod("New", &New). @@ -13,7 +11,7 @@ void String::Init() { } VALUE String::New(VALUE StringClass, VALUE string) { - return String::convert(v8::String::New(RSTRING_PTR(string), (int)RSTRING_LEN(string))); + return String::create(v8::String::New(RSTRING_PTR(string), (int)RSTRING_LEN(string))); } VALUE String::Utf8Value(VALUE self) { @@ -25,8 +23,4 @@ VALUE String::Concat(VALUE self, VALUE left, VALUE right) { return Convert(v8::String::Concat(String(left), String(right))); } -VALUE String::convert(v8::Handle string) { - return String::create(string, Class); -} - } //namespace rr \ No newline at end of file