SPVM::Document::NativeAPI::Method - Method Native APIs
The method native APIs in SPVM are the APIs to get definition information for methods.
SPVM_API_METHOD* api_method = env->api->method; void* basic_type = env->get_basic_type(env, stack, "Foo"); void* method = env->api->basic_type->get_method_by_name(env->runtime, basic_type, "get"); const char* method_name = api_method->get_name(env->runtime, method);
const char* (*get_name)(void* runtime, void* method);
Returns the name of the method method.
int32_t (*get_index)(void* runtime, void* method);
Returns the index of the method method. This index is the position of the method method in its belonging class.
void* (*get_return_basic_type)(void* runtime, void* method);
Returns the basic type of the return type of the method method.
int32_t (*get_return_type_dimension)(void* runtime, void* method);
Returns the type dimention of the return type of the method method.
int32_t (*get_return_type_flag)(void* runtime, void* method);
Returns the type flag ID of the return type of the method method.
void* (*get_arg_by_index)(void* runtime, void* method, int32_t arg_index);
Searches a argument at the index arg_index.
If it is found, returns it. Otherwise, returns NULL.
NULL
int32_t (*get_args_length)(void* runtime, void* method);
Returns the length of the arguments of the method method.
int32_t (*get_required_args_length)(void* runtime, void* method);
Returns the length of the required arguments of the method method.
void* (*get_current_basic_type)(void* runtime, void* method);
Returns the basic type that owns the method method.
void* (*get_opcode_by_index)(void* runtime, void* method, int32_t opcode_index);
Searches an operation code at the index opcode_index.
int32_t (*get_opcodes_length)(void* runtime, void* method);
Returns the length of operation codes.
int32_t (*is_class_method)(void* runtime, void* method);
If the method method is a class method, returns 1. Otherwise, returns 0.
int32_t (*is_anon)(void* runtime, void* method);
If the method method is an anon method, returns 1. Otherwise, returns 0.
int32_t (*is_native)(void* runtime, void* method);
If the method method is a native method, returns 1. Otherwise, returns 0.
int32_t (*is_precompile)(void* runtime, void* method);
If the method method is a method with the precompile attribute, returns 1. Otherwise, returns 0.
precompile
int32_t (*is_enum)(void* runtime, void* method);
If the method method is an enumeration, returns 1. Otherwise, returns 0.
int32_t (*get_byte_vars_width)(void* runtime, void* method);
Returns the length of the variables of the byte type allocated by the method method.
byte
int32_t (*get_short_vars_width)(void* runtime, void* method);
Returns the length of the variables of the short type allocated by the method method.
short
int32_t (*get_int_vars_width)(void* runtime, void* method);
Returns the length of the variables of the int type allocated by the method method.
int
int32_t (*get_long_vars_width)(void* runtime, void* method);
Returns the length of the variables of the long type allocated by the method method.
long
int32_t (*get_float_vars_width)(void* runtime, void* method);
Returns the length of the variables of the float type allocated by the method method.
float
int32_t (*get_double_vars_width)(void* runtime, void* method);
Returns the length of the variables of the double type allocated by the method method.
double
int32_t (*get_object_vars_width)(void* runtime, void* method);
Returns the length of the variables of the object type allocated by the method method.
int32_t (*get_ref_vars_width)(void* runtime, void* method);
Returns the length of the variables of the reference type allocated by the method method.
int32_t (*get_mortal_stack_length)(void* runtime, void* method);
Returns the length of the mortal stack of the method method.
void* (*get_native_address)(void* runtime, void* method);
Returns the native_address field of the method method. The address of the machine code for a native method is stored to this field.
native_address
void (*set_native_address)(void* runtime, void* method, void* address);
Sets address to the native_address field of the method method.
void* (*get_precompile_address)(void* runtime, void* method);
Returns the precompile_address field of the method method. The address of the machine code for a precompiled method is stored to this field.
precompile_address
void (*set_precompile_address)(void* runtime, void* method, void* address);
Sets address to the precompile_address field of the method method.
int32_t (*is_precompile_fallback)(void* runtime, void* method);
Gets the is_precompile_fallback field.
is_precompile_fallback
If this field is a true value, the precompilation method that does not have the execution address is fallback to the vm method.
void (*set_is_precompile_fallback)(void* runtime, void* method, int32_t is_precompile_fallback);
Sets the is_precompile_fallback field to is_precompile_fallback.
0 get_name 1 get_index 2 get_return_basic_type 3 get_return_type_dimension 4 get_return_type_flag 5 get_arg_by_index 6 get_args_length 7 get_required_args_length 8 get_current_basic_type 9 get_opcode_by_index 10 get_opcodes_length 11 is_class_method 12 is_anon 13 is_native 14 is_precompile 15 is_enum 16 get_byte_vars_width 17 get_short_vars_width 18 get_int_vars_width 19 get_long_vars_width 20 get_float_vars_width 21 get_double_vars_width 22 get_object_vars_width 23 get_ref_vars_width 24 get_mortal_stack_length 25 get_native_address 26 set_native_address 27 get_precompile_address 28 set_precompile_address 29 is_precompile_fallback 30 set_is_precompile_fallback
SPVM::Document::NativeAPI
SPVM::Document::NativeClass
SPVM::Document
Copyright (c) 2023 Yuki Kimoto
MIT License
To install SPVM, copy and paste the appropriate command in to your terminal.
cpanm
cpanm SPVM
CPAN shell
perl -MCPAN -e shell install SPVM
For more information on module installation, please visit the detailed CPAN module installation guide.