| 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; |