callee = VM_ClassLoader.findOrCreateMethod(calleeClass, calleeName, calleeDescriptor);
callee = OPT_ClassLoaderProxy.findOrCreateMethod(calleeClass, calleeName, calleeDescriptor, classloader);
  public void readObject (LineNumberReader in) throws IOException {    int bytecodeOffset;    String s = in.readLine();    while (s != null) {      bytecodeOffset = 0;      StringTokenizer parser = new StringTokenizer(s, " \t\n\r\f,");      String nextToken1 = parser.nextToken();      String nextToken2 = parser.nextToken();      String nextToken3 = parser.nextToken();      VM_Method caller = null;      VM_Method callee = null;      if (!nextToken1.equals("null")) {        VM_Atom callerClass = VM_Atom.findOrCreateUnicodeAtom(nextToken1);        VM_Atom callerName = VM_Atom.findOrCreateUnicodeAtom(nextToken2);        VM_Atom callerDescriptor = VM_Atom.findOrCreateUnicodeAtom(nextToken3);        caller = 	  VM_ClassLoader.findOrCreateMethod(callerClass, callerName, callerDescriptor);      }      nextToken1 = parser.nextToken();      if (!nextToken1.equals("null")) {        bytecodeOffset = Integer.parseInt(nextToken1);      }      nextToken1 = parser.nextToken();      nextToken2 = parser.nextToken();      nextToken3 = parser.nextToken();      if (!nextToken1.equals("null")) {        VM_Atom calleeClass = VM_Atom.findOrCreateUnicodeAtom(nextToken1);        VM_Atom calleeName = VM_Atom.findOrCreateUnicodeAtom(nextToken2);        VM_Atom calleeDescriptor = VM_Atom.findOrCreateUnicodeAtom(nextToken3);        callee = 	  VM_ClassLoader.findOrCreateMethod(calleeClass, calleeName, calleeDescriptor);      }      addRule(caller, bytecodeOffset, callee);      s = in.readLine();    }  }