Java Code Examples for com.android.dx.rop.code.RegisterSpec#equalsUsingSimpleType()

The following examples show how to use com.android.dx.rop.code.RegisterSpec#equalsUsingSimpleType() . 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: LocalList.java    From Box with Apache License 2.0 5 votes vote down vote up
/**
 * Sets the local state at the given address to the given snapshot.
 * The first call on this instance must be to this method, so that
 * the register state can be properly sized.
 *
 * @param address {@code >= 0;} the address
 * @param specs {@code non-null;} spec set representing the locals
 */
public void snapshot(int address, RegisterSpecSet specs) {
    if (DEBUG) {
        System.err.printf("%04x snapshot %s\n", address, specs);
    }

    int sz = specs.getMaxSize();
    aboutToProcess(address, sz - 1);

    for (int i = 0; i < sz; i++) {
        RegisterSpec oldSpec = regs.get(i);
        RegisterSpec newSpec = filterSpec(specs.get(i));

        if (oldSpec == null) {
            if (newSpec != null) {
                startLocal(address, newSpec);
            }
        } else if (newSpec == null) {
            endLocal(address, oldSpec);
        } else if (! newSpec.equalsUsingSimpleType(oldSpec)) {
            endLocal(address, oldSpec);
            startLocal(address, newSpec);
        }
    }

    if (DEBUG) {
        System.err.printf("%04x snapshot done\n", address);
    }
}
 
Example 2
Source File: LocalList.java    From Box with Apache License 2.0 5 votes vote down vote up
/**
 * Sets the local state at the given address to the given snapshot.
 * The first call on this instance must be to this method, so that
 * the register state can be properly sized.
 *
 * @param address {@code >= 0;} the address
 * @param specs {@code non-null;} spec set representing the locals
 */
public void snapshot(int address, RegisterSpecSet specs) {
    if (DEBUG) {
        System.err.printf("%04x snapshot %s\n", address, specs);
    }

    int sz = specs.getMaxSize();
    aboutToProcess(address, sz - 1);

    for (int i = 0; i < sz; i++) {
        RegisterSpec oldSpec = regs.get(i);
        RegisterSpec newSpec = filterSpec(specs.get(i));

        if (oldSpec == null) {
            if (newSpec != null) {
                startLocal(address, newSpec);
            }
        } else if (newSpec == null) {
            endLocal(address, oldSpec);
        } else if (! newSpec.equalsUsingSimpleType(oldSpec)) {
            endLocal(address, oldSpec);
            startLocal(address, newSpec);
        }
    }

    if (DEBUG) {
        System.err.printf("%04x snapshot done\n", address);
    }
}
 
Example 3
Source File: LocalList.java    From J2ME-Loader with Apache License 2.0 5 votes vote down vote up
/**
 * Sets the local state at the given address to the given snapshot.
 * The first call on this instance must be to this method, so that
 * the register state can be properly sized.
 *
 * @param address {@code >= 0;} the address
 * @param specs {@code non-null;} spec set representing the locals
 */
public void snapshot(int address, RegisterSpecSet specs) {
    if (DEBUG) {
        System.err.printf("%04x snapshot %s\n", address, specs);
    }

    int sz = specs.getMaxSize();
    aboutToProcess(address, sz - 1);

    for (int i = 0; i < sz; i++) {
        RegisterSpec oldSpec = regs.get(i);
        RegisterSpec newSpec = filterSpec(specs.get(i));

        if (oldSpec == null) {
            if (newSpec != null) {
                startLocal(address, newSpec);
            }
        } else if (newSpec == null) {
            endLocal(address, oldSpec);
        } else if (! newSpec.equalsUsingSimpleType(oldSpec)) {
            endLocal(address, oldSpec);
            startLocal(address, newSpec);
        }
    }

    if (DEBUG) {
        System.err.printf("%04x snapshot done\n", address);
    }
}
 
Example 4
Source File: LocalList.java    From buck with Apache License 2.0 5 votes vote down vote up
/**
 * Sets the local state at the given address to the given snapshot.
 * The first call on this instance must be to this method, so that
 * the register state can be properly sized.
 *
 * @param address {@code >= 0;} the address
 * @param specs {@code non-null;} spec set representing the locals
 */
public void snapshot(int address, RegisterSpecSet specs) {
    if (DEBUG) {
        System.err.printf("%04x snapshot %s\n", address, specs);
    }

    int sz = specs.getMaxSize();
    aboutToProcess(address, sz - 1);

    for (int i = 0; i < sz; i++) {
        RegisterSpec oldSpec = regs.get(i);
        RegisterSpec newSpec = filterSpec(specs.get(i));

        if (oldSpec == null) {
            if (newSpec != null) {
                startLocal(address, newSpec);
            }
        } else if (newSpec == null) {
            endLocal(address, oldSpec);
        } else if (! newSpec.equalsUsingSimpleType(oldSpec)) {
            endLocal(address, oldSpec);
            startLocal(address, newSpec);
        }
    }

    if (DEBUG) {
        System.err.printf("%04x snapshot done\n", address);
    }
}