[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rpm-cvs
Subject:    [CVS] RPM: rpm/js/tscripts/ Uuid.js rpm/js/ uuid-js.c
From:       "Jeff Johnson" <jbj () rpm5 ! org>
Date:       2009-04-27 21:29:01
Message-ID: 20090427212901.D60FFFE68 () rpm5 ! org
[Download RAW message or body]

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

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  jbj@rpm5.org
  Module: rpm                              Date:   27-Apr-2009 23:29:01
  Branch: HEAD                             Handle: 2009042721290100

  Modified files:
    rpm/js                  uuid-js.c
    rpm/js/tscripts         Uuid.js

  Log:
    - js: Uuid: handle JSCLASS_NEW_RESOLVE, always succeed in getprop.

  Summary:
    Revision    Changes     Path
    1.4         +9  -1      rpm/js/tscripts/Uuid.js
    1.8         +19 -2      rpm/js/uuid-js.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/js/tscripts/Uuid.js
  ============================================================================
  $ cvs diff -u -r1.3 -r1.4 Uuid.js
  --- rpm/js/tscripts/Uuid.js	27 Apr 2009 11:37:55 -0000	1.3
  +++ rpm/js/tscripts/Uuid.js	27 Apr 2009 21:29:01 -0000	1.4
  @@ -1,9 +1,17 @@
   if (loglvl) print("--> Uuid.js");
   
  -var uuid = new Uuid();
  +var ns = "ns:URL";
  +var abc = "http://rpm5.org/abc";
  +
  +var uuid = new Uuid(ns);
   ack("typeof uuid;", "object");
   ack("uuid instanceof Uuid;", true);
   ack("uuid.debug = 1;", 1);
   ack("uuid.debug = 0;", 0);
   
  +ack("uuid.describe(uuid.generate(1))",		undefined);
  +ack("uuid.describe(uuid.generate(3, ns, abc));",undefined);
  +ack("uuid.describe(uuid.generate(4))",		undefined);
  +ack("uuid.describe(uuid.generate(5, ns, abc));",undefined);
  +
   if (loglvl) print("<-- Uuid.js");
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/js/uuid-js.c
  ============================================================================
  $ cvs diff -u -r1.7 -r1.8 uuid-js.c
  --- rpm/js/uuid-js.c	27 Apr 2009 01:01:14 -0000	1.7
  +++ rpm/js/uuid-js.c	27 Apr 2009 21:29:01 -0000	1.8
  @@ -20,6 +20,8 @@
       uuid_t  * ns;
   } * JSUuid;
   
  +/* --- helpers */
  +
   /* --- Object methods */
   
   static JSBool
  @@ -187,6 +189,7 @@
       if (!ok) {
   _PROP_DEBUG_EXIT(_debug);
       }
  +ok = JS_TRUE;  /* XXX avoid immediate interp exit by always succeeding. */
       return ok;
   }
   
  @@ -217,8 +220,22 @@
   	JSObject **objp)
   {
       void * ptr = JS_GetInstancePrivate(cx, obj, &uuidClass, NULL);
  +    JSBool ok = JS_FALSE;
  +
   _RESOLVE_DEBUG_ENTRY(_debug);
  -    return JS_TRUE;
  +
  +    if ((flags & JSRESOLVE_ASSIGNING)
  +     || (ptr == NULL)) { /* don't resolve to parent prototypes objects. */
  +	*objp = NULL;
  +	ok = JS_TRUE;
  +	goto exit;
  +    }
  +
  +    *objp = obj;        /* XXX always resolve in this object. */
  +
  +    ok = JS_TRUE;
  +exit;
  +    return ok;
   }
   
   static JSBool
  @@ -304,7 +321,7 @@
   
   /* --- Class initialization */
   JSClass uuidClass = {
  -    "Uuid", JSCLASS_NEW_RESOLVE | JSCLASS_NEW_ENUMERATE | JSCLASS_HAS_PRIVATE | \
JSCLASS_HAS_CACHED_PROTO(JSProto_Object),  +    "Uuid", JSCLASS_NEW_RESOLVE | \
JSCLASS_NEW_ENUMERATE | JSCLASS_HAS_PRIVATE,  uuid_addprop,   uuid_delprop, \
uuid_getprop, uuid_setprop,  (JSEnumerateOp)uuid_enumerate, \
(JSResolveOp)uuid_resolve,  uuid_convert,	uuid_dtor,
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic