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;
}
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());
}
}
}
Aggregations