diff agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualConstructor.java @ 3939:f6f3bb0ee072

7088955: add C2 IR support to the SA Reviewed-by: kvn
author never
date Sun, 11 Sep 2011 14:48:24 -0700
parents c18cbe5936b8
children
line wrap: on
line diff
--- a/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualConstructor.java	Sat Sep 10 17:29:02 2011 -0700
+++ b/agent/src/share/classes/sun/jvm/hotspot/runtime/VirtualConstructor.java	Sun Sep 11 14:48:24 2011 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 
 import java.util.*;
 import sun.jvm.hotspot.debugger.*;
-import sun.jvm.hotspot.debugger.cdbg.*;
 import sun.jvm.hotspot.types.*;
 
 /** This class provides generalized "virtual constructor"
@@ -39,7 +38,7 @@
     type "DefNewGeneration" to class
     sun.jvm.hotspot.memory.DefNewGeneration has been set up. */
 
-public class VirtualConstructor {
+public class VirtualConstructor extends InstanceConstructor<VMObject> {
   private TypeDataBase db;
   private Map          map; // Map<String, Class>
 
@@ -78,20 +77,6 @@
       }
     }
 
-    String message = "No suitable match for type of address " + addr;
-    CDebugger cdbg = VM.getVM().getDebugger().getCDebugger();
-    if (cdbg != null) {
-      // Most common case: V-table pointer is the first field
-      Address vtblPtr = addr.getAddressAt(0);
-      LoadObject lo = cdbg.loadObjectContainingPC(vtblPtr);
-      if (lo != null) {
-        ClosestSymbol symbol = lo.closestSymbolToPC(vtblPtr);
-        if (symbol != null) {
-          message += " (nearest symbol is " + symbol.getName() + ")";
-        }
-      }
-    }
-
-    throw new WrongTypeException(message);
+    throw newWrongTypeException(addr);
   }
 }