view test/runtime/6626217/many_loader1.java.foo @ 4006:436b4a3231bf

7098194: integrate macosx-port changes Summary: Integrate bsd-port/hotspot and macosx-port/hotspot changes as of 2011.09.29. Reviewed-by: kvn, dholmes, never, phh Contributed-by: Christos Zoulas <christos@zoulas.com>, Greg Lewis <glewis@eyesbeyond.com>, Kurt Miller <kurt@intricatesoftware.com>, Alexander Strange <astrange@apple.com>, Mike Swingler <swingler@apple.com>, Roger Hoover <rhoover@apple.com>, Victor Hernandez <vhernandez@apple.com>, Pratik Solanki <psolanki@apple.com>
author dcubed
date Thu, 13 Oct 2011 09:35:42 -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(); 
  }
}