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