# HG changeset patch # User Atul Varma # Date 1246244448 25200 # Node ID f3223debd70b0eb5f44285a02929bb1a3eeaaa23 # Parent 0812422ec99e16d88178635b14f09a8d5a7f27ee Refactoring; moved PYM_JSObject creation code into a new public function in object.c. diff -r 0812422ec99e -r f3223debd70b context.c --- a/context.c Sun Jun 28 19:44:13 2009 -0700 +++ b/context.c Sun Jun 28 20:00:48 2009 -0700 @@ -26,25 +26,13 @@ static PyObject * PYM_newObject(PYM_JSContextObject *self, PyObject *args) { - PYM_JSObject *object = PyObject_New(PYM_JSObject, - &PYM_JSObjectType); - if (object == NULL) - return NULL; - - object->runtime = self->runtime; - Py_INCREF(object->runtime); - - object->obj = JS_NewObject(self->cx, &PYM_JS_ObjectClass, NULL, NULL); - if (object->obj == NULL) { + JSObject *obj = JS_NewObject(self->cx, &PYM_JS_ObjectClass, NULL, NULL); + if (obj == NULL) { PyErr_SetString(PYM_error, "JS_NewObject() failed"); - Py_DECREF(object); return NULL; } - JS_AddNamedRootRT(object->runtime->rt, &object->obj, - "Pymonkey-Generated Object"); - - return (PyObject *) object; + return (PyObject *) PYM_newJSObject(self->runtime, obj); } static PyObject * diff -r 0812422ec99e -r f3223debd70b object.c --- a/object.c Sun Jun 28 19:44:13 2009 -0700 +++ b/object.c Sun Jun 28 20:00:48 2009 -0700 @@ -65,3 +65,21 @@ 0, /* tp_alloc */ 0, /* tp_new */ }; + +PYM_JSObject *PYM_newJSObject(PYM_JSRuntimeObject *runtime, + JSObject *obj) { + PYM_JSObject *object = PyObject_New(PYM_JSObject, + &PYM_JSObjectType); + if (object == NULL) + return NULL; + + object->runtime = runtime; + Py_INCREF(object->runtime); + + object->obj = obj; + + JS_AddNamedRootRT(object->runtime->rt, &object->obj, + "Pymonkey-Generated Object"); + + return object; +} diff -r 0812422ec99e -r f3223debd70b object.h --- a/object.h Sun Jun 28 19:44:13 2009 -0700 +++ b/object.h Sun Jun 28 20:00:48 2009 -0700 @@ -16,4 +16,6 @@ extern PyTypeObject PYM_JSObjectType; +extern PYM_JSObject *PYM_newJSObject(PYM_JSRuntimeObject *runtime, + JSObject *obj); #endif