VMIdManager.java (getObjectId): Deal with null objects.
authorKyle Galloway <kgallowa@redhat.com>
Wed, 25 Apr 2007 19:46:45 +0000 (19:46 +0000)
committerKyle Galloway <kgallowa@gcc.gnu.org>
Wed, 25 Apr 2007 19:46:45 +0000 (19:46 +0000)
2007-04-25  Kyle Galloway  <kgallowa@redhat.com>

* gnu/classpath/jdwp/VMIdManager.java (getObjectId): Deal with null
objects.
(get): Deal with ObjectId of 0.

From-SVN: r124164

libjava/ChangeLog
libjava/gnu/classpath/jdwp/VMIdManager.java

index 6c0fd9ecc374c3316949f274df86d817bfba2dbd..f012fe7808abee613e4458e5134685887aab9a29 100644 (file)
@@ -1,3 +1,9 @@
+2007-04-25  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/VMIdManager.java (getObjectId): Deal with null
+       objects.
+       (get): Deal with ObjectId of 0. 
+
 2007-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        PR libgcj/31084
index 8d423e9b0d66a2a44cd4d0e6a61c59e130878498..f787a8cdc7f2a3cba97d822168d893c081a69640 100644 (file)
@@ -1,7 +1,7 @@
 /* VMIdManager.java -- A reference/example implementation of a manager for
    JDWP object/reference type IDs
 
-   Copyright (C) 2005, 2006 Free Software Foundation
+   Copyright (C) 2005, 2006, 2007 Free Software Foundation
 
 This file is part of GNU Classpath.
 
@@ -337,6 +337,10 @@ public class VMIdManager
    */
   public ObjectId getObjectId (Object theObject)
   {
+    // Special case: null object.
+    if (theObject == null)
+      return new NullObjectId ();
+         
     ReferenceKey ref = new ReferenceKey (theObject, _refQueue);
     ObjectId id = (ObjectId) _oidTable.get (ref);
     if (id == null)
@@ -364,6 +368,10 @@ public class VMIdManager
   public ObjectId get (long id)
     throws InvalidObjectException
   {
+    // Special case: null object id.
+    if (id == 0)
+      return new NullObjectId ();
+    
     ObjectId oid = (ObjectId) _idTable.get (new Long (id));
     if (oid == null)
       throw new InvalidObjectException (id);