com.android.dx.rop.cst.CstFloat Java Examples

The following examples show how to use com.android.dx.rop.cst.CstFloat. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AttConstantValue.java    From Box with Apache License 2.0 6 votes vote down vote up
/**
 * Constructs an instance.
 *
 * @param constantValue {@code non-null;} the constant value, which must
 * be an instance of one of: {@code CstString},
 * {@code CstInteger}, {@code CstLong},
 * {@code CstFloat}, or {@code CstDouble}
 */
public AttConstantValue(TypedConstant constantValue) {
    super(ATTRIBUTE_NAME);

    if (!((constantValue instanceof CstString) ||
           (constantValue instanceof CstInteger) ||
           (constantValue instanceof CstLong) ||
           (constantValue instanceof CstFloat) ||
           (constantValue instanceof CstDouble))) {
        if (constantValue == null) {
            throw new NullPointerException("constantValue == null");
        }
        throw new IllegalArgumentException("bad type for constantValue");
    }

    this.constantValue = constantValue;
}
 
Example #2
Source File: BootstrapMethodArgumentsList.java    From Box with Apache License 2.0 6 votes vote down vote up
/**
 * Sets the bootstrap argument at the indicated position.
 *
 * @param n position of argument to set
 * @param cst {@code Constant} instance
 */
public void set(int n, Constant cst) {
    // The set of permitted types is defined by the JVMS 8, section 4.7.23.
    if (cst instanceof CstString ||
        cst instanceof CstType ||
        cst instanceof CstInteger ||
        cst instanceof CstLong ||
        cst instanceof CstFloat ||
        cst instanceof CstDouble ||
        cst instanceof CstMethodHandle ||
        cst instanceof CstProtoRef) {
        set0(n, cst);
    } else {
        Class<?> klass = cst.getClass();
        throw new IllegalArgumentException("bad type for bootstrap argument: " + klass);
    }
}
 
Example #3
Source File: AttConstantValue.java    From Box with Apache License 2.0 6 votes vote down vote up
/**
 * Constructs an instance.
 *
 * @param constantValue {@code non-null;} the constant value, which must
 * be an instance of one of: {@code CstString},
 * {@code CstInteger}, {@code CstLong},
 * {@code CstFloat}, or {@code CstDouble}
 */
public AttConstantValue(TypedConstant constantValue) {
    super(ATTRIBUTE_NAME);

    if (!((constantValue instanceof CstString) ||
           (constantValue instanceof CstInteger) ||
           (constantValue instanceof CstLong) ||
           (constantValue instanceof CstFloat) ||
           (constantValue instanceof CstDouble))) {
        if (constantValue == null) {
            throw new NullPointerException("constantValue == null");
        }
        throw new IllegalArgumentException("bad type for constantValue");
    }

    this.constantValue = constantValue;
}
 
Example #4
Source File: BootstrapMethodArgumentsList.java    From Box with Apache License 2.0 6 votes vote down vote up
/**
 * Sets the bootstrap argument at the indicated position.
 *
 * @param n position of argument to set
 * @param cst {@code Constant} instance
 */
public void set(int n, Constant cst) {
    // The set of permitted types is defined by the JVMS 8, section 4.7.23.
    if (cst instanceof CstString ||
        cst instanceof CstType ||
        cst instanceof CstInteger ||
        cst instanceof CstLong ||
        cst instanceof CstFloat ||
        cst instanceof CstDouble ||
        cst instanceof CstMethodHandle ||
        cst instanceof CstProtoRef) {
        set0(n, cst);
    } else {
        Class<?> klass = cst.getClass();
        throw new IllegalArgumentException("bad type for bootstrap argument: " + klass);
    }
}
 
Example #5
Source File: AttConstantValue.java    From J2ME-Loader with Apache License 2.0 6 votes vote down vote up
/**
 * Constructs an instance.
 *
 * @param constantValue {@code non-null;} the constant value, which must
 * be an instance of one of: {@code CstString},
 * {@code CstInteger}, {@code CstLong},
 * {@code CstFloat}, or {@code CstDouble}
 */
public AttConstantValue(TypedConstant constantValue) {
    super(ATTRIBUTE_NAME);

    if (!((constantValue instanceof CstString) ||
           (constantValue instanceof CstInteger) ||
           (constantValue instanceof CstLong) ||
           (constantValue instanceof CstFloat) ||
           (constantValue instanceof CstDouble))) {
        if (constantValue == null) {
            throw new NullPointerException("constantValue == null");
        }
        throw new IllegalArgumentException("bad type for constantValue");
    }

    this.constantValue = constantValue;
}
 
Example #6
Source File: AttConstantValue.java    From buck with Apache License 2.0 6 votes vote down vote up
/**
 * Constructs an instance.
 *
 * @param constantValue {@code non-null;} the constant value, which must
 * be an instance of one of: {@code CstString},
 * {@code CstInteger}, {@code CstLong},
 * {@code CstFloat}, or {@code CstDouble}
 */
public AttConstantValue(TypedConstant constantValue) {
    super(ATTRIBUTE_NAME);

    if (!((constantValue instanceof CstString) ||
           (constantValue instanceof CstInteger) ||
           (constantValue instanceof CstLong) ||
           (constantValue instanceof CstFloat) ||
           (constantValue instanceof CstDouble))) {
        if (constantValue == null) {
            throw new NullPointerException("constantValue == null");
        }
        throw new IllegalArgumentException("bad type for constantValue");
    }

    this.constantValue = constantValue;
}
 
Example #7
Source File: Constants.java    From lua-for-android with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
/**
 * Returns a rop constant for the specified value.
 *
 * @param value null, a boxed primitive, String, Class, or TypeId.
 */
static TypedConstant getConstant(Object value) {
    if (value == null) {
        return CstKnownNull.THE_ONE;
    } else if (value instanceof Boolean) {
        return CstBoolean.make((Boolean) value);
    } else if (value instanceof Byte) {
        return CstByte.make((Byte) value);
    } else if (value instanceof Character) {
        return CstChar.make((Character) value);
    } else if (value instanceof Double) {
        return CstDouble.make(Double.doubleToLongBits((Double) value));
    } else if (value instanceof Float) {
        return CstFloat.make(Float.floatToIntBits((Float) value));
    } else if (value instanceof Integer) {
        return CstInteger.make((Integer) value);
    } else if (value instanceof Long) {
        return CstLong.make((Long) value);
    } else if (value instanceof Short) {
        return CstShort.make((Short) value);
    } else if (value instanceof String) {
        return new CstString((String) value);
    } else if (value instanceof Class) {
        return new CstType(TypeId.get((Class<?>) value).ropType);
    } else if (value instanceof TypeId) {
        return new CstType(((TypeId) value).ropType);
    } else {
        throw new UnsupportedOperationException("Not a constant: " + value);
    }
}
 
Example #8
Source File: Constants.java    From dexmaker with Apache License 2.0 5 votes vote down vote up
/**
 * Returns a rop constant for the specified value.
 *
 * @param value null, a boxed primitive, String, Class, or TypeId.
 */
static TypedConstant getConstant(Object value) {
    if (value == null) {
        return CstKnownNull.THE_ONE;
    } else if (value instanceof Boolean) {
        return CstBoolean.make((Boolean) value);
    } else if (value instanceof Byte) {
        return CstByte.make((Byte) value);
    } else if (value instanceof Character) {
        return CstChar.make((Character) value);
    } else if (value instanceof Double) {
        return CstDouble.make(Double.doubleToLongBits((Double) value));
    } else if (value instanceof Float) {
        return CstFloat.make(Float.floatToIntBits((Float) value));
    } else if (value instanceof Integer) {
        return CstInteger.make((Integer) value);
    } else if (value instanceof Long) {
        return CstLong.make((Long) value);
    } else if (value instanceof Short) {
        return CstShort.make((Short) value);
    } else if (value instanceof String) {
        return new CstString((String) value);
    } else if (value instanceof Class) {
        return new CstType(TypeId.get((Class<?>) value).ropType);
    } else if (value instanceof TypeId) {
        return new CstType(((TypeId) value).ropType);
    } else {
        throw new UnsupportedOperationException("Not a constant: " + value);
    }
}
 
Example #9
Source File: ValueEncoder.java    From Box with Apache License 2.0 4 votes vote down vote up
/**
 * Gets the value type for the given constant.
 *
 * @param cst {@code non-null;} the constant
 * @return the value type; one of the {@code VALUE_*} constants
 * defined by this class
 */
private static int constantToValueType(Constant cst) {
    /*
     * TODO: Constant should probable have an associated enum, so this
     * can be a switch().
     */
    if (cst instanceof CstByte) {
        return VALUE_BYTE;
    } else if (cst instanceof CstShort) {
        return VALUE_SHORT;
    } else if (cst instanceof CstChar) {
        return VALUE_CHAR;
    } else if (cst instanceof CstInteger) {
        return VALUE_INT;
    } else if (cst instanceof CstLong) {
        return VALUE_LONG;
    } else if (cst instanceof CstFloat) {
        return VALUE_FLOAT;
    } else if (cst instanceof CstDouble) {
        return VALUE_DOUBLE;
    } else if (cst instanceof CstProtoRef) {
        return VALUE_METHOD_TYPE;
    } else if (cst instanceof CstMethodHandle) {
       return VALUE_METHOD_HANDLE;
    } else if (cst instanceof CstString) {
        return VALUE_STRING;
    } else if (cst instanceof CstType) {
        return VALUE_TYPE;
    } else if (cst instanceof CstFieldRef) {
        return VALUE_FIELD;
    } else if (cst instanceof CstMethodRef) {
        return VALUE_METHOD;
    } else if (cst instanceof CstEnumRef) {
        return VALUE_ENUM;
    } else if (cst instanceof CstArray) {
        return VALUE_ARRAY;
    } else if (cst instanceof CstAnnotation) {
        return VALUE_ANNOTATION;
    } else if (cst instanceof CstKnownNull) {
        return VALUE_NULL;
    } else if (cst instanceof CstBoolean) {
        return VALUE_BOOLEAN;
    } else {
        throw new RuntimeException("Shouldn't happen");
    }
}
 
Example #10
Source File: CodeObserver.java    From Box with Apache License 2.0 4 votes vote down vote up
/** {@inheritDoc} */
@Override
public void visitConstant(int opcode, int offset, int length,
        Constant cst, int value) {
    if (cst instanceof CstKnownNull) {
        // This is aconst_null.
        visitNoArgs(opcode, offset, length, null);
        return;
    }

    if (cst instanceof CstInteger) {
        visitLiteralInt(opcode, offset, length, value);
        return;
    }

    if (cst instanceof CstLong) {
        visitLiteralLong(opcode, offset, length,
                         ((CstLong) cst).getValue());
        return;
    }

    if (cst instanceof CstFloat) {
        visitLiteralFloat(opcode, offset, length,
                          ((CstFloat) cst).getIntBits());
        return;
    }

    if (cst instanceof CstDouble) {
        visitLiteralDouble(opcode, offset, length,
                         ((CstDouble) cst).getLongBits());
        return;
    }

    String valueStr = "";
    if (value != 0) {
        valueStr = ", ";
        if (opcode == ByteOps.MULTIANEWARRAY) {
            valueStr += Hex.u1(value);
        } else {
            valueStr += Hex.u2(value);
        }
    }

    observer.parsed(bytes, offset, length,
                    header(offset) + " " + cst + valueStr);
}
 
Example #11
Source File: ValueEncoder.java    From Box with Apache License 2.0 4 votes vote down vote up
/**
 * Gets the value type for the given constant.
 *
 * @param cst {@code non-null;} the constant
 * @return the value type; one of the {@code VALUE_*} constants
 * defined by this class
 */
private static int constantToValueType(Constant cst) {
    /*
     * TODO: Constant should probable have an associated enum, so this
     * can be a switch().
     */
    if (cst instanceof CstByte) {
        return VALUE_BYTE;
    } else if (cst instanceof CstShort) {
        return VALUE_SHORT;
    } else if (cst instanceof CstChar) {
        return VALUE_CHAR;
    } else if (cst instanceof CstInteger) {
        return VALUE_INT;
    } else if (cst instanceof CstLong) {
        return VALUE_LONG;
    } else if (cst instanceof CstFloat) {
        return VALUE_FLOAT;
    } else if (cst instanceof CstDouble) {
        return VALUE_DOUBLE;
    } else if (cst instanceof CstProtoRef) {
        return VALUE_METHOD_TYPE;
    } else if (cst instanceof CstMethodHandle) {
       return VALUE_METHOD_HANDLE;
    } else if (cst instanceof CstString) {
        return VALUE_STRING;
    } else if (cst instanceof CstType) {
        return VALUE_TYPE;
    } else if (cst instanceof CstFieldRef) {
        return VALUE_FIELD;
    } else if (cst instanceof CstMethodRef) {
        return VALUE_METHOD;
    } else if (cst instanceof CstEnumRef) {
        return VALUE_ENUM;
    } else if (cst instanceof CstArray) {
        return VALUE_ARRAY;
    } else if (cst instanceof CstAnnotation) {
        return VALUE_ANNOTATION;
    } else if (cst instanceof CstKnownNull) {
        return VALUE_NULL;
    } else if (cst instanceof CstBoolean) {
        return VALUE_BOOLEAN;
    } else {
        throw new RuntimeException("Shouldn't happen");
    }
}
 
Example #12
Source File: CodeObserver.java    From Box with Apache License 2.0 4 votes vote down vote up
/** {@inheritDoc} */
@Override
public void visitConstant(int opcode, int offset, int length,
        Constant cst, int value) {
    if (cst instanceof CstKnownNull) {
        // This is aconst_null.
        visitNoArgs(opcode, offset, length, null);
        return;
    }

    if (cst instanceof CstInteger) {
        visitLiteralInt(opcode, offset, length, value);
        return;
    }

    if (cst instanceof CstLong) {
        visitLiteralLong(opcode, offset, length,
                         ((CstLong) cst).getValue());
        return;
    }

    if (cst instanceof CstFloat) {
        visitLiteralFloat(opcode, offset, length,
                          ((CstFloat) cst).getIntBits());
        return;
    }

    if (cst instanceof CstDouble) {
        visitLiteralDouble(opcode, offset, length,
                         ((CstDouble) cst).getLongBits());
        return;
    }

    String valueStr = "";
    if (value != 0) {
        valueStr = ", ";
        if (opcode == ByteOps.MULTIANEWARRAY) {
            valueStr += Hex.u1(value);
        } else {
            valueStr += Hex.u2(value);
        }
    }

    observer.parsed(bytes, offset, length,
                    header(offset) + " " + cst + valueStr);
}
 
Example #13
Source File: ValueEncoder.java    From J2ME-Loader with Apache License 2.0 4 votes vote down vote up
/**
 * Gets the value type for the given constant.
 *
 * @param cst {@code non-null;} the constant
 * @return the value type; one of the {@code VALUE_*} constants
 * defined by this class
 */
private static int constantToValueType(Constant cst) {
    /*
     * TODO: Constant should probable have an associated enum, so this
     * can be a switch().
     */
    if (cst instanceof CstByte) {
        return VALUE_BYTE;
    } else if (cst instanceof CstShort) {
        return VALUE_SHORT;
    } else if (cst instanceof CstChar) {
        return VALUE_CHAR;
    } else if (cst instanceof CstInteger) {
        return VALUE_INT;
    } else if (cst instanceof CstLong) {
        return VALUE_LONG;
    } else if (cst instanceof CstFloat) {
        return VALUE_FLOAT;
    } else if (cst instanceof CstDouble) {
        return VALUE_DOUBLE;
    } else if (cst instanceof CstString) {
        return VALUE_STRING;
    } else if (cst instanceof CstType) {
        return VALUE_TYPE;
    } else if (cst instanceof CstFieldRef) {
        return VALUE_FIELD;
    } else if (cst instanceof CstMethodRef) {
        return VALUE_METHOD;
    } else if (cst instanceof CstEnumRef) {
        return VALUE_ENUM;
    } else if (cst instanceof CstArray) {
        return VALUE_ARRAY;
    } else if (cst instanceof CstAnnotation) {
        return VALUE_ANNOTATION;
    } else if (cst instanceof CstKnownNull) {
        return VALUE_NULL;
    } else if (cst instanceof CstBoolean) {
        return VALUE_BOOLEAN;
    } else {
        throw new RuntimeException("Shouldn't happen");
    }
}
 
Example #14
Source File: CodeObserver.java    From J2ME-Loader with Apache License 2.0 4 votes vote down vote up
/** {@inheritDoc} */
   @Override
public void visitConstant(int opcode, int offset, int length,
						  Constant cst, int value) {
       if (cst instanceof CstKnownNull) {
           // This is aconst_null.
           visitNoArgs(opcode, offset, length, null);
           return;
       }

       if (cst instanceof CstInteger) {
           visitLiteralInt(opcode, offset, length, value);
           return;
       }

       if (cst instanceof CstLong) {
           visitLiteralLong(opcode, offset, length,
                            ((CstLong) cst).getValue());
           return;
       }

       if (cst instanceof CstFloat) {
           visitLiteralFloat(opcode, offset, length,
                             ((CstFloat) cst).getIntBits());
           return;
       }

       if (cst instanceof CstDouble) {
           visitLiteralDouble(opcode, offset, length,
                            ((CstDouble) cst).getLongBits());
           return;
       }

       String valueStr = "";
       if (value != 0) {
           valueStr = ", ";
           if (opcode == ByteOps.MULTIANEWARRAY) {
               valueStr += Hex.u1(value);
           } else {
               valueStr += Hex.u2(value);
           }
       }

       observer.parsed(bytes, offset, length,
                       header(offset) + " " + cst + valueStr);
   }
 
Example #15
Source File: ValueEncoder.java    From buck with Apache License 2.0 4 votes vote down vote up
/**
 * Gets the value type for the given constant.
 *
 * @param cst {@code non-null;} the constant
 * @return the value type; one of the {@code VALUE_*} constants
 * defined by this class
 */
private static int constantToValueType(Constant cst) {
    /*
     * TODO: Constant should probable have an associated enum, so this
     * can be a switch().
     */
    if (cst instanceof CstByte) {
        return VALUE_BYTE;
    } else if (cst instanceof CstShort) {
        return VALUE_SHORT;
    } else if (cst instanceof CstChar) {
        return VALUE_CHAR;
    } else if (cst instanceof CstInteger) {
        return VALUE_INT;
    } else if (cst instanceof CstLong) {
        return VALUE_LONG;
    } else if (cst instanceof CstFloat) {
        return VALUE_FLOAT;
    } else if (cst instanceof CstDouble) {
        return VALUE_DOUBLE;
    } else if (cst instanceof CstString) {
        return VALUE_STRING;
    } else if (cst instanceof CstType) {
        return VALUE_TYPE;
    } else if (cst instanceof CstFieldRef) {
        return VALUE_FIELD;
    } else if (cst instanceof CstMethodRef) {
        return VALUE_METHOD;
    } else if (cst instanceof CstEnumRef) {
        return VALUE_ENUM;
    } else if (cst instanceof CstArray) {
        return VALUE_ARRAY;
    } else if (cst instanceof CstAnnotation) {
        return VALUE_ANNOTATION;
    } else if (cst instanceof CstKnownNull) {
        return VALUE_NULL;
    } else if (cst instanceof CstBoolean) {
        return VALUE_BOOLEAN;
    } else {
        throw new RuntimeException("Shouldn't happen");
    }
}
 
Example #16
Source File: CodeObserver.java    From buck with Apache License 2.0 4 votes vote down vote up
/** {@inheritDoc} */
public void visitConstant(int opcode, int offset, int length,
        Constant cst, int value) {
    if (cst instanceof CstKnownNull) {
        // This is aconst_null.
        visitNoArgs(opcode, offset, length, null);
        return;
    }

    if (cst instanceof CstInteger) {
        visitLiteralInt(opcode, offset, length, value);
        return;
    }

    if (cst instanceof CstLong) {
        visitLiteralLong(opcode, offset, length,
                         ((CstLong) cst).getValue());
        return;
    }

    if (cst instanceof CstFloat) {
        visitLiteralFloat(opcode, offset, length,
                          ((CstFloat) cst).getIntBits());
        return;
    }

    if (cst instanceof CstDouble) {
        visitLiteralDouble(opcode, offset, length,
                         ((CstDouble) cst).getLongBits());
        return;
    }

    String valueStr = "";
    if (value != 0) {
        valueStr = ", ";
        if (opcode == ByteOps.MULTIANEWARRAY) {
            valueStr += Hex.u1(value);
        } else {
            valueStr += Hex.u2(value);
        }
    }

    observer.parsed(bytes, offset, length,
                    header(offset) + " " + cst + valueStr);
}