RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  j...@rpm5.org
  Module: rpm                              Date:   11-Jul-2017 12:42:15
  Branch: rpm-5_4                          Handle: 2017071110421400

  Modified files:           (Branch: rpm-5_4)
    rpm/js                  rpmaug-js.c rpmbf-js.c rpmcudf-js.c rpmdb-js.c
                            rpmdbc-js.c rpmdbe-js.c rpmdc-js.c rpmfts-js.c
                            rpmhdr-js.c rpmio-js.c rpmmc-js.c rpmmi-js.c
                            rpmmpf-js.c rpmmpw-js.c rpmps-js.c rpmseq-js.c
                            rpmsys-js.c rpmte-js.c rpmts-js.c rpmtxn-js.c
                            syck-js.c uuid-js.c

  Log:
    - rpmjs: retrieve a rooted "this" object".

  Summary:
    Revision    Changes     Path
    1.11.4.6    +10 -10     rpm/js/rpmaug-js.c
    1.10.4.5    +6  -6      rpm/js/rpmbf-js.c
    1.6.4.5     +2  -2      rpm/js/rpmcudf-js.c
    1.31.4.5    +21 -21     rpm/js/rpmdb-js.c
    1.14.4.5    +8  -8      rpm/js/rpmdbc-js.c
    1.21.4.6    +52 -52     rpm/js/rpmdbe-js.c
    1.9.4.5     +3  -3      rpm/js/rpmdc-js.c
    1.10.4.5    +5  -5      rpm/js/rpmfts-js.c
    1.24.4.5    +5  -5      rpm/js/rpmhdr-js.c
    1.9.4.5     +17 -17     rpm/js/rpmio-js.c
    1.12.4.5    +4  -4      rpm/js/rpmmc-js.c
    1.28.4.5    +4  -4      rpm/js/rpmmi-js.c
    1.7.4.5     +5  -5      rpm/js/rpmmpf-js.c
    1.21.4.6    +10 -10     rpm/js/rpmmpw-js.c
    1.18.4.5    +2  -2      rpm/js/rpmps-js.c
    1.7.4.5     +6  -6      rpm/js/rpmseq-js.c
    1.8.4.5     +16 -16     rpm/js/rpmsys-js.c
    1.19.4.5    +2  -2      rpm/js/rpmte-js.c
    1.33.4.5    +7  -7      rpm/js/rpmts-js.c
    1.11.4.5    +4  -4      rpm/js/rpmtxn-js.c
    1.9.4.5     +2  -2      rpm/js/syck-js.c
    1.18.4.5    +2  -2      rpm/js/uuid-js.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/js/rpmaug-js.c
  ============================================================================
  $ cvs diff -u -r1.11.4.5 -r1.11.4.6 rpmaug-js.c
  --- rpm/js/rpmaug-js.c        11 Jul 2017 10:17:11 -0000      1.11.4.5
  +++ rpm/js/rpmaug-js.c        11 Jul 2017 10:42:14 -0000      1.11.4.6
  @@ -32,7 +32,7 @@
   rpmaug_defvar(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmaugClass, NULL);
       rpmaug aug = ptr;
       bool ok = false;
  @@ -63,7 +63,7 @@
   rpmaug_get(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmaugClass, NULL);
       rpmaug aug = ptr;
       bool ok = false;
  @@ -97,7 +97,7 @@
   rpmaug_set(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmaugClass, NULL);
       rpmaug aug = ptr;
       bool ok = false;
  @@ -127,7 +127,7 @@
   rpmaug_insert(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmaugClass, NULL);
       rpmaug aug = ptr;
       bool ok = false;
  @@ -158,7 +158,7 @@
   rpmaug_rm(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmaugClass, NULL);
       rpmaug aug = ptr;
       bool ok = false;
  @@ -180,7 +180,7 @@
   rpmaug_mv(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmaugClass, NULL);
       rpmaug aug = ptr;
       bool ok = false;
  @@ -210,7 +210,7 @@
   rpmaug_match(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmaugClass, NULL);
       rpmaug aug = ptr;
       bool ok = false;
  @@ -248,7 +248,7 @@
   rpmaug_save(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmaugClass, NULL);
       rpmaug aug = ptr;
       bool ok = false;
  @@ -272,7 +272,7 @@
   rpmaug_load(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmaugClass, NULL);
       rpmaug aug = ptr;
       bool ok = false;
  @@ -297,7 +297,7 @@
   rpmaug_print(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmaugClass, NULL);
       rpmaug aug = ptr;
       bool ok = false;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmbf-js.c
  ============================================================================
  $ cvs diff -u -r1.10.4.4 -r1.10.4.5 rpmbf-js.c
  --- rpm/js/rpmbf-js.c 11 Jul 2017 10:17:11 -0000      1.10.4.4
  +++ rpm/js/rpmbf-js.c 11 Jul 2017 10:42:14 -0000      1.10.4.5
  @@ -23,7 +23,7 @@
   rpmbf_add(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmbfClass, NULL);
       rpmbf bf = ptr;
       bool ok = false;
  @@ -45,7 +45,7 @@
   rpmbf_chk(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmbfClass, NULL);
       rpmbf bf = ptr;
       bool ok = false;
  @@ -66,7 +66,7 @@
   static bool
   rpmbf_clr(JSContext *cx, unsigned argc, Value* vp)
   {
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmbfClass, NULL);
       rpmbf bf = ptr;
       bool ok = false;
  @@ -82,7 +82,7 @@
   rpmbf_del(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmbfClass, NULL);
       rpmbf bf = ptr;
       bool ok = false;
  @@ -104,7 +104,7 @@
   rpmbf_intersect(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmbfClass, NULL);
       rpmbf _a = ptr;
       JSObject * o = NULL;
  @@ -129,7 +129,7 @@
   rpmbf_union(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmbfClass, NULL);
       rpmbf _a = ptr;
       JSObject * o = NULL;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmcudf-js.c
  ============================================================================
  $ cvs diff -u -r1.6.4.4 -r1.6.4.5 rpmcudf-js.c
  --- rpm/js/rpmcudf-js.c       11 Jul 2017 10:17:11 -0000      1.6.4.4
  +++ rpm/js/rpmcudf-js.c       11 Jul 2017 10:42:14 -0000      1.6.4.5
  @@ -44,7 +44,7 @@
   rpmcudf_issolution(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmcudfClass, NULL);
       rpmcudf cudf = ptr;
       JSObject *fno = NULL;
  @@ -76,7 +76,7 @@
   rpmcudf_print(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmcudfClass, NULL);
       rpmcudf cudf = ptr;
       bool ok = false;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmdb-js.c
  ============================================================================
  $ cvs diff -u -r1.31.4.4 -r1.31.4.5 rpmdb-js.c
  --- rpm/js/rpmdb-js.c 11 Jul 2017 10:17:11 -0000      1.31.4.4
  +++ rpm/js/rpmdb-js.c 11 Jul 2017 10:42:14 -0000      1.31.4.5
  @@ -138,7 +138,7 @@
   rpmdb_Associate(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o_txn = NULL;
  @@ -191,7 +191,7 @@
   rpmdb_AssociateForeign(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o_db = NULL;
  @@ -242,7 +242,7 @@
   rpmdb_Close(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       uint32_t _flags = 0;
  @@ -271,7 +271,7 @@
   rpmdb_Compact(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -312,7 +312,7 @@
   rpmdb_Cursor(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -362,7 +362,7 @@
   rpmdb_Del(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -411,7 +411,7 @@
   rpmdb_Exists(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -461,7 +461,7 @@
   rpmdb_Get(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -523,7 +523,7 @@
   rpmdb_Join(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -592,7 +592,7 @@
   rpmdb_KeyRange(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -648,7 +648,7 @@
   rpmdb_Open(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -705,7 +705,7 @@
   rpmdb_Pget(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -760,7 +760,7 @@
   rpmdb_Put(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -814,7 +814,7 @@
   rpmdb_Remove(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       const char * _file = NULL;
  @@ -850,7 +850,7 @@
   rpmdb_Rename(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       const char * _file = NULL;
  @@ -887,7 +887,7 @@
   rpmdb_Stat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -927,7 +927,7 @@
   rpmdb_StatPrint(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       uint32_t _flags = DB_STAT_ALL;   /* XXX DB_FAST_STAT is saner default */
  @@ -959,7 +959,7 @@
   rpmdb_Sync(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       bool ok = false;
  @@ -989,7 +989,7 @@
   rpmdb_Truncate(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       JSObject * o = NULL;
  @@ -1028,7 +1028,7 @@
   rpmdb_Upgrade(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       const char * _file = NULL;
  @@ -1062,7 +1062,7 @@
   rpmdb_Verify(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbClass, NULL);
       DB * db = ptr;
       const char * _file = NULL;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmdbc-js.c
  ============================================================================
  $ cvs diff -u -r1.14.4.4 -r1.14.4.5 rpmdbc-js.c
  --- rpm/js/rpmdbc-js.c        11 Jul 2017 10:17:11 -0000      1.14.4.4
  +++ rpm/js/rpmdbc-js.c        11 Jul 2017 10:42:14 -0000      1.14.4.5
  @@ -46,7 +46,7 @@
   rpmdbc_Close(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbcClass, NULL);
       DBC * dbc = ptr;
       bool ok = false;
  @@ -74,7 +74,7 @@
   rpmdbc_Cmp(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbcClass, NULL);
       DBC * dbc = ptr;
       JSObject * _o = NULL;
  @@ -117,7 +117,7 @@
   rpmdbc_Count(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbcClass, NULL);
       DBC * dbc = ptr;
       bool ok = false;
  @@ -152,7 +152,7 @@
   rpmdbc_Del(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbcClass, NULL);
       DBC * dbc = ptr;
       uint32_t _flags = 0;
  @@ -188,7 +188,7 @@
   rpmdbc_Dup(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbcClass, NULL);
       DBC * dbc = ptr;
       uint32_t _flags = 0;
  @@ -233,7 +233,7 @@
   rpmdbc_Get(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbcClass, NULL);
       DBC * dbc = ptr;
       jsval _kv = JSVAL_NULL;
  @@ -287,7 +287,7 @@
   rpmdbc_Pget(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbcClass, NULL);
       DBC * dbc = ptr;
       jsval _kv = JSVAL_NULL;
  @@ -335,7 +335,7 @@
   rpmdbc_Put(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbcClass, NULL);
       DBC * dbc = ptr;
       jsval _kv = JSVAL_NULL;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmdbe-js.c
  ============================================================================
  $ cvs diff -u -r1.21.4.5 -r1.21.4.6 rpmdbe-js.c
  --- rpm/js/rpmdbe-js.c        11 Jul 2017 10:17:11 -0000      1.21.4.5
  +++ rpm/js/rpmdbe-js.c        11 Jul 2017 10:42:14 -0000      1.21.4.6
  @@ -157,7 +157,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -201,7 +201,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -231,7 +231,7 @@
   rpmdbe_Dbremove(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       JSString * js_file = NULL;
  @@ -270,7 +270,7 @@
   rpmdbe_Dbrename(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       JSString * js_file = NULL;
  @@ -311,7 +311,7 @@
   rpmdbe_Failchk(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -350,7 +350,7 @@
   rpmdbe_FileidReset(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       JSString * js_file = NULL;
  @@ -384,7 +384,7 @@
   rpmdbe_LockDetect(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -456,7 +456,7 @@
   rpmdbe_LockGet(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _id = 0;
  @@ -495,7 +495,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -524,7 +524,7 @@
   rpmdbe_LockIdFree(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _id = 0;
  @@ -558,7 +558,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -592,7 +592,7 @@
   rpmdbe_LockStat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -626,7 +626,7 @@
   rpmdbe_LockStatPrint(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = DB_STAT_ALL;
  @@ -658,7 +658,7 @@
   rpmdbe_LockVec(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _id = 0;
  @@ -692,7 +692,7 @@
   rpmdbe_LogArchive(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = DB_ARCH_ABS | DB_ARCH_LOG;
  @@ -747,7 +747,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -769,7 +769,7 @@
   rpmdbe_LogFile(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       DB_LSN _lsn = { 0, 0 };
  @@ -806,7 +806,7 @@
   rpmdbe_LogFlush(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       DB_LSN _lsn = { 0, 0 };
  @@ -838,7 +838,7 @@
   rpmdbe_LogPrintf(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       JSString * js_fmt = NULL;
  @@ -874,7 +874,7 @@
   rpmdbe_LogPut(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       DB_LSN _lsn = { 0, 0 };
  @@ -910,7 +910,7 @@
   rpmdbe_LogStat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -944,7 +944,7 @@
   rpmdbe_LogStatPrint(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = DB_STAT_ALL;
  @@ -976,7 +976,7 @@
   rpmdbe_LsnReset(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       JSString * js_file = NULL;
  @@ -1013,7 +1013,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -1037,7 +1037,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -1059,7 +1059,7 @@
   rpmdbe_MempStat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -1098,7 +1098,7 @@
   rpmdbe_MempStatPrint(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = DB_STAT_ALL;
  @@ -1130,7 +1130,7 @@
   rpmdbe_MempSync(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       DB_LSN _lsn = { 0, 0 };
  @@ -1163,7 +1163,7 @@
   rpmdbe_MempTrickle(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       int _percent = 20;
  @@ -1198,7 +1198,7 @@
   rpmdbe_MutexAlloc(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -1232,7 +1232,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -1263,7 +1263,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -1291,7 +1291,7 @@
   rpmdbe_MutexStat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -1325,7 +1325,7 @@
   rpmdbe_MutexStatPrint(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = DB_STAT_ALL;
  @@ -1359,7 +1359,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -1387,7 +1387,7 @@
   rpmdbe_Open(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       JSString * js_home = NULL;
  @@ -1433,7 +1433,7 @@
   rpmdbe_Remove(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       JSString * js_home = NULL;
  @@ -1470,7 +1470,7 @@
   rpmdbe_RepElect(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _nsites = 0;
  @@ -1506,7 +1506,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -1530,7 +1530,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -1552,7 +1552,7 @@
   rpmdbe_RepStat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -1586,7 +1586,7 @@
   rpmdbe_RepStatPrint(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = DB_STAT_ALL;
  @@ -1618,7 +1618,7 @@
   rpmdbe_RepSync(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -1652,7 +1652,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -1674,7 +1674,7 @@
   rpmdbe_RepmgrStat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -1708,7 +1708,7 @@
   rpmdbe_RepmgrStatPrint(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = DB_STAT_ALL;
  @@ -1740,7 +1740,7 @@
   rpmdbe_StatPrint(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = DB_STAT_ALL;
  @@ -1774,7 +1774,7 @@
   rpmdbe_TxnBegin(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       JSObject * o = NULL;
  @@ -1824,7 +1824,7 @@
   rpmdbe_TxnCheckpoint(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _kb = 0;
  @@ -1860,7 +1860,7 @@
   #ifdef       UNUSED
       CallArgs argv = CallArgsFromVp(argc, vp);
   #endif
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       bool ok = false;
  @@ -1908,7 +1908,7 @@
   rpmdbe_TxnStat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = 0;
  @@ -1942,7 +1942,7 @@
   rpmdbe_TxnStatPrint(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdbeClass, NULL);
       DB_ENV * dbenv = ptr;
       uint32_t _flags = DB_STAT_ALL;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmdc-js.c
  ============================================================================
  $ cvs diff -u -r1.9.4.4 -r1.9.4.5 rpmdc-js.c
  --- rpm/js/rpmdc-js.c 11 Jul 2017 10:17:11 -0000      1.9.4.4
  +++ rpm/js/rpmdc-js.c 11 Jul 2017 10:42:14 -0000      1.9.4.5
  @@ -46,7 +46,7 @@
   rpmdc_Init(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdcClass, NULL);
       rpmdc dc = ptr;
       bool ok = false;
  @@ -77,7 +77,7 @@
   rpmdc_Update(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdcClass, NULL);
       rpmdc dc = ptr;
       bool ok = false;
  @@ -105,7 +105,7 @@
   rpmdc_Fini(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmdcClass, NULL);
       rpmdc dc = ptr;
       bool ok = false;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmfts-js.c
  ============================================================================
  $ cvs diff -u -r1.10.4.4 -r1.10.4.5 rpmfts-js.c
  --- rpm/js/rpmfts-js.c        11 Jul 2017 10:17:12 -0000      1.10.4.4
  +++ rpm/js/rpmfts-js.c        11 Jul 2017 10:42:14 -0000      1.10.4.5
  @@ -94,7 +94,7 @@
   rpmfts_children(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmftsClass, NULL);
       FTS * fts = ptr;
       FTSENT * p;
  @@ -119,7 +119,7 @@
   rpmfts_close(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmftsClass, NULL);
       FTS * fts = ptr;
       bool ok = false;
  @@ -143,7 +143,7 @@
   rpmfts_open(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmftsClass, NULL);
       FTS * fts = ptr;
       JSObject *dno = NULL;
  @@ -176,7 +176,7 @@
   rpmfts_read(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmftsClass, NULL);
       FTS * fts = ptr;
       bool ok = false;
  @@ -193,7 +193,7 @@
   rpmfts_set(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmftsClass, NULL);
       FTS * fts = ptr;
       FTSENT * p = (fts ? fts->fts_cur : NULL);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmhdr-js.c
  ============================================================================
  $ cvs diff -u -r1.24.4.4 -r1.24.4.5 rpmhdr-js.c
  --- rpm/js/rpmhdr-js.c        11 Jul 2017 10:17:12 -0000      1.24.4.4
  +++ rpm/js/rpmhdr-js.c        11 Jul 2017 10:42:14 -0000      1.24.4.5
  @@ -147,7 +147,7 @@
   rpmhdr_ds(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmhdrClass, NULL);
       rpmTag tagN = RPMTAG_NAME;
       bool ok = false;
  @@ -166,7 +166,7 @@
   rpmhdr_fi(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmhdrClass, NULL);
       Header h = ptr;
       rpmTag tagN = RPMTAG_BASENAMES;
  @@ -186,7 +186,7 @@
   rpmhdr_sprintf(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmhdrClass, NULL);
       Header h = ptr;
       char * qfmt = NULL;
  @@ -211,7 +211,7 @@
   rpmhdr_getorigin(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmhdrClass, NULL);
       Header h = ptr;
       bool ok = false;
  @@ -227,7 +227,7 @@
   rpmhdr_setorigin(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmhdrClass, NULL);
       Header h = ptr;
       char * s = NULL;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmio-js.c
  ============================================================================
  $ cvs diff -u -r1.9.4.4 -r1.9.4.5 rpmio-js.c
  --- rpm/js/rpmio-js.c 11 Jul 2017 10:17:12 -0000      1.9.4.4
  +++ rpm/js/rpmio-js.c 11 Jul 2017 10:42:14 -0000      1.9.4.5
  @@ -67,7 +67,7 @@
   rpmio_digestinit(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       jsuint _dalgo = PGPHASHALGO_MD5;
  @@ -88,7 +88,7 @@
   rpmio_digestfini(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       jsuint _dalgo = PGPHASHALGO_MD5;
  @@ -112,7 +112,7 @@
   rpmio_fchown(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       jsint _uid = -1;
  @@ -134,7 +134,7 @@
   rpmio_fclose(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       bool ok = false;
  @@ -158,7 +158,7 @@
   rpmio_fdopen(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       const char * _fmode = "r.ufdio";
  @@ -189,7 +189,7 @@
   rpmio_ferror(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
   
  @@ -202,7 +202,7 @@
   rpmio_fflush(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
   
  @@ -216,7 +216,7 @@
   rpmio_fgetpos(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       bool ok = JSVAL_TRUE;
  @@ -240,7 +240,7 @@
   rpmio_fileno(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       int fdno;
  @@ -255,7 +255,7 @@
   rpmio_fopen(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       const char * _fn = NULL;
  @@ -287,7 +287,7 @@
   rpmio_fread(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       bool ok = false;
  @@ -326,7 +326,7 @@
   rpmio_fseek(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       bool ok;
  @@ -346,7 +346,7 @@
   rpmio_fsetpos(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       bool ok;
  @@ -367,7 +367,7 @@
   rpmio_fstat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       bool ok = false;
  @@ -398,7 +398,7 @@
   rpmio_ftell(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       bool ok = JSVAL_TRUE;
  @@ -414,7 +414,7 @@
   rpmio_fwrite(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       bool ok = false;
  @@ -446,7 +446,7 @@
   rpmio_rewind(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmioClass, NULL);
       FD_t fd = ptr;
       bool ok = JSVAL_TRUE;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmmc-js.c
  ============================================================================
  $ cvs diff -u -r1.12.4.4 -r1.12.4.5 rpmmc-js.c
  --- rpm/js/rpmmc-js.c 11 Jul 2017 10:17:12 -0000      1.12.4.4
  +++ rpm/js/rpmmc-js.c 11 Jul 2017 10:42:14 -0000      1.12.4.5
  @@ -28,7 +28,7 @@
   rpmmc_add(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmcClass, NULL);
       rpmmc mc = ptr;
       char * s = NULL;
  @@ -51,7 +51,7 @@
   rpmmc_del(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmcClass, NULL);
       rpmmc mc = ptr;
       char * s = NULL;
  @@ -73,7 +73,7 @@
   rpmmc_list(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmcClass, NULL);
       rpmmc mc = ptr;
       void * _mire = NULL;
  @@ -111,7 +111,7 @@
   rpmmc_expand(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmcClass, NULL);
       rpmmc mc = ptr;
       char * s;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmmi-js.c
  ============================================================================
  $ cvs diff -u -r1.28.4.4 -r1.28.4.5 rpmmi-js.c
  --- rpm/js/rpmmi-js.c 11 Jul 2017 10:17:12 -0000      1.28.4.4
  +++ rpm/js/rpmmi-js.c 11 Jul 2017 10:42:14 -0000      1.28.4.5
  @@ -28,7 +28,7 @@
   rpmmi_pattern(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmiClass, NULL);
       rpmmi mi = ptr;
       jsval tagid = JSVAL_VOID;
  @@ -73,7 +73,7 @@
   rpmmi_prune(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmiClass, NULL);
       rpmmi mi = ptr;
       uint32_t _u = 0;
  @@ -96,7 +96,7 @@
   rpmmi_grow(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmiClass, NULL);
       rpmmi mi = ptr;
       uint32_t _u = 0;
  @@ -119,7 +119,7 @@
   rpmmi_growbn(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmiClass, NULL);
       rpmmi mi = ptr;
       const char * _bn = NULL;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmmpf-js.c
  ============================================================================
  $ cvs diff -u -r1.7.4.4 -r1.7.4.5 rpmmpf-js.c
  --- rpm/js/rpmmpf-js.c        11 Jul 2017 10:17:12 -0000      1.7.4.4
  +++ rpm/js/rpmmpf-js.c        11 Jul 2017 10:42:14 -0000      1.7.4.5
  @@ -51,7 +51,7 @@
   rpmmpf_Close(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpfClass, NULL);
       DB_MPOOLFILE * mpf = ptr;
       uint32_t _flags = 0;
  @@ -83,7 +83,7 @@
   rpmmpf_Get(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpfClass, NULL);
       DB_MPOOLFILE * mpf = ptr;
       JSObject * o = NULL;
  @@ -126,7 +126,7 @@
   rpmmpf_Open(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpfClass, NULL);
       DB_MPOOLFILE * mpf = ptr;
       char * _file = NULL;
  @@ -167,7 +167,7 @@
   rpmmpf_Put(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpfClass, NULL);
       DB_MPOOLFILE * mpf = ptr;
       DB_CACHE_PRIORITY _priority = DB_PRIORITY_UNCHANGED;
  @@ -206,7 +206,7 @@
   rpmmpf_Sync(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpfClass, NULL);
       DB_MPOOLFILE * mpf = ptr;
       bool ok = false;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmmpw-js.c
  ============================================================================
  $ cvs diff -u -r1.21.4.5 -r1.21.4.6 rpmmpw-js.c
  --- rpm/js/rpmmpw-js.c        11 Jul 2017 10:17:12 -0000      1.21.4.5
  +++ rpm/js/rpmmpw-js.c        11 Jul 2017 10:42:14 -0000      1.21.4.6
  @@ -1790,7 +1790,7 @@
   mpw_toString(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpwClass, NULL);
       jsuint _base = 10;
       bool ok;
  @@ -1810,7 +1810,7 @@
   mpw_valueOf(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpwClass, NULL);
       jsuint _base = 10;
       bool ok = true;
  @@ -1826,7 +1826,7 @@
   mpw_isPrime(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpwClass, NULL);
       mpwObject * z = ptr;
       size_t zsize = (z ? MPW_SIZE(z) : 0);
  @@ -1864,7 +1864,7 @@
   mpw_randomK(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpwClass, NULL);
       mpwObject * q = ptr;
       bool ok = true;
  @@ -1899,7 +1899,7 @@
   mpw_eq(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpwClass, NULL);
       bool ok = true;
   
  @@ -1933,7 +1933,7 @@
   mpw_lt(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpwClass, NULL);
       bool ok = true;
   
  @@ -1977,7 +1977,7 @@
   mpw_gt(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpwClass, NULL);
       bool ok = true;
   
  @@ -2021,7 +2021,7 @@
   mpw_min(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpwClass, NULL);
       bool ok = true;
   
  @@ -2057,7 +2057,7 @@
   mpw_max(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpwClass, NULL);
       bool ok = true;
   
  @@ -2094,7 +2094,7 @@
   mpw_Rndm(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmmpwClass, NULL);
       bool ok;
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmps-js.c
  ============================================================================
  $ cvs diff -u -r1.18.4.4 -r1.18.4.5 rpmps-js.c
  --- rpm/js/rpmps-js.c 11 Jul 2017 10:17:12 -0000      1.18.4.4
  +++ rpm/js/rpmps-js.c 11 Jul 2017 10:42:14 -0000      1.18.4.5
  @@ -26,7 +26,7 @@
   rpmps_push(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmpsClass, NULL);
       rpmps ps = ptr;
       char *pkgNEVR;
  @@ -54,7 +54,7 @@
   rpmps_print(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmpsClass, NULL);
       rpmps ps = ptr;
       bool ok = false;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmseq-js.c
  ============================================================================
  $ cvs diff -u -r1.7.4.4 -r1.7.4.5 rpmseq-js.c
  --- rpm/js/rpmseq-js.c        11 Jul 2017 10:17:12 -0000      1.7.4.4
  +++ rpm/js/rpmseq-js.c        11 Jul 2017 10:42:14 -0000      1.7.4.5
  @@ -47,7 +47,7 @@
   rpmseq_Close(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmseqClass, NULL);
       DB_SEQUENCE * seq = ptr;
       uint32_t _flags = 0;
  @@ -79,7 +79,7 @@
   rpmseq_Get(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmseqClass, NULL);
       DB_SEQUENCE * seq = ptr;
       JSObject * o = NULL;
  @@ -127,7 +127,7 @@
   rpmseq_Open(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmseqClass, NULL);
       DB_SEQUENCE * seq = ptr;
       JSObject * o = NULL;
  @@ -173,7 +173,7 @@
   rpmseq_Remove(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmseqClass, NULL);
       DB_SEQUENCE * seq = ptr;
       JSObject * o = NULL;
  @@ -216,7 +216,7 @@
   rpmseq_Stat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmseqClass, NULL);
       DB_SEQUENCE * seq = ptr;
       uint32_t _flags = 0;
  @@ -249,7 +249,7 @@
   rpmseq_StatPrint(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmseqClass, NULL);
       DB_SEQUENCE * seq = ptr;
       uint32_t _flags = 0;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmsys-js.c
  ============================================================================
  $ cvs diff -u -r1.8.4.4 -r1.8.4.5 rpmsys-js.c
  --- rpm/js/rpmsys-js.c        11 Jul 2017 10:17:12 -0000      1.8.4.4
  +++ rpm/js/rpmsys-js.c        11 Jul 2017 10:42:14 -0000      1.8.4.5
  @@ -63,7 +63,7 @@
   rpmsys_access(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -83,7 +83,7 @@
   rpmsys_chmod(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -103,7 +103,7 @@
   rpmsys_chown(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -128,7 +128,7 @@
   rpmsys_creat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -156,7 +156,7 @@
   rpmsys_lchown(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -178,7 +178,7 @@
   rpmsys_link(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _opath = NULL;
  @@ -197,7 +197,7 @@
   rpmsys_lstat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -228,7 +228,7 @@
   rpmsys_mkdir(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -248,7 +248,7 @@
   rpmsys_mkfifo(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -268,7 +268,7 @@
   rpmsys_mknod(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -290,7 +290,7 @@
   rpmsys_readlink(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -317,7 +317,7 @@
   rpmsys_rename(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _opath = NULL;
  @@ -336,7 +336,7 @@
   rpmsys_rmdir(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -354,7 +354,7 @@
   rpmsys_stat(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ -385,7 +385,7 @@
   rpmsys_symlink(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _opath = NULL;
  @@ -404,7 +404,7 @@
   rpmsys_unlink(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmsysClass, NULL);
       rpmsys sys = ptr;
       const char * _path = NULL;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmte-js.c
  ============================================================================
  $ cvs diff -u -r1.19.4.4 -r1.19.4.5 rpmte-js.c
  --- rpm/js/rpmte-js.c 11 Jul 2017 10:17:12 -0000      1.19.4.4
  +++ rpm/js/rpmte-js.c 11 Jul 2017 10:42:14 -0000      1.19.4.5
  @@ -39,7 +39,7 @@
   rpmte_ds(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmteClass, NULL);
       rpmte te = ptr;
       rpmTag tagN = RPMTAG_NAME;
  @@ -71,7 +71,7 @@
   rpmte_fi(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmteClass, NULL);
       rpmte te = ptr;
       rpmTag tagN = RPMTAG_BASENAMES;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmts-js.c
  ============================================================================
  $ cvs diff -u -r1.33.4.4 -r1.33.4.5 rpmts-js.c
  --- rpm/js/rpmts-js.c 11 Jul 2017 10:17:12 -0000      1.33.4.4
  +++ rpm/js/rpmts-js.c 11 Jul 2017 10:42:14 -0000      1.33.4.5
  @@ -85,7 +85,7 @@
   rpmts_add(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtsClass, NULL);
       rpmts ts = ptr;
       char * pkgN = 0;
  @@ -127,7 +127,7 @@
   rpmts_check(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtsClass, NULL);
       rpmts ts = ptr;
       bool ok = false;
  @@ -146,7 +146,7 @@
   rpmts_order(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtsClass, NULL);
       rpmts ts = ptr;
       bool ok = false;
  @@ -165,7 +165,7 @@
   rpmts_run(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtsClass, NULL);
       rpmts ts = ptr;
       bool ok = false;
  @@ -189,7 +189,7 @@
   rpmts_mi(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtsClass, NULL);
       rpmts ts = ptr;
       jsval tagid = JSVAL_VOID;
  @@ -226,7 +226,7 @@
   rpmts_dbrebuild(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtsClass, NULL);
       rpmts ts = ptr;
       bool ok = false;
  @@ -247,7 +247,7 @@
   rpmts_dbkeys(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtsClass, NULL);
       rpmts ts = ptr;
       jsval tagid = JSVAL_VOID;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/rpmtxn-js.c
  ============================================================================
  $ cvs diff -u -r1.11.4.4 -r1.11.4.5 rpmtxn-js.c
  --- rpm/js/rpmtxn-js.c        11 Jul 2017 10:17:12 -0000      1.11.4.4
  +++ rpm/js/rpmtxn-js.c        11 Jul 2017 10:42:14 -0000      1.11.4.5
  @@ -46,7 +46,7 @@
   rpmtxn_Abort(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtxnClass, NULL);
       DB_TXN * txn = ptr;
       bool ok = false;
  @@ -75,7 +75,7 @@
   rpmtxn_Commit(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtxnClass, NULL);
       DB_TXN * txn = ptr;
       uint32_t _flags = 0;
  @@ -108,7 +108,7 @@
   rpmtxn_Discard(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtxnClass, NULL);
       DB_TXN * txn = ptr;
       uint32_t _flags = 0;
  @@ -138,7 +138,7 @@
   rpmtxn_Prepare(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &rpmtxnClass, NULL);
       DB_TXN * txn = ptr;
   #if !defined(DB_GID_SIZE)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/syck-js.c
  ============================================================================
  $ cvs diff -u -r1.9.4.4 -r1.9.4.5 syck-js.c
  --- rpm/js/syck-js.c  11 Jul 2017 10:17:12 -0000      1.9.4.4
  +++ rpm/js/syck-js.c  11 Jul 2017 10:42:14 -0000      1.9.4.5
  @@ -195,7 +195,7 @@
   syck_load(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       SyckParser *parser = syck_new_parser();
       struct parser_xtra *bonus = xcalloc(1, sizeof(*bonus));
       SYMID v;
  @@ -236,7 +236,7 @@
   syck_dump(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       SyckEmitter *emitter = syck_new_emitter();
       struct emitter_xtra * bonus = xcalloc(1, sizeof(*bonus));
       bool ok = false;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/uuid-js.c
  ============================================================================
  $ cvs diff -u -r1.18.4.4 -r1.18.4.5 uuid-js.c
  --- rpm/js/uuid-js.c  11 Jul 2017 10:17:12 -0000      1.18.4.4
  +++ rpm/js/uuid-js.c  11 Jul 2017 10:42:14 -0000      1.18.4.5
  @@ -41,7 +41,7 @@
   uuid_generate(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &uuidClass, NULL);
       int32 version = 0;
       const char *uuid_ns_str = NULL;
  @@ -110,7 +110,7 @@
   uuid_describe(JSContext *cx, unsigned argc, Value* vp)
   {
       CallArgs argv = CallArgsFromVp(argc, vp);
  -    JSObject *obj = JS_THIS_OBJECT(cx, vp);
  +    RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
       void * ptr = JS_GetInstancePrivate(cx, obj, &uuidClass, NULL);
       uuid_t *uuid = NULL;
       const char *uuid_str = NULL;
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to