Package com.caucho.bytecode

Examples of com.caucho.bytecode.ConstantPool


    private int _setterRef;

    FieldMap(com.caucho.bytecode.JavaClass baseClass,
             String fieldName)
    {
      ConstantPool pool = baseClass.getConstantPool();

      FieldRefConstant fieldRef = pool.getFieldRef(fieldName);

      if (fieldRef == null)
        return;

      _fieldRef = fieldRef.getIndex();

      MethodRefConstant methodRef;

      String getterName = "__caucho_get_" + fieldName;

      methodRef = pool.addMethodRef(baseClass.getThisClass(),
                                    getterName,
                                    "()" + fieldRef.getType());

      _getterRef = methodRef.getIndex();

      String setterName = "__caucho_set_" + fieldName;

      methodRef = pool.addMethodRef(baseClass.getThisClass(),
                                    setterName,
                                    "(" + fieldRef.getType() + ")V");

      _setterRef = methodRef.getIndex();
    }
View Full Code Here


    private int _setterRef;

    FieldMap(com.caucho.bytecode.JavaClass baseClass,
             String fieldName)
    {
      ConstantPool pool = baseClass.getConstantPool();

      FieldRefConstant fieldRef = pool.getFieldRef(fieldName);

      if (fieldRef == null)
        return;

      _fieldRef = fieldRef.getIndex();

      MethodRefConstant methodRef;

      String getterName = "__caucho_get_" + fieldName;

      methodRef = pool.addMethodRef(baseClass.getThisClass(),
                                    getterName,
                                    "()" + fieldRef.getType());

      _getterRef = methodRef.getIndex();

      String setterName = "__caucho_set_" + fieldName;

      methodRef = pool.addMethodRef(baseClass.getThisClass(),
                                    setterName,
                                    "(" + fieldRef.getType() + ")V");

      _setterRef = methodRef.getIndex();
    }
View Full Code Here

        return;

      switch (visitor.getOpcode()) {
      case CodeVisitor.INVOKESPECIAL:
        JavaClass javaClass = visitor.getJavaClass();
        ConstantPool cp = javaClass.getConstantPool();
        MethodRefConstant ref = cp.getMethodRef(visitor.getShortArg());

        // ejb/0l00
        // handler "super()" and "this()"
        if (ref.getName().equals("<init>")
      && (ref.getClassName().equals(javaClass.getThisClass())
View Full Code Here

      switch (visitor.getOpcode()) {
      case CodeVisitor.INVOKESPECIAL:
        int index = visitor.getShortArg();

  JavaClass jClass = visitor.getJavaClass();
        ConstantPool cp = jClass.getConstantPool();
        MethodRefConstant ref;
        ref = cp.getMethodRef(index);

  if (ref.getName().endsWith("__super")) {
    return;
  }
  else if (ref.getName().equals("<init>")
     && (! ref.getClassName().equals(jClass.getSuperClassName())
         || ! _method.getName().equals("<init>"))) {
    return;
  }
  else if (! ref.getName().equals("<init>")) {
    // private methods are called with invokespecial, but shouldn't
    // be modified
    JMethod method = findMethod(jClass,
              ref.getName(),
              ref.getType());

    if (method != null && method.isPrivate())
      return;
  }

  String superName;
        if (ref.getName().equals("<init>"))
    superName = "__init__super";
  else
    superName = ref.getName() + "__super";

        MethodRefConstant newRef;
        newRef = cp.addMethodRef(ref.getClassName(),
                                 superName,
                                 ref.getType());

        visitor.setShortArg(1, newRef.getIndex());
View Full Code Here

    try {
      JavaClassLoader jLoader = new JavaClassLoader(_cl.getClassLoader());
     
      JavaClass jClass = new JavaClass(jLoader);
      jClass.setAccessFlags(Modifier.PUBLIC);
      ConstantPool cp = jClass.getConstantPool();

      jClass.setWrite(true);
     
      jClass.setMajor(49);
      jClass.setMinor(0);
View Full Code Here

        return;

      switch (visitor.getOpcode()) {
      case CodeVisitor.INVOKESPECIAL:
        JavaClass javaClass = visitor.getJavaClass();
        ConstantPool cp = javaClass.getConstantPool();
        MethodRefConstant ref = cp.getMethodRef(visitor.getShortArg());

        // ejb/0l00
        // handler "super()" and "this()"
        if (ref.getName().equals("<init>")
            && (ref.getClassName().equals(javaClass.getThisClass())
View Full Code Here

      switch (visitor.getOpcode()) {
      case CodeVisitor.INVOKESPECIAL:
        int index = visitor.getShortArg();

        JavaClass jClass = visitor.getJavaClass();
        ConstantPool cp = jClass.getConstantPool();
        MethodRefConstant ref;
        ref = cp.getMethodRef(index);

        if (ref.getName().endsWith("__super")) {
          return;
        }
        else if (ref.getName().equals("<init>")
                 && (! ref.getClassName().equals(jClass.getSuperClassName())
                     || ! _method.getName().equals("<init>"))) {
          return;
        }
        else if (! ref.getName().equals("<init>")) {
          // private methods are called with invokespecial, but shouldn't
          // be modified
          JMethod method = findMethod(jClass,
                                      ref.getName(),
                                      ref.getType());

          if (method != null && method.isPrivate())
            return;
        }

        String superName;
        if (ref.getName().equals("<init>"))
          superName = "__init__super";
        else
          superName = ref.getName() + "__super";

        MethodRefConstant newRef;
        newRef = cp.addMethodRef(ref.getClassName(),
                                 superName,
                                 ref.getType());

        visitor.setShortArg(1, newRef.getIndex());
View Full Code Here

TOP

Related Classes of com.caucho.bytecode.ConstantPool

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.