view test/runtime/6626217/many_loader1.java.foo @ 3237:399aa66d375e

Fixed a bug in which the valueEquals method was misused. The method does only check the equality of the node data and not full GVN equality by taking inputs and successors into account.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 27 Jul 2011 14:16:38 -0700
parents 495caa35b1b5
children
line wrap: on
line source

// A simple class to extend an abstract class and get loaded with different
// loaders.  This class is loaded via LOADER1.  A similar named class will
// be loaded via LOADER2.
public class many_loader extends bug_21227 {
  public You_Have_Been_P0wned _p0wnee;

  // I need to compile (hence call in a loop) a function which returns a value
  // loaded from classloader other than the system one.  The point of this
  // call is to give me an abstract 'hook' into a function loaded with a
  // foreign loader.

  // The original 'make(boolean)' returns a bug_21227.  The VM will inject a
  // synthetic method to up-cast the returned 'from_loader1' into a
  // 'bug_21227'.
  public many_loader[] make( IFace iface ) { 
    // This function needs to return a value known to be loaded from LOADER2.
    // Since I need to use a yet different loader, I need to make an unknown
    // foreign call.  In this case I'll be using an interface to make the
    // unknown call, with but a single implementor so the compiler can do the
    // upcast statically.
    return iface==null ? null : iface.gen(); 
  }
}