Search in sources :

Example 1 with FieldCode

use of io.nuls.contract.vm.code.FieldCode in project nuls by nuls-io.

the class NativeUtils method toJson.

private static Map<String, Object> toJson(ObjectRef objectRef, Frame frame) {
    if (objectRef == null) {
        return null;
    }
    Map<String, FieldCode> fields = frame.methodArea.allFields(objectRef.getVariableType().getType());
    Map<String, Object> map = frame.heap.getFields(objectRef);
    Map<String, Object> jsonMap = new LinkedHashMap<>(hashMapInitialCapacity(map.size()));
    for (Map.Entry<String, Object> entry : map.entrySet()) {
        String name = entry.getKey();
        FieldCode fieldCode = fields.get(name);
        if (fieldCode != null && !fieldCode.isSynthetic) {
            Object value = entry.getValue();
            jsonMap.put(name, toJson(fieldCode, value, frame));
        }
    }
    return jsonMap;
}
Also used : FieldCode(io.nuls.contract.vm.code.FieldCode) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) LinkedHashMap(java.util.LinkedHashMap)

Example 2 with FieldCode

use of io.nuls.contract.vm.code.FieldCode in project nuls by nuls-io.

the class Heap method initFields.

private void initFields(ClassCode classCode, ObjectRef objectRef) {
    if (StringUtils.isNotBlank(classCode.superName)) {
        ClassCode superClassCode = this.vm.methodArea.loadClass(classCode.superName);
        initFields(superClassCode, objectRef);
    }
    for (FieldCode fieldCode : classCode.fields.values()) {
        if (!fieldCode.isStatic) {
            putField(objectRef, fieldCode.name, fieldCode.variableType.getDefaultValue());
        }
    }
}
Also used : ClassCode(io.nuls.contract.vm.code.ClassCode) FieldCode(io.nuls.contract.vm.code.FieldCode)

Aggregations

FieldCode (io.nuls.contract.vm.code.FieldCode)2 ClassCode (io.nuls.contract.vm.code.ClassCode)1 LinkedHashMap (java.util.LinkedHashMap)1 Map (java.util.Map)1