Search in sources :

Example 6 with LazyCharArrayIntTags

use of edu.columbia.cs.psl.phosphor.struct.LazyCharArrayIntTags in project phosphor by gmu-swe.

the class ArrayReflectionMasker method setChar$$PHOSPHORTAGGED.

public static void setChar$$PHOSPHORTAGGED(Object obj, int idxtaint, int idx, int taint, char val) {
    if (obj instanceof LazyCharArrayIntTags) {
        LazyCharArrayIntTags a = (LazyCharArrayIntTags) obj;
        a.set(null, idx, taint, val);
    } else
        throw new ArrayStoreException("Called setX, but don't have tainted X array!");
}
Also used : LazyCharArrayIntTags(edu.columbia.cs.psl.phosphor.struct.LazyCharArrayIntTags)

Example 7 with LazyCharArrayIntTags

use of edu.columbia.cs.psl.phosphor.struct.LazyCharArrayIntTags in project phosphor by gmu-swe.

the class ArrayReflectionMasker method newInstance$$PHOSPHORTAGGED.

public static Object newInstance$$PHOSPHORTAGGED(Class clazz, int lenTaint, int len) {
    Class tmp = clazz;
    int dims = 0;
    while (tmp.isArray()) {
        tmp = tmp.getComponentType();
        dims++;
    }
    if (tmp.isPrimitive()) {
        // else
        if (dims == 0) {
            if (tmp == Double.TYPE)
                return new LazyDoubleArrayIntTags(new double[len]);
            if (tmp == Float.TYPE)
                return new LazyFloatArrayIntTags(new float[len]);
            if (tmp == Integer.TYPE)
                return new LazyIntArrayIntTags(new int[len]);
            if (tmp == Long.TYPE)
                return new LazyLongArrayIntTags(new long[len]);
            if (tmp == Short.TYPE)
                return new LazyShortArrayIntTags(new short[len]);
            if (tmp == Boolean.TYPE)
                return new LazyBooleanArrayIntTags(new boolean[len]);
            if (tmp == Byte.TYPE)
                return new LazyByteArrayIntTags(new byte[len]);
            if (tmp == Character.TYPE)
                return new LazyCharArrayIntTags(new char[len]);
        } else
            clazz = MultiDTaintedArrayWithIntTag.getUnderlyingBoxClassForUnderlyingClass(clazz);
    }
    return Array.newInstance(clazz, len);
}
Also used : LazyShortArrayIntTags(edu.columbia.cs.psl.phosphor.struct.LazyShortArrayIntTags) LazyFloatArrayIntTags(edu.columbia.cs.psl.phosphor.struct.LazyFloatArrayIntTags) LazyLongArrayIntTags(edu.columbia.cs.psl.phosphor.struct.LazyLongArrayIntTags) LazyDoubleArrayIntTags(edu.columbia.cs.psl.phosphor.struct.LazyDoubleArrayIntTags) LazyBooleanArrayIntTags(edu.columbia.cs.psl.phosphor.struct.LazyBooleanArrayIntTags) LazyIntArrayIntTags(edu.columbia.cs.psl.phosphor.struct.LazyIntArrayIntTags) LazyByteArrayIntTags(edu.columbia.cs.psl.phosphor.struct.LazyByteArrayIntTags) LazyCharArrayIntTags(edu.columbia.cs.psl.phosphor.struct.LazyCharArrayIntTags)

Aggregations

LazyCharArrayIntTags (edu.columbia.cs.psl.phosphor.struct.LazyCharArrayIntTags)7 LazyBooleanArrayIntTags (edu.columbia.cs.psl.phosphor.struct.LazyBooleanArrayIntTags)5 LazyByteArrayIntTags (edu.columbia.cs.psl.phosphor.struct.LazyByteArrayIntTags)5 LazyDoubleArrayIntTags (edu.columbia.cs.psl.phosphor.struct.LazyDoubleArrayIntTags)5 LazyFloatArrayIntTags (edu.columbia.cs.psl.phosphor.struct.LazyFloatArrayIntTags)5 LazyIntArrayIntTags (edu.columbia.cs.psl.phosphor.struct.LazyIntArrayIntTags)5 LazyLongArrayIntTags (edu.columbia.cs.psl.phosphor.struct.LazyLongArrayIntTags)5 LazyShortArrayIntTags (edu.columbia.cs.psl.phosphor.struct.LazyShortArrayIntTags)5 Type (org.objectweb.asm.Type)2 TaintedBooleanWithIntTag (edu.columbia.cs.psl.phosphor.struct.TaintedBooleanWithIntTag)1