コード例 #1
0
  static ClassInfo getDataRepresentationClassInfo(MJIEnv env, FeatureExpr ctx) {
    ThreadInfo ti = env.getThreadInfo();
    //    Instruction insn = ti.getPC().getValue();

    ClassInfo ci = ClassLoaderInfo.getSystemResolvedClassInfo(DataRepresentation);
    if (ci.pushRequiredClinits(ctx, ti)) {
      env.repeatInvocation();
      return null;
    }

    return ci;
  }
コード例 #2
0
  static boolean isAvailable(MJIEnv env, FieldInfo fi, int fobjRef) {
    if (fi.isStatic()) {
      ClassInfo fci = fi.getClassInfo();
      if (fci.requiresClinitExecution(env.getThreadInfo())) {
        env.repeatInvocation();
        return false;
      }

    } else {
      if (fobjRef == MJIEnv.NULL) {
        env.throwException("java.lang.NullPointerException");
        return false;
      }
      // class had obviously been initialized, otherwise we won't have an instance of it
    }

    return true;
  }