Branch Coverage

SPVM.xs
Criterion Covered Total %
branch 1060 1778 59.6


line true false branch
21 0 2332574 if (SvOK(sv_data)) {
0 0 if (SvOK(sv_data)) {
0 0 if (SvOK(sv_data)) {
25 2332574 0 SV* sv_pointer = sv_pointer_ptr ? *sv_pointer_ptr : &PL_sv_undef;
26 2332574 0 size_t iv_pointer = SvIV(SvRV(sv_pointer));
38 390 692115 if (SvOK(sv_blessed_object)) {
390 0 if (SvOK(sv_blessed_object)) {
0 390 if (SvOK(sv_blessed_object)) {
42 692115 0 SV* sv_spvm_object = sv_spvm_object_ptr ? *sv_spvm_object_ptr : &PL_sv_undef;
43 692115 0 void** spvm_object_ref = (void**)SvPV_nolen(sv_spvm_object);
56 1193181 0 if (sv_isobject(sv_env) && sv_derived_from(sv_env, "SPVM::Builder::Env")) {
1134497 58684 if (sv_isobject(sv_env) && sv_derived_from(sv_env, "SPVM::Builder::Env")) {
59 58684 0 else if (sv_isobject(sv_env) && sv_derived_from(sv_env, "SPVM::BlessedObject::Class")) {
58684 0 else if (sv_isobject(sv_env) && sv_derived_from(sv_env, "SPVM::BlessedObject::Class")) {
75 1193181 0 if (sv_isobject(sv_stack) && sv_derived_from(sv_stack, "SPVM::Builder::Stack")) {
1134497 58684 if (sv_isobject(sv_stack) && sv_derived_from(sv_stack, "SPVM::Builder::Stack")) {
78 58684 0 else if (sv_isobject(sv_stack) && sv_derived_from(sv_stack, "SPVM::BlessedObject::Class")) {
58684 0 else if (sv_isobject(sv_stack) && sv_derived_from(sv_stack, "SPVM::BlessedObject::Class")) {
96 349347 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
100 349347 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
104 349347 0 void** spvm_object_ref = (void**)SvPV_nolen(sv_spvm_object);
114 0 349347 if (SvOK(sv_api)) {
0 0 if (SvOK(sv_api)) {
0 0 if (SvOK(sv_api)) {
145 69135 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
149 69135 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
152 362 68773 if (SvOK(sv_string)) {
362 0 if (SvOK(sv_string)) {
0 362 if (SvOK(sv_string)) {
153 974 67799 if (sv_isobject(sv_string) && sv_derived_from(sv_string, "SPVM::BlessedObject::String")) {
972 2 if (sv_isobject(sv_string) && sv_derived_from(sv_string, "SPVM::BlessedObject::String")) {
156 8 67793 else if (SvROK(sv_string)) {
162 67431 362 const char* string = SvPV(sv_string, length);
178 30972 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
182 30972 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
189 0 30972 if (SvOK(sv_address)) {
0 0 if (SvOK(sv_address)) {
0 0 if (SvOK(sv_address)) {
190 0 30972 if (sv_isobject(sv_address) && sv_derived_from(sv_address, "SPVM::BlessedObject::Class")) {
0 0 if (sv_isobject(sv_address) && sv_derived_from(sv_address, "SPVM::BlessedObject::Class")) {
193 0 0 if (!env->is_type_by_name(env, stack, spvm_address, "Address", type_dimension)) {
198 0 30972 else if (SvROK(sv_address)) {
203 30972 0 void* address = (void*)(intptr_t)SvIV(sv_address);
222 56 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
226 56 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
231 6 50 if (SvOK(sv_array)) {
6 0 if (SvOK(sv_array)) {
0 6 if (SvOK(sv_array)) {
232 12 38 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
12 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
236 10 2 if (!(strcmp(spvm_array_basic_type_name, "byte") == 0 && spvm_array_type_dimension == 1)) {
0 10 if (!(strcmp(spvm_array_basic_type_name, "byte") == 0 && spvm_array_type_dimension == 1)) {
241 38 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 36 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
256 94 36 for (int32_t i = 0; i < length; i++) {
258 94 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
260 0 94 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 94 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
264 94 0 elems[i] = (int8_t)SvIV(sv_elem);
281 14 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
285 14 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
290 2 12 if (SvOK(sv_array)) {
2 0 if (SvOK(sv_array)) {
0 2 if (SvOK(sv_array)) {
291 4 8 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
4 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
295 2 2 if (!(strcmp(spvm_array_basic_type_name, "byte") == 0 && spvm_array_type_dimension == 1)) {
0 2 if (!(strcmp(spvm_array_basic_type_name, "byte") == 0 && spvm_array_type_dimension == 1)) {
300 8 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 6 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
315 12 6 for (int32_t i = 0; i < length; i++) {
317 12 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
319 0 12 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 12 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
323 0 12 elems[i] = (int8_t)(uint8_t)SvUV(sv_elem);
340 46 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
344 46 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
349 6 40 if (SvOK(sv_array)) {
6 0 if (SvOK(sv_array)) {
0 6 if (SvOK(sv_array)) {
350 10 30 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
10 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
354 8 2 if (!(strcmp(spvm_array_basic_type_name, "short") == 0 && spvm_array_type_dimension == 1)) {
0 8 if (!(strcmp(spvm_array_basic_type_name, "short") == 0 && spvm_array_type_dimension == 1)) {
359 30 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 28 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
374 70 28 for (int32_t i = 0; i < length; i++) {
376 70 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
378 0 70 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 70 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
382 70 0 elems[i] = (int16_t)SvIV(sv_elem);
399 14 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
403 14 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
408 2 12 if (SvOK(sv_array)) {
2 0 if (SvOK(sv_array)) {
0 2 if (SvOK(sv_array)) {
409 4 8 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
4 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
413 2 2 if (!(strcmp(spvm_array_basic_type_name, "short") == 0 && spvm_array_type_dimension == 1)) {
0 2 if (!(strcmp(spvm_array_basic_type_name, "short") == 0 && spvm_array_type_dimension == 1)) {
418 8 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 6 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
433 12 6 for (int32_t i = 0; i < length; i++) {
435 12 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
437 0 12 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 12 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
441 0 12 elems[i] = (int16_t)(uint16_t)SvUV(sv_elem);
458 68 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
462 68 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
467 6 62 if (SvOK(sv_array)) {
6 0 if (SvOK(sv_array)) {
0 6 if (SvOK(sv_array)) {
468 14 48 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
14 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
472 12 2 if (!(strcmp(spvm_array_basic_type_name, "int") == 0 && spvm_array_type_dimension == 1)) {
0 12 if (!(strcmp(spvm_array_basic_type_name, "int") == 0 && spvm_array_type_dimension == 1)) {
477 46 2 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 44 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
492 106 44 for (int32_t i = 0; i < length; i++) {
494 106 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
496 0 106 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 106 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
500 106 0 elems[i] = (int32_t)SvIV(sv_elem);
520 14 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
524 14 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
527 2 12 if (SvOK(sv_array)) {
2 0 if (SvOK(sv_array)) {
0 2 if (SvOK(sv_array)) {
528 4 8 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
4 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
532 2 2 if (!(strcmp(spvm_array_basic_type_name, "int") == 0 && spvm_array_type_dimension == 1)) {
0 2 if (!(strcmp(spvm_array_basic_type_name, "int") == 0 && spvm_array_type_dimension == 1)) {
537 8 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 6 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
552 12 6 for (int32_t i = 0; i < length; i++) {
554 12 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
556 0 12 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 12 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
560 0 12 elems[i] = (int32_t)(uint32_t)SvUV(sv_elem);
580 46 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
584 46 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
587 6 40 if (SvOK(sv_array)) {
6 0 if (SvOK(sv_array)) {
0 6 if (SvOK(sv_array)) {
588 10 30 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
10 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
592 8 2 if (!(strcmp(spvm_array_basic_type_name, "long") == 0 && spvm_array_type_dimension == 1)) {
0 8 if (!(strcmp(spvm_array_basic_type_name, "long") == 0 && spvm_array_type_dimension == 1)) {
597 30 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 28 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
612 70 28 for (int32_t i = 0; i < length; i++) {
614 70 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
616 0 70 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 70 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
620 70 0 elems[i] = (int64_t)SvIV(sv_elem);
640 14 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
644 14 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
647 2 12 if (SvOK(sv_array)) {
2 0 if (SvOK(sv_array)) {
0 2 if (SvOK(sv_array)) {
648 4 8 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
4 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
652 2 2 if (!(strcmp(spvm_array_basic_type_name, "long") == 0 && spvm_array_type_dimension == 1)) {
0 2 if (!(strcmp(spvm_array_basic_type_name, "long") == 0 && spvm_array_type_dimension == 1)) {
657 8 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 6 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
672 12 6 for (int32_t i = 0; i < length; i++) {
674 12 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
676 0 12 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 12 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
680 6 6 elems[i] = (int64_t)(uint64_t)SvUV(sv_elem);
700 50 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
704 50 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
707 6 44 if (SvOK(sv_array)) {
6 0 if (SvOK(sv_array)) {
0 6 if (SvOK(sv_array)) {
708 10 34 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
10 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
712 8 2 if (!(strcmp(spvm_array_basic_type_name, "float") == 0 && spvm_array_type_dimension == 1)) {
0 8 if (!(strcmp(spvm_array_basic_type_name, "float") == 0 && spvm_array_type_dimension == 1)) {
717 34 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 32 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
732 76 32 for (int32_t i = 0; i < length; i++) {
734 76 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
736 0 76 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 76 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
740 38 38 elems[i] = (float)SvNV(sv_elem);
760 46 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
764 46 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
767 6 40 if (SvOK(sv_array)) {
6 0 if (SvOK(sv_array)) {
0 6 if (SvOK(sv_array)) {
768 10 30 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
10 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
772 8 2 if (!(strcmp(spvm_array_basic_type_name, "double") == 0 && spvm_array_type_dimension == 1)) {
0 8 if (!(strcmp(spvm_array_basic_type_name, "double") == 0 && spvm_array_type_dimension == 1)) {
777 30 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 28 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
792 68 28 for (int32_t i = 0; i < length; i++) {
794 68 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
796 0 68 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 0 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
0 68 if (!(SvOK(sv_elem) && !SvROK(sv_elem))) {
800 38 30 elems[i] = (double)SvNV(sv_elem);
820 368 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
824 368 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
827 6 362 if (SvOK(sv_array)) {
6 0 if (SvOK(sv_array)) {
0 6 if (SvOK(sv_array)) {
828 6 356 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
6 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
832 4 2 if (!(strcmp(spvm_array_basic_type_name, "string") == 0 && spvm_array_type_dimension == 1)) {
0 4 if (!(strcmp(spvm_array_basic_type_name, "string") == 0 && spvm_array_type_dimension == 1)) {
837 356 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 354 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
851 119 354 for (int32_t i = 0; i < length; i++) {
853 119 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
857 119 0 if (SvOK(sv_error_elem)) {
119 0 if (SvOK(sv_error_elem)) {
0 119 if (SvOK(sv_error_elem)) {
882 16008 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
886 16008 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
889 4 16004 if (SvOK(sv_array)) {
4 0 if (SvOK(sv_array)) {
0 4 if (SvOK(sv_array)) {
890 428 15576 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
428 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
893 2 426 if (!env->isa(env, stack, spvm_array, basic_type, type_dimension)) {
898 15576 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 15574 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
912 30666 15574 for (int32_t index = 0; index < length; index++) {
914 30666 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
916 2 30664 if (!SvOK(sv_elem)) {
2 0 if (!SvOK(sv_elem)) {
2 0 if (!SvOK(sv_elem)) {
919 30664 0 else if (sv_isobject(sv_elem) && sv_derived_from(sv_elem, "SPVM::BlessedObject")) {
30664 0 else if (sv_isobject(sv_elem) && sv_derived_from(sv_elem, "SPVM::BlessedObject")) {
923 30664 0 if (elem_isa) {
956 32 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
960 32 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
963 0 32 if (SvOK(sv_array)) {
0 0 if (SvOK(sv_array)) {
0 0 if (SvOK(sv_array)) {
964 16 16 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
16 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
966 2 14 if (!env->isa(env, stack, spvm_array, basic_type, type_dimension)) {
971 16 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 14 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
985 24 14 for (int32_t index = 0; index < length; index++) {
987 24 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
989 0 24 if (!SvOK(sv_elem)) {
0 0 if (!SvOK(sv_elem)) {
0 0 if (!SvOK(sv_elem)) {
992 24 0 else if (sv_isobject(sv_elem) && sv_derived_from(sv_elem, "SPVM::BlessedObject")) {
24 0 else if (sv_isobject(sv_elem) && sv_derived_from(sv_elem, "SPVM::BlessedObject")) {
996 24 0 if (elem_isa) {
1029 66 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
1033 66 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
1036 0 66 if (SvOK(sv_array)) {
0 0 if (SvOK(sv_array)) {
0 0 if (SvOK(sv_array)) {
1037 26 40 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
26 0 if (sv_isobject(sv_array) && sv_derived_from(sv_array, "SPVM::BlessedObject::Array")) {
1040 2 24 if (!env->isa(env, stack, spvm_array, basic_type, type_dimension)) {
1045 40 0 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
2 38 else if (!(SvROK(sv_array) && sv_derived_from(sv_array, "ARRAY"))) {
1060 114 38 for (int32_t index = 0; index < length; index++) {
1062 114 0 SV* sv_elem = sv_elem_ptr ? *sv_elem_ptr : &PL_sv_undef;
1064 114 0 if (SvROK(sv_elem) && sv_derived_from(sv_elem, "HASH")) {
114 0 if (SvROK(sv_elem) && sv_derived_from(sv_elem, "HASH")) {
1075 342 114 while (hv_iternext(hv_value)) {
1079 342 114 for (int32_t field_index = 0; field_index < basic_type_fields_length; field_index++) {
1086 342 0 if (sv_field_value_ptr) {
1098 72 0 ((int8_t*)elems)[(fields_length * index) + field_index] = (int8_t)SvIV(sv_field_value);
1102 54 0 ((int16_t*)elems)[(fields_length * index) + field_index] = (int16_t)SvIV(sv_field_value);
1106 54 0 ((int32_t*)elems)[(fields_length * index) + field_index] = (int32_t)SvIV(sv_field_value);
1110 54 0 ((int64_t*)elems)[(fields_length * index) + field_index] = (int64_t)SvIV(sv_field_value);
1114 22 32 ((float*)elems)[(fields_length * index) + field_index] = (float)SvNV(sv_field_value);
1118 22 32 ((double*)elems)[(fields_length * index) + field_index] = (double)SvNV(sv_field_value);
1154 34140 163012 if (sv_isobject(sv_error_ret) && sv_derived_from(sv_error_ret, "SPVM::ExchangeAPI::Error")) {
4 34136 if (sv_isobject(sv_error_ret) && sv_derived_from(sv_error_ret, "SPVM::ExchangeAPI::Error")) {
1166 197152 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
1171 197152 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
1179 197152 0 const char* method_name = SvPV_nolen(sv_method_name);
1185 168926 28226 if (sv_isobject(sv_invocant)) {
1187 168926 0 if (!(sv_isobject(sv_invocant) && sv_derived_from(sv_invocant, "SPVM::BlessedObject::Class"))) {
0 168926 if (!(sv_isobject(sv_invocant) && sv_derived_from(sv_invocant, "SPVM::BlessedObject::Class"))) {
1197 6 168920 if (found_char) {
1198 0 6 if (!(*(found_char - 1) == ':')) {
1206 0 6 if (!static_call_basic_type) {
1211 2 4 if (!isa) {
1222 168922 2 if (method) {
1224 0 168922 if (is_class_method) {
1234 28226 0 basic_type_name = SvPV_nolen(sv_invocant);
1239 28226 0 if (method) {
1241 0 28226 if (!is_class_method) {
1251 2 197148 if (!method) {
1257 28226 168922 if (class_method_call) {
1270 2 197146 if (call_method_args_length < method_required_args_length) {
1273 2 197144 else if (call_method_args_length > method_args_length) {
1282 295305 197056 for (int32_t arg_index = 0; arg_index < method_args_length; arg_index++) {
1285 88 295217 if (arg_type_flag & SPVM_NATIVE_C_TYPE_FLAG_REF) {
1293 295307 196978 for (int32_t arg_index = 0; arg_index < method_args_length; arg_index++) {
1295 36 295271 if (arg_index >= call_method_args_length) {
1314 294347 924 if (arg_type_dimension == 0) {
1315 294253 94 if (arg_type_is_not_ref) {
1318 14 37801 if (!(SvOK(sv_value) && !SvROK(sv_value))) {
14 0 if (!(SvOK(sv_value) && !SvROK(sv_value))) {
0 14 if (!(SvOK(sv_value) && !SvROK(sv_value))) {
24 37777 if (!(SvOK(sv_value) && !SvROK(sv_value))) {
1325 10 8 int8_t value = (int8_t)SvIV(sv_value);
1331 10 4 int16_t value = (int16_t)SvIV(sv_value);
1337 37115 10 int32_t value = (int32_t)SvIV(sv_value);
1343 516 6 int64_t value = (int64_t)SvIV(sv_value);
1349 36 12 float value = (float)SvNV(sv_value);
1355 38 12 double value = (double)SvNV(sv_value);
1370 53800 2 if (SvOK(sv_error)) {
53800 0 if (SvOK(sv_error)) {
0 53800 if (SvOK(sv_error)) {
1371 2 0 croak("The %dth argument of the \"%s\" method in the \"%s\" class%s\n %s at %s line %d\n", arg_index_nth, method_name, basic_type_name, SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
1383 0 22 if (!SvOK(sv_value)) {
0 0 if (!SvOK(sv_value)) {
0 0 if (!SvOK(sv_value)) {
1389 18 4 if (sv_isobject(sv_value) && sv_derived_from(sv_value, "SPVM::BlessedObject")) {
18 0 if (sv_isobject(sv_value) && sv_derived_from(sv_value, "SPVM::BlessedObject")) {
1392 2 2 else if (created_as_string) {
1395 2 0 const char* string = SvPV(sv_value, length);
1413 2 202574 if (!SvOK(sv_value)) {
2 0 if (!SvOK(sv_value)) {
2 0 if (!SvOK(sv_value)) {
1416 202574 0 else if (sv_isobject(sv_value) && sv_derived_from(sv_value, "SPVM::BlessedObject::Class")) {
202574 0 else if (sv_isobject(sv_value) && sv_derived_from(sv_value, "SPVM::BlessedObject::Class")) {
1419 0 202574 if (!env->isa(env, stack, spvm_value, arg_basic_type, arg_type_dimension)) {
1427 0 202576 if (error) {
1442 26 12 if (!(SvROK(sv_value) && sv_derived_from(sv_value, "HASH"))) {
0 26 if (!(SvROK(sv_value) && sv_derived_from(sv_value, "HASH"))) {
1454 76 14 for (int32_t field_index = 0; field_index < arg_basic_type_fields_length; field_index++) {
1459 64 12 if (sv_field_value_ptr) {
1471 10 0 int8_t value = (int8_t)SvIV(sv_field_value);
1477 10 0 int16_t value = (int16_t)SvIV(sv_field_value);
1483 10 0 int32_t value = (int32_t)SvIV(sv_field_value);
1489 10 0 int64_t value = (int64_t)SvIV(sv_field_value);
1495 2 8 float value = (float)SvNV(sv_field_value);
1501 2 12 double value = (double)SvNV(sv_field_value);
1524 42 12 if (!(SvROK(sv_value) && sv_derived_from(sv_value , "SCALAR"))) {
12 30 if (!(SvROK(sv_value) && sv_derived_from(sv_value , "SCALAR"))) {
1533 2 4 int8_t value = (int8_t)SvIV(sv_value_deref);
1536 6 0 int8_t* ref = (int8_t*)SvPV_nolen(sv_ref);
1545 2 2 int16_t value = (int16_t)SvIV(sv_value_deref);
1548 4 0 int16_t* ref = (int16_t*)SvPV_nolen(sv_ref);
1557 6 2 int32_t value = (int32_t)SvIV(sv_value_deref);
1560 8 0 int32_t* ref = (int32_t*)SvPV_nolen(sv_ref);
1569 2 2 int64_t value = (int64_t)SvIV(sv_value_deref);
1572 4 0 int64_t* ref = (int64_t*)SvPV_nolen(sv_ref);
1581 2 2 float value = (float)SvNV(sv_value_deref);
1584 4 0 float* ref = (float*)SvPV_nolen(sv_ref);
1593 2 2 double value = (double)SvNV(sv_value_deref);
1596 4 0 double* ref = (double*)SvPV_nolen(sv_ref);
1612 40 0 if (!(SvROK(sv_value) && SvROK(SvRV(sv_value)) && sv_derived_from(SvRV(sv_value) , "HASH"))) {
28 12 if (!(SvROK(sv_value) && SvROK(SvRV(sv_value)) && sv_derived_from(SvRV(sv_value) , "HASH"))) {
0 28 if (!(SvROK(sv_value) && SvROK(SvRV(sv_value)) && sv_derived_from(SvRV(sv_value) , "HASH"))) {
1628 4 0 int8_t* ref = (int8_t*)SvPV_nolen(sv_ref);
1636 4 0 int16_t* ref = (int16_t*)SvPV_nolen(sv_ref);
1644 8 0 int32_t* ref = (int32_t*)SvPV_nolen(sv_ref);
1652 4 0 int64_t* ref = (int64_t*)SvPV_nolen(sv_ref);
1660 4 0 float* ref = (float*)SvPV_nolen(sv_ref);
1668 4 0 double* ref = (double*)SvPV_nolen(sv_ref);
1679 84 16 for (int32_t field_index = 0; field_index < arg_basic_type_fields_length; field_index++) {
1684 72 12 if (sv_field_value_ptr) {
1694 10 0 int8_t value = (int8_t)SvIV(sv_field_value);
1697 10 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
1698 10 0 int8_t* ref = (int8_t*)SvPV_nolen(sv_ref);
1705 10 0 int16_t value = (int16_t)SvIV(sv_field_value);
1708 10 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
1709 10 0 int16_t* ref = (int16_t*)SvPV_nolen(sv_ref);
1716 22 0 int32_t value = (int32_t)SvIV(sv_field_value);
1719 22 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
1720 22 0 int32_t* ref = (int32_t*)SvPV_nolen(sv_ref);
1727 10 0 int64_t value = (int64_t)SvIV(sv_field_value);
1730 10 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
1731 10 0 int64_t* ref = (int64_t*)SvPV_nolen(sv_ref);
1738 4 6 float value = (float)SvNV(sv_field_value);
1741 10 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
1742 10 0 float* ref = (float*)SvPV_nolen(sv_ref);
1749 4 6 double value = (double)SvNV(sv_field_value);
1752 10 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
1753 10 0 double* ref = (double*)SvPV_nolen(sv_ref);
1773 910 14 else if (arg_type_dimension == 1) {
1814 98 2 if (SvOK(sv_error)) {
98 0 if (SvOK(sv_error)) {
0 98 if (SvOK(sv_error)) {
1815 2 0 croak("The %dth argument of the \"%s\" method in the \"%s\" class%s\n %s at %s line %d\n", arg_index_nth, method_name, basic_type_name, SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
1830 36 0 if (SvOK(sv_error)) {
36 0 if (SvOK(sv_error)) {
0 36 if (SvOK(sv_error)) {
1831 0 0 croak("The %dth argument of the \"%s\" method in the \"%s\" class%s\n %s at %s line %d\n", arg_index_nth, method_name, basic_type_name, SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
1846 346 0 if (SvOK(sv_error)) {
346 0 if (SvOK(sv_error)) {
0 346 if (SvOK(sv_error)) {
1847 0 0 croak("The %dth argument of the \"%s\" method in the \"%s\" class%s\n %s at %s line %d\n", arg_index_nth, method_name, basic_type_name, SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
1865 428 0 if (SvOK(sv_error)) {
428 0 if (SvOK(sv_error)) {
0 428 if (SvOK(sv_error)) {
1866 0 0 croak("The %dth argument of the \"%s\" method in the \"%s\" class%s\n %s at %s line %d\n", arg_index_nth, method_name, basic_type_name, SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
1881 14 0 else if (arg_type_dimension > 1) {
1888 14 0 if (SvOK(sv_error)) {
14 0 if (SvOK(sv_error)) {
0 14 if (SvOK(sv_error)) {
1889 0 0 croak("The %dth argument of the \"%s\" method in the \"%s\" class%s\n %s at %s line %d\n", arg_index_nth, method_name, basic_type_name, SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
1915 32 196996 if (error_id) {
1916 28 4 if (SvOK(sv_error_ret)) {
28 0 if (SvOK(sv_error_ret)) {
0 28 if (SvOK(sv_error_ret)) {
1926 32 0 croak("%s\n %s at %s line %d\n", SvPV_nolen(sv_exception), __func__, FILE_NAME, __LINE__);
1931 181142 15854 if (method_return_type_dimension == 0) {
1985 76 26 for (int32_t field_index = 0; field_index < method_return_basic_type_fields_length; field_index++) {
2034 36497 74 if (return_value != NULL) {
2048 32 4 if (return_value != NULL) {
2051 6 26 if (return_value_type_dimension > 0) {
2055 6 20 if (strcmp(return_value_basic_type_name, "string") == 0) {
2074 80236 490 if (return_value != NULL) {
2088 15854 0 else if (method_return_type_dimension > 0) {
2092 15846 8 if (return_value != NULL) {
2101 40 196956 if (has_ref_arg) {
2102 46 40 for (int32_t arg_index = 0; arg_index < method_args_length; arg_index++) {
2114 46 0 if (arg_type_flag & SPVM_NATIVE_C_TYPE_FLAG_REF) {
2122 6 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2123 6 0 int8_t* ref = (int8_t*)SvPV_nolen(sv_ref);
2132 4 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2133 4 0 int16_t* ref = (int16_t*)SvPV_nolen(sv_ref);
2142 8 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2143 8 0 int32_t* ref = (int32_t*)SvPV_nolen(sv_ref);
2152 4 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2153 4 0 int64_t* ref = (int64_t*)SvPV_nolen(sv_ref);
2162 4 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2163 4 0 float* ref = (float*)SvPV_nolen(sv_ref);
2172 4 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2173 4 0 double* ref = (double*)SvPV_nolen(sv_ref);
2192 48 16 for (int32_t field_index = 0; field_index < arg_basic_type_fields_length; field_index++) {
2200 6 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2201 6 0 int8_t* ref = (int8_t*)SvPV_nolen(sv_ref);
2209 6 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2210 6 0 int16_t* ref = (int16_t*)SvPV_nolen(sv_ref);
2218 18 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2219 18 0 int32_t* ref = (int32_t*)SvPV_nolen(sv_ref);
2227 6 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2228 6 0 int64_t* ref = (int64_t*)SvPV_nolen(sv_ref);
2236 6 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2237 6 0 float* ref = (float*)SvPV_nolen(sv_ref);
2245 6 0 SV* sv_ref = sv_ref_ptr ? *sv_ref_ptr : &PL_sv_undef;
2246 6 0 double* ref = (double*)SvPV_nolen(sv_ref);
2268 181142 15854 if (method_return_type_dimension == 0 && method_return_basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_VOID) {
37542 143600 if (method_return_type_dimension == 0 && method_return_basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_VOID) {
2272 0 159454 XPUSHs(sv_return_value);
2289 6 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2294 6 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2300 2 4 if (SvOK(sv_object)) {
2 0 if (SvOK(sv_object)) {
0 2 if (SvOK(sv_object)) {
2301 2 2 if (!(SvROK(sv_object) && sv_derived_from(sv_object, "SPVM::BlessedObject"))) {
0 2 if (!(SvROK(sv_object) && sv_derived_from(sv_object, "SPVM::BlessedObject"))) {
2316 0 4 XPUSHs(sv_dump);
2330 15192 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2335 15192 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2343 15188 4 if (SvOK(sv_error)) {
15188 0 if (SvOK(sv_error)) {
0 15188 if (SvOK(sv_error)) {
2344 4 0 croak("$string%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
2347 0 15188 XPUSHs(sv_string);
2363 30972 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2368 30972 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2376 30972 0 if (SvOK(sv_error)) {
30972 0 if (SvOK(sv_error)) {
0 30972 if (SvOK(sv_error)) {
2377 0 0 croak("$address%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
2380 0 30972 XPUSHs(sv_address);
2394 40 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2399 40 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2407 36 4 if (SvOK(sv_error)) {
36 0 if (SvOK(sv_error)) {
0 36 if (SvOK(sv_error)) {
2408 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
2411 0 36 XPUSHs(sv_array);
2425 14 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2430 14 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2438 10 4 if (SvOK(sv_error)) {
10 0 if (SvOK(sv_error)) {
0 10 if (SvOK(sv_error)) {
2439 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
2442 0 10 XPUSHs(sv_array);
2456 8 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2461 8 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2466 8 0 int32_t length = (int32_t)SvIV(sv_length);
2468 2 6 if (length < 0) {
2476 0 6 XPUSHs(sv_byte_array);
2490 18 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2495 18 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2500 2 16 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 0 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
0 2 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 14 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2505 14 0 int8_t* binary = (int8_t*)SvPV(sv_binary, length);
2515 0 14 XPUSHs(sv_array);
2529 32 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2534 32 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2542 28 4 if (SvOK(sv_error)) {
28 0 if (SvOK(sv_error)) {
0 28 if (SvOK(sv_error)) {
2543 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
2546 0 28 XPUSHs(sv_array);
2560 14 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2565 14 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2573 10 4 if (SvOK(sv_error)) {
10 0 if (SvOK(sv_error)) {
0 10 if (SvOK(sv_error)) {
2574 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
2577 0 10 XPUSHs(sv_array);
2591 8 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2596 8 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2601 8 0 int32_t length = (int32_t)SvIV(sv_length);
2603 2 6 if (length < 0) {
2611 0 6 XPUSHs(sv_short_array);
2625 12 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2630 12 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2635 2 10 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 0 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
0 2 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 8 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2640 8 0 int16_t* binary = (int16_t*)SvPV(sv_binary, binary_length);
2642 2 6 if (!(binary_length % 2 == 0)) {
2656 0 6 XPUSHs(sv_array);
2670 42 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2675 42 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2683 38 4 if (SvOK(sv_error)) {
38 0 if (SvOK(sv_error)) {
0 38 if (SvOK(sv_error)) {
2684 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
2687 0 38 XPUSHs(sv_array);
2701 14 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2706 14 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2714 10 4 if (SvOK(sv_error)) {
10 0 if (SvOK(sv_error)) {
0 10 if (SvOK(sv_error)) {
2715 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
2718 0 10 XPUSHs(sv_array);
2732 8 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2737 8 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2742 8 0 int32_t length = (int32_t)SvIV(sv_length);
2744 2 6 if (length < 0) {
2752 0 6 XPUSHs(sv_int_array);
2766 14 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2771 14 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2776 2 12 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 0 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
0 2 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 10 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2781 10 0 int32_t* binary = (int32_t*)SvPV(sv_binary, binary_length);
2783 2 8 if (!(binary_length % 4 == 0)) {
2796 0 8 XPUSHs(sv_array);
2810 32 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2815 32 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2823 28 4 if (SvOK(sv_error)) {
28 0 if (SvOK(sv_error)) {
0 28 if (SvOK(sv_error)) {
2824 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
2827 0 28 XPUSHs(sv_array);
2841 14 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2846 14 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2854 10 4 if (SvOK(sv_error)) {
10 0 if (SvOK(sv_error)) {
0 10 if (SvOK(sv_error)) {
2855 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
2858 0 10 XPUSHs(sv_array);
2872 8 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2877 8 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2882 8 0 int32_t length = (int32_t)SvIV(sv_length);
2884 2 6 if (length < 0) {
2892 0 6 XPUSHs(sv_long_array);
2906 14 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2911 14 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2916 2 12 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 0 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
0 2 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 10 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2921 10 0 int64_t* binary = (int64_t*)SvPV(sv_binary, binary_length);
2923 2 8 if (!(binary_length % 8 == 0)) {
2937 0 8 XPUSHs(sv_array);
2951 34 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2956 34 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2964 30 4 if (SvOK(sv_error)) {
30 0 if (SvOK(sv_error)) {
0 30 if (SvOK(sv_error)) {
2965 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
2968 0 30 XPUSHs(sv_array);
2982 8 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
2987 8 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
2992 8 0 int32_t length = (int32_t)SvIV(sv_length);
2994 2 6 if (length < 0) {
3002 0 6 XPUSHs(sv_float_array);
3016 14 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3021 14 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3026 2 12 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 0 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
0 2 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 10 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
3031 10 0 float* binary = (float*)SvPV(sv_binary, binary_length);
3033 2 8 if (!(binary_length % 4 == 0)) {
3047 0 8 XPUSHs(sv_array);
3061 32 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3066 32 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3074 28 4 if (SvOK(sv_error)) {
28 0 if (SvOK(sv_error)) {
0 28 if (SvOK(sv_error)) {
3075 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
3078 0 28 XPUSHs(sv_array);
3092 8 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3097 8 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3102 8 0 int32_t length = (int32_t)SvIV(sv_length);
3104 2 6 if (length < 0) {
3112 0 6 XPUSHs(sv_double_array);
3126 12 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3131 12 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3136 2 10 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 0 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
0 2 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 8 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
3141 8 0 double* binary = (double*)SvPV(sv_binary, binary_length);
3143 2 6 if (!(binary_length % 8 == 0)) {
3156 0 6 XPUSHs(sv_array);
3170 22 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3175 22 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3183 18 4 if (SvOK(sv_error)) {
18 0 if (SvOK(sv_error)) {
0 18 if (SvOK(sv_error)) {
3184 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
3187 0 18 XPUSHs(sv_array);
3201 8 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3206 8 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3211 8 0 int32_t length = (int32_t)SvIV(sv_length);
3213 2 6 if (length < 0) {
3221 0 6 XPUSHs(sv_array);
3235 15584 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3240 15584 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3246 15584 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
3248 2 15582 if (!basic_type) {
3254 2 15580 if (!is_object_array) {
3261 15576 4 if (SvOK(sv_error)) {
15576 0 if (SvOK(sv_error)) {
0 15576 if (SvOK(sv_error)) {
3262 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
3265 0 15576 XPUSHs(sv_array);
3279 16 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3284 16 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3290 16 0 int32_t length = (int32_t)SvIV(sv_length);
3292 2 14 if (length < 0) {
3297 14 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
3300 2 12 if (!basic_type) {
3306 2 10 if (!is_object_array) {
3314 0 10 XPUSHs(sv_array);
3328 34 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3333 34 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3339 34 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
3342 2 32 if (!basic_type) {
3348 2 30 if (!is_mulnum_array) {
3355 26 4 if (SvOK(sv_error)) {
26 0 if (SvOK(sv_error)) {
0 26 if (SvOK(sv_error)) {
3356 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
3359 0 26 XPUSHs(sv_array);
3373 12 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3378 12 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3384 12 0 int32_t length = (int32_t)SvIV(sv_length);
3386 2 10 if (length < 0) {
3390 10 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
3393 2 8 if (!basic_type) {
3400 2 6 if (!is_mulnum_array) {
3408 0 6 XPUSHs(sv_array);
3422 24 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3427 24 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3433 2 22 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 0 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
0 2 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
2 20 if (!(SvOK(sv_binary) && !SvROK(sv_binary))) {
3437 20 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
3440 20 0 void* binary = (void*)SvPV(sv_binary, binary_length);
3446 2 18 if (!basic_type) {
3454 2 16 if (!is_mulnum_array) {
3496 2 14 if (binary_length % (field_size * fields_length) != 0) {
3510 4 0 if (array_length > 0) {
3517 2 0 if (array_length > 0) {
3524 2 0 if (array_length > 0) {
3531 2 0 if (array_length > 0) {
3538 2 0 if (array_length > 0) {
3545 2 0 if (array_length > 0) {
3556 0 14 XPUSHs(sv_array);
3570 20 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3575 20 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3582 20 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
3584 2 18 if (!basic_type) {
3588 18 0 int32_t type_dimension = (int32_t)SvIV(sv_type_dimension);
3593 14 4 if (SvOK(sv_error)) {
14 0 if (SvOK(sv_error)) {
0 14 if (SvOK(sv_error)) {
3594 4 0 croak("$array%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
3597 0 14 XPUSHs(sv_array);
3611 12 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3616 12 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3623 12 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
3625 2 10 if (!basic_type) {
3629 10 0 int32_t type_dimension = (int32_t)SvIV(sv_type_dimension);
3631 10 0 int32_t length = (int32_t)SvIV(sv_length);
3633 2 8 if (length < 0) {
3641 0 8 XPUSHs(sv_array);
3655 6 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3660 6 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3666 4 2 if (str_exception) {
3673 0 6 XPUSHs(sv_exception);
3687 22 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3692 22 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3700 20 2 if (SvOK(sv_error)) {
20 0 if (SvOK(sv_error)) {
0 20 if (SvOK(sv_error)) {
3701 2 0 croak("$message%s\n %s at %s line %d\n", SvPV_nolen(sv_error), __func__, FILE_NAME, __LINE__);
3721 548 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3726 548 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3732 0 548 XPUSHs(sv_memory_blocks_count);
3746 349347 0 SV* sv_spvm_object = sv_spvm_object_ptr ? *sv_spvm_object_ptr : &PL_sv_undef;
3747 349347 0 void** spvm_object_ref = (void**)SvPV_nolen(sv_spvm_object);
3750 349347 0 SV* sv_api = sv_api_ptr ? *sv_api_ptr : &PL_sv_undef;
3754 349347 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3759 349347 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3777 92 0 SV* sv_api = sv_api_ptr ? *sv_api_ptr : &PL_sv_undef;
3782 92 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3787 92 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3803 0 92 XPUSHs(sv_type_name);
3819 96518 0 SV* sv_api = sv_api_ptr ? *sv_api_ptr : &PL_sv_undef;
3824 96518 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3829 96518 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3842 0 96518 XPUSHs(sv_return_value);
3858 20 0 SV* sv_api = sv_api_ptr ? *sv_api_ptr : &PL_sv_undef;
3863 20 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3868 20 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3883 0 20 XPUSHs(sv_length);
3897 20790 0 SV* sv_api = sv_api_ptr ? *sv_api_ptr : &PL_sv_undef;
3902 20790 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
3907 20790 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
3922 0 20790 if (!basic_type) {
3932 20790 0 if (is_array_type) {
3938 30 20760 if (array_is_mulnum_array) {
3940 82 30 for (int32_t index = 0; index < length; index++) {
3947 246 82 for (int32_t field_index = 0; field_index < basic_type_fields_length; field_index++) {
3996 20640 120 else if (array_is_object_array) {
3997 20600 40 if (basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_STRING) {
3998 101479 20600 for (int32_t i = 0; i < length; i++) {
4002 101473 6 if (object != NULL) {
4013 84 40 for (int32_t index = 0; index < length; index++) {
4016 18 66 if (value == NULL) {
4022 24 42 if (elem_type_is_array_type) {
4037 72 28 for (int32_t i = 0; i < length; i++) {
4045 46 18 for (int32_t i = 0; i < length; i++) {
4053 64 24 for (int32_t i = 0; i < length; i++) {
4061 46 18 for (int32_t i = 0; i < length; i++) {
4069 40 16 for (int32_t i = 0; i < length; i++) {
4077 40 16 for (int32_t i = 0; i < length; i++) {
4091 0 20790 XPUSHs(sv_values);
4105 46 0 SV* sv_api = sv_api_ptr ? *sv_api_ptr : &PL_sv_undef;
4110 46 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
4115 46 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
4130 0 46 if (!basic_type) {
4139 46 0 if (is_array_type) {
4145 12 34 if (array_is_mulnum_array) {
4195 0 34 else if (array_is_object_array) {
4243 0 46 XPUSHs(sv_binary);
4257 12 0 SV* sv_api = sv_api_ptr ? *sv_api_ptr : &PL_sv_undef;
4262 12 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
4267 12 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
4274 12 0 int32_t index = (int32_t)SvIV(sv_index);
4283 12 0 if (!(index >= 0 && index < length)) {
0 12 if (!(index >= 0 && index < length)) {
4289 0 12 if (!basic_type) {
4295 12 0 if (type_dimension == 1) {
4299 2 0 int8_t elem = (int8_t)SvIV(sv_elem);
4310 2 0 int16_t elem = (int16_t)SvIV(sv_elem);
4320 2 0 int32_t elem = (int32_t)SvIV(sv_elem);
4330 2 0 int64_t elem = (int64_t)SvIV(sv_elem);
4340 2 0 float elem = (float)SvNV(sv_elem);
4350 2 0 double elem = (double)SvNV(sv_elem);
4366 0 0 else if (type_dimension > 1) {
4372 0 0 if (!elem_isa) {
4395 12 0 SV* sv_api = sv_api_ptr ? *sv_api_ptr : &PL_sv_undef;
4400 12 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
4405 12 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
4411 12 0 int32_t index = (int32_t)SvIV(sv_index);
4420 12 0 if (!(index >= 0 && index < length)) {
0 12 if (!(index >= 0 && index < length)) {
4426 0 12 if (!basic_type) {
4435 12 0 if (type_dimension == 1) {
4484 0 0 else if (type_dimension > 1) {
4488 0 12 if (elem_is_object) {
4497 0 0 if (elem_type_dimension == 0) {
4500 0 0 else if (elem_type_dimension > 0) {
4505 0 12 XPUSHs(sv_elem);
4526 18 0 SV* sv_api = sv_api_ptr ? *sv_api_ptr : &PL_sv_undef;
4531 18 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;
4536 18 0 SV* sv_stack = sv_stack_ptr ? *sv_stack_ptr : &PL_sv_undef;
4543 0 18 XPUSHs(sv_basic_type_name);
4559 1155 0 SV* sv_env_api = sv_env_api_ptr ? *sv_env_api_ptr : &PL_sv_undef;
4579 1155 0 SV* sv_env_api = sv_env_api_ptr ? *sv_env_api_ptr : &PL_sv_undef;
4606 0 0 const char* class_name = SvPV_nolen(sv_class_name);
4609 0 0 SV* sv_env_api = sv_env_api_ptr ? *sv_env_api_ptr : &PL_sv_undef;
4610 0 0 SPVM_ENV* env_api = INT2PTR(SPVM_ENV*, SvIV(SvRV(sv_env_api)));
4616 0 0 if (class_file) {
4622 0 0 if (file) {
4628 0 0 if (dir) {
4634 0 0 if (rel_file) {
4640 0 0 if (content) {
4652 0 0 XPUSHs(sv_class_file);
4673 2835 0 SV* sv_include_dirs = sv_include_dirs_ptr ? *sv_include_dirs_ptr : &PL_sv_undef;
4676 2835 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
4679 2835 0 const char* start_file = SvPV_nolen(sv_start_file);
4682 2479 356 int32_t start_line = (int32_t)SvIV(sv_start_line);
4685 2835 0 SV* sv_env_api = sv_env_api_ptr ? *sv_env_api_ptr : &PL_sv_undef;
4696 0 2835 if (SvOK(sv_include_dirs)) {
0 0 if (SvOK(sv_include_dirs)) {
0 0 if (SvOK(sv_include_dirs)) {
4703 31825 2835 for (int32_t i = 0; i < av_include_dirs_length; i++) {
4705 31825 0 SV* sv_include_dir = sv_include_dir_ptr ? *sv_include_dir_ptr : &PL_sv_undef;
4706 31825 0 char* include_dir = SvPV_nolen(sv_include_dir);
4714 2287 548 if (error_id == 0) {
4718 0 2835 XPUSHs(sv_success);
4733 548 0 SV* sv_env_api = sv_env_api_ptr ? *sv_env_api_ptr : &PL_sv_undef;
4743 615 548 for (int32_t i = 0; i < error_messages_length; i++) {
4749 0 548 XPUSHs(sv_error_messages);
4770 2035 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
4773 2035 0 SV* sv_env_api = sv_env_api_ptr ? *sv_env_api_ptr : &PL_sv_undef;
4782 25212 2035 for (int32_t method_index = 0; method_index < methods_length; method_index++) {
4787 0 25212 if (SvOK(sv_category)) {
0 0 if (SvOK(sv_category)) {
0 0 if (SvOK(sv_category)) {
4788 25212 0 if(strEQ(SvPV_nolen(sv_category), "native") && env_api->api->method->is_native(runtime, method)) {
25211 1 if(strEQ(SvPV_nolen(sv_category), "native") && env_api->api->method->is_native(runtime, method)) {
21323 3888 if(strEQ(SvPV_nolen(sv_category), "native") && env_api->api->method->is_native(runtime, method)) {
4791 3889 0 else if (strEQ(SvPV_nolen(sv_category), "precompile") && env_api->api->method->is_precompile(runtime, method)) {
1 3888 else if (strEQ(SvPV_nolen(sv_category), "precompile") && env_api->api->method->is_precompile(runtime, method)) {
0 1 else if (strEQ(SvPV_nolen(sv_category), "precompile") && env_api->api->method->is_precompile(runtime, method)) {
4800 0 2035 XPUSHs(sv_method_names);
4814 0 0 SV* sv_env_api = sv_env_api_ptr ? *sv_env_api_ptr : &PL_sv_undef;
4821 0 0 for (int32_t basic_type_id = 0; basic_type_id < basic_types_length; basic_type_id++) {
4829 0 0 XPUSHs(sv_basic_type_names);
4845 2035 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
4848 2035 0 SV* sv_env_api = sv_env_api_ptr ? *sv_env_api_ptr : &PL_sv_undef;
4856 2035 0 if (basic_type) {
4858 0 2035 if (basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_CLASS || basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_INTERFACE || basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_MULNUM) {
0 0 if (basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_CLASS || basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_INTERFACE || basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_MULNUM) {
0 0 if (basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_CLASS || basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_INTERFACE || basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_MULNUM) {
4861 2035 0 if (class_dir) {
4876 0 2035 XPUSHs(sv_class_file);
4894 21168 0 SV* sv_env_api = sv_env_api_ptr ? *sv_env_api_ptr : &PL_sv_undef;
4898 21168 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
4903 21168 0 const char* method_name = SvPV_nolen(sv_method_name);
4909 21168 0 void* native_address = INT2PTR(void*, SvIV(sv_native_address));
4927 19 0 const char* basic_type_name = SvPV_nolen(sv_basic_type_name);
4930 19 0 SV* sv_env_api = sv_env_api_ptr ? *sv_env_api_ptr : &PL_sv_undef;
4953 0 19 XPUSHs(sv_precompile_source);
4972 1155 336 if (SvOK(sv_compiler)) {
1155 0 if (SvOK(sv_compiler)) {
0 1155 if (SvOK(sv_compiler)) {
4980 0 1491 XPUSHs(sv_self);
5016 0 336 XPUSHs(sv_stack);
5035 336 0 SV* sv_env = sv_env_ptr ? *sv_env_ptr : &PL_sv_undef;