Java Code Examples for com.android.dex.util.ByteInput#readByte()

The following examples show how to use com.android.dex.util.ByteInput#readByte() . 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: Leb128.java    From aapt with Apache License 2.0 6 votes vote down vote up
/**
 * Reads an unsigned integer from {@code in}.
 */
public static int readUnsignedLeb128(ByteInput in) {
    int result = 0;
    int cur;
    int count = 0;

    do {
        cur = in.readByte() & 0xff;
        result |= (cur & 0x7f) << (count * 7);
        count++;
    } while (((cur & 0x80) == 0x80) && count < 5);

    if ((cur & 0x80) == 0x80) {
        throw new DexException("invalid LEB128 sequence");
    }

    return result;
}
 
Example 2
Source File: Leb128.java    From buck with Apache License 2.0 6 votes vote down vote up
/**
 * Reads an signed integer from {@code in}.
 */
public static int readSignedLeb128(ByteInput in) {
    int result = 0;
    int cur;
    int count = 0;
    int signBits = -1;

    do {
        cur = in.readByte() & 0xff;
        result |= (cur & 0x7f) << (count * 7);
        signBits <<= 7;
        count++;
    } while (((cur & 0x80) == 0x80) && count < 5);

    if ((cur & 0x80) == 0x80) {
        throw new DexException("invalid LEB128 sequence");
    }

    // Sign extend if appropriate
    if (((signBits >> 1) & result) != 0 ) {
        result |= signBits;
    }

    return result;
}
 
Example 3
Source File: EncodedValueCodec.java    From aapt with Apache License 2.0 5 votes vote down vote up
/**
 * Read an unsigned integer.
 *
 * @param zwidth byte count minus one
 * @param fillOnRight true to zero fill on the right; false on the left
 */
public static int readUnsignedInt(ByteInput in, int zwidth, boolean fillOnRight) {
    int result = 0;
    if (!fillOnRight) {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
        }
        result >>>= (3 - zwidth) * 8;
    } else {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
        }
    }
    return result;
}
 
Example 4
Source File: EncodedValueCodec.java    From Box with Apache License 2.0 5 votes vote down vote up
/**
 * Read a signed integer.
 *
 * @param zwidth byte count minus one
 */
public static int readSignedInt(ByteInput in, int zwidth) {
    int result = 0;
    for (int i = zwidth; i >= 0; i--) {
        result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
    }
    result >>= (3 - zwidth) * 8;
    return result;
}
 
Example 5
Source File: EncodedValueCodec.java    From aapt with Apache License 2.0 5 votes vote down vote up
/**
 * Read a signed integer.
 *
 * @param zwidth byte count minus one
 */
public static int readSignedInt(ByteInput in, int zwidth) {
    int result = 0;
    for (int i = zwidth; i >= 0; i--) {
        result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
    }
    result >>= (3 - zwidth) * 8;
    return result;
}
 
Example 6
Source File: EncodedValueCodec.java    From buck with Apache License 2.0 5 votes vote down vote up
/**
 * Read an unsigned integer.
 *
 * @param zwidth byte count minus one
 * @param fillOnRight true to zero fill on the right; false on the left
 */
public static int readUnsignedInt(ByteInput in, int zwidth, boolean fillOnRight) {
    int result = 0;
    if (!fillOnRight) {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
        }
        result >>>= (3 - zwidth) * 8;
    } else {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
        }
    }
    return result;
}
 
Example 7
Source File: EncodedValueCodec.java    From aapt with Apache License 2.0 5 votes vote down vote up
/**
 * Read an unsigned long.
 *
 * @param zwidth byte count minus one
 * @param fillOnRight true to zero fill on the right; false on the left
 */
public static long readUnsignedLong(ByteInput in, int zwidth, boolean fillOnRight) {
    long result = 0;
    if (!fillOnRight) {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
        }
        result >>>= (7 - zwidth) * 8;
    } else {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
        }
    }
    return result;
}
 
Example 8
Source File: EncodedValueCodec.java    From J2ME-Loader with Apache License 2.0 5 votes vote down vote up
/**
 * Read an unsigned long.
 *
 * @param zwidth byte count minus one
 * @param fillOnRight true to zero fill on the right; false on the left
 */
public static long readUnsignedLong(ByteInput in, int zwidth, boolean fillOnRight) {
    long result = 0;
    if (!fillOnRight) {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
        }
        result >>>= (7 - zwidth) * 8;
    } else {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
        }
    }
    return result;
}
 
Example 9
Source File: EncodedValueCodec.java    From J2ME-Loader with Apache License 2.0 5 votes vote down vote up
/**
 * Read an unsigned integer.
 *
 * @param zwidth byte count minus one
 * @param fillOnRight true to zero fill on the right; false on the left
 */
public static int readUnsignedInt(ByteInput in, int zwidth, boolean fillOnRight) {
    int result = 0;
    if (!fillOnRight) {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
        }
        result >>>= (3 - zwidth) * 8;
    } else {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
        }
    }
    return result;
}
 
Example 10
Source File: EncodedValueCodec.java    From J2ME-Loader with Apache License 2.0 5 votes vote down vote up
/**
 * Read a signed integer.
 *
 * @param zwidth byte count minus one
 */
public static int readSignedInt(ByteInput in, int zwidth) {
    int result = 0;
    for (int i = zwidth; i >= 0; i--) {
        result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
    }
    result >>= (3 - zwidth) * 8;
    return result;
}
 
Example 11
Source File: EncodedValueCodec.java    From buck with Apache License 2.0 5 votes vote down vote up
/**
 * Read a signed integer.
 *
 * @param zwidth byte count minus one
 */
public static int readSignedInt(ByteInput in, int zwidth) {
    int result = 0;
    for (int i = zwidth; i >= 0; i--) {
        result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
    }
    result >>= (3 - zwidth) * 8;
    return result;
}
 
Example 12
Source File: EncodedValueCodec.java    From Box with Apache License 2.0 5 votes vote down vote up
/**
 * Read an unsigned long.
 *
 * @param zwidth byte count minus one
 * @param fillOnRight true to zero fill on the right; false on the left
 */
public static long readUnsignedLong(ByteInput in, int zwidth, boolean fillOnRight) {
    long result = 0;
    if (!fillOnRight) {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
        }
        result >>>= (7 - zwidth) * 8;
    } else {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
        }
    }
    return result;
}
 
Example 13
Source File: EncodedValueCodec.java    From Box with Apache License 2.0 5 votes vote down vote up
/**
 * Read a signed long.
 *
 * @param zwidth byte count minus one
 */
public static long readSignedLong(ByteInput in, int zwidth) {
    long result = 0;
    for (int i = zwidth; i >= 0; i--) {
        result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
    }
    result >>= (7 - zwidth) * 8;
    return result;
}
 
Example 14
Source File: EncodedValueCodec.java    From Box with Apache License 2.0 5 votes vote down vote up
/**
 * Read an unsigned integer.
 *
 * @param zwidth byte count minus one
 * @param fillOnRight true to zero fill on the right; false on the left
 */
public static int readUnsignedInt(ByteInput in, int zwidth, boolean fillOnRight) {
    int result = 0;
    if (!fillOnRight) {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
        }
        result >>>= (3 - zwidth) * 8;
    } else {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
        }
    }
    return result;
}
 
Example 15
Source File: EncodedValueCodec.java    From aapt with Apache License 2.0 5 votes vote down vote up
/**
 * Read a signed long.
 *
 * @param zwidth byte count minus one
 */
public static long readSignedLong(ByteInput in, int zwidth) {
    long result = 0;
    for (int i = zwidth; i >= 0; i--) {
        result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
    }
    result >>= (7 - zwidth) * 8;
    return result;
}
 
Example 16
Source File: EncodedValueCodec.java    From buck with Apache License 2.0 5 votes vote down vote up
/**
 * Read a signed long.
 *
 * @param zwidth byte count minus one
 */
public static long readSignedLong(ByteInput in, int zwidth) {
    long result = 0;
    for (int i = zwidth; i >= 0; i--) {
        result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
    }
    result >>= (7 - zwidth) * 8;
    return result;
}
 
Example 17
Source File: EncodedValueCodec.java    From buck with Apache License 2.0 5 votes vote down vote up
/**
 * Read an unsigned long.
 *
 * @param zwidth byte count minus one
 * @param fillOnRight true to zero fill on the right; false on the left
 */
public static long readUnsignedLong(ByteInput in, int zwidth, boolean fillOnRight) {
    long result = 0;
    if (!fillOnRight) {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
        }
        result >>>= (7 - zwidth) * 8;
    } else {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
        }
    }
    return result;
}
 
Example 18
Source File: EncodedValueCodec.java    From Box with Apache License 2.0 5 votes vote down vote up
/**
 * Read an unsigned long.
 *
 * @param zwidth byte count minus one
 * @param fillOnRight true to zero fill on the right; false on the left
 */
public static long readUnsignedLong(ByteInput in, int zwidth, boolean fillOnRight) {
    long result = 0;
    if (!fillOnRight) {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
        }
        result >>>= (7 - zwidth) * 8;
    } else {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
        }
    }
    return result;
}
 
Example 19
Source File: EncodedValueCodec.java    From Box with Apache License 2.0 5 votes vote down vote up
/**
 * Read a signed long.
 *
 * @param zwidth byte count minus one
 */
public static long readSignedLong(ByteInput in, int zwidth) {
    long result = 0;
    for (int i = zwidth; i >= 0; i--) {
        result = (result >>> 8) | ((in.readByte() & 0xffL) << 56);
    }
    result >>= (7 - zwidth) * 8;
    return result;
}
 
Example 20
Source File: EncodedValueCodec.java    From Box with Apache License 2.0 5 votes vote down vote up
/**
 * Read an unsigned integer.
 *
 * @param zwidth byte count minus one
 * @param fillOnRight true to zero fill on the right; false on the left
 */
public static int readUnsignedInt(ByteInput in, int zwidth, boolean fillOnRight) {
    int result = 0;
    if (!fillOnRight) {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
        }
        result >>>= (3 - zwidth) * 8;
    } else {
        for (int i = zwidth; i >= 0; i--) {
            result = (result >>> 8) | ((in.readByte() & 0xff) << 24);
        }
    }
    return result;
}