use of io.nuls.contract.vm.Result in project nuls by nuls-io.
the class NativeObject method getClass.
/**
* native
*
* @see Object#getClass()
*/
private static Result getClass(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
ObjectRef objectRef = methodArgs.objectRef;
ObjectRef classRef = frame.heap.getClassRef(objectRef.getVariableType().getDesc());
Result result = NativeMethod.result(methodCode, classRef, frame);
return result;
}
use of io.nuls.contract.vm.Result in project nuls by nuls-io.
the class NativeObject method hashCode.
/**
* native
*
* @see Object#hashCode()
*/
private static Result hashCode(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
ObjectRef objectRef = methodArgs.objectRef;
int hashCode = NativeSystem.identityHashCode(objectRef);
Result result = NativeMethod.result(methodCode, hashCode, frame);
return result;
}
use of io.nuls.contract.vm.Result in project nuls by nuls-io.
the class NativeObject method clone.
/**
* native
*
* @see Object#clone()
*/
private static Result clone(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
ObjectRef objectRef = methodArgs.objectRef;
ObjectRef newRef;
if (objectRef.isArray()) {
newRef = frame.heap.newArray(objectRef.getVariableType(), objectRef.getDimensions());
frame.heap.arraycopy(objectRef, 0, newRef, 0, objectRef.getDimensions()[0]);
} else {
Map<String, Object> fields = frame.heap.getFields(objectRef);
Map<String, Object> newFields = CloneUtils.clone(fields);
newRef = frame.heap.newObjectRef(null, objectRef.getDesc(), objectRef.getDimensions());
frame.heap.putFields(newRef, newFields);
}
Result result = NativeMethod.result(methodCode, newRef, frame);
return result;
}
use of io.nuls.contract.vm.Result in project nuls by nuls-io.
the class NativeFloat method toString.
/**
* override
*
* @see Float#toString(float)
*/
private static Result toString(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
float f = (float) methodArgs.invokeArgs[0];
String s = Float.toString(f);
ObjectRef ref = frame.heap.newString(s);
Result result = NativeMethod.result(methodCode, ref, frame);
return result;
}
use of io.nuls.contract.vm.Result in project nuls by nuls-io.
the class NativeFloat method parseFloat.
/**
* override
*
* @see Float#parseFloat(String)
*/
private static Result parseFloat(MethodCode methodCode, MethodArgs methodArgs, Frame frame) {
ObjectRef objectRef = (ObjectRef) methodArgs.invokeArgs[0];
String s = frame.heap.runToString(objectRef);
float f;
try {
f = Float.parseFloat(s);
} catch (Exception e) {
frame.throwNumberFormatException(e.getMessage());
return null;
}
Result result = NativeMethod.result(methodCode, f, frame);
return result;
}
Aggregations