Branch Coverage

lib/SPVM/Builder/src/spvm_api.c
Criterion Covered Total %
branch 546 784 69.6


line true false branch
321 0 119195 if (env == NULL) {
361 24772 488 for (int32_t basic_type_id = 0; basic_type_id < basic_types_length; basic_type_id++) {
363 15304 9468 if (basic_type->init_method) {
367 0 15304 if (error_id) { break; }
378 0 336 if (!obj_program_name) {
383 336 0 if (!(obj_program_name_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_STRING && obj_program_name->type_dimension == 0)) {
0 336 if (!(obj_program_name_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_STRING && obj_program_name->type_dimension == 0)) {
388 0 336 if (error_id) { return error_id; }
397 0 336 if (!obj_argv) {
402 336 0 if (!(obj_argv_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_STRING && obj_argv->type_dimension == 1)) {
0 336 if (!(obj_argv_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_STRING && obj_argv->type_dimension == 1)) {
407 0 336 if (error_id) { return error_id; }
417 0 336 if (error_id) { return error_id; }
428 15283 336 for (int32_t basic_type_id = 0; basic_type_id < runtime->basic_types_length; basic_type_id++) {
431 2314 15283 for (int32_t class_var_index = 0; class_var_index < basic_type->class_vars_length; class_var_index++) {
440 1446 868 if (class_var_type_is_object) {
459 0 4 if (basic_type_name == NULL) {
464 2 2 if (basic_type) {
478 0 282407 if (basic_type_name == NULL) {
493 2 14 if (!method) {
498 0 14 if (*error_id) {
510 2 2 if (!method) {
515 0 2 if (*error_id) {
527 0 348 if (object == NULL) {
532 0 348 if (object->type_dimension > 0) {
538 2 346 if (!method) {
546 2 344 if (*error_id) {
556 2 6 if (!basic_type) {
571 2 233430 if (!basic_type) {
585 0 0 if (!basic_type) {
599 0 0 if (!basic_type) {
614 0 0 if (!basic_type) {
629 0 28 assert(basic_type);
633 28 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 28 assert(class_var->index >= 0 && class_var->index < class_vars_length);
644 0 28 assert(basic_type);
648 28 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 28 assert(class_var->index >= 0 && class_var->index < class_vars_length);
659 0 96 assert(basic_type);
663 96 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 96 assert(class_var->index >= 0 && class_var->index < class_vars_length);
675 0 36 assert(basic_type);
679 36 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 36 assert(class_var->index >= 0 && class_var->index < class_vars_length);
690 0 28 assert(basic_type);
694 28 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 28 assert(class_var->index >= 0 && class_var->index < class_vars_length);
705 0 28 assert(basic_type);
709 28 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 28 assert(class_var->index >= 0 && class_var->index < class_vars_length);
720 0 754 assert(basic_type);
724 754 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 754 assert(class_var->index >= 0 && class_var->index < class_vars_length);
736 0 678 assert(basic_type);
740 678 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 678 assert(class_var->index >= 0 && class_var->index < class_vars_length);
756 0 28 assert(basic_type);
760 28 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 28 assert(class_var->index >= 0 && class_var->index < class_vars_length);
769 0 28 assert(basic_type);
773 28 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 28 assert(class_var->index >= 0 && class_var->index < class_vars_length);
782 0 92 assert(basic_type);
786 92 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 92 assert(class_var->index >= 0 && class_var->index < class_vars_length);
795 0 368 assert(basic_type);
799 368 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 368 assert(class_var->index >= 0 && class_var->index < class_vars_length);
808 0 28 assert(basic_type);
812 28 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 28 assert(class_var->index >= 0 && class_var->index < class_vars_length);
821 0 28 assert(basic_type);
825 28 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 28 assert(class_var->index >= 0 && class_var->index < class_vars_length);
834 0 674 assert(basic_type);
838 674 0 assert(class_var->index >= 0 && class_var->index < class_vars_length);
0 674 assert(class_var->index >= 0 && class_var->index < class_vars_length);
853 0 4 if (!basic_type) {
860 2 2 if (!class_var) {
874 0 4 if (!basic_type) {
881 2 2 if (!class_var) {
895 0 4 if (!basic_type) {
902 2 2 if (!class_var) {
916 0 4 if (!basic_type) {
923 2 2 if (!class_var) {
937 0 4 if (!basic_type) {
944 2 2 if (!class_var) {
958 0 4 if (!basic_type) {
965 2 2 if (!class_var) {
979 0 4 if (!basic_type) {
986 2 2 if (!class_var) {
1006 0 4 if (!basic_type) {
1013 2 2 if (!class_var) {
1026 0 4 if (!basic_type) {
1033 2 2 if (!class_var) {
1046 0 4 if (!basic_type) {
1053 2 2 if (!class_var) {
1066 0 340 if (!basic_type) {
1073 2 338 if (!class_var) {
1086 0 4 if (!basic_type) {
1093 2 2 if (!class_var) {
1106 0 4 if (!basic_type) {
1113 2 2 if (!class_var) {
1126 0 676 if (!basic_type) {
1133 2 674 if (!class_var) {
1262 0 702 if (object == NULL) {
1267 0 702 if (object->type_dimension > 0) {
1273 2 700 if (!field) {
1286 0 12 if (object == NULL) {
1291 0 12 if (object->type_dimension > 0) {
1297 2 10 if (!field) {
1310 0 20 if (object == NULL) {
1315 0 20 if (object->type_dimension > 0) {
1321 2 18 if (!field) {
1334 0 12 if (object == NULL) {
1339 0 12 if (object->type_dimension > 0) {
1345 2 10 if (!field) {
1358 0 12 if (object == NULL) {
1363 0 12 if (object->type_dimension > 0) {
1369 2 10 if (!field) {
1382 0 12 if (object == NULL) {
1387 0 12 if (object->type_dimension > 0) {
1393 2 10 if (!field) {
1406 0 516927 if (object == NULL) {
1411 0 516927 if (object->type_dimension > 0) {
1417 2 516925 if (!field) {
1430 0 346 if (object == NULL) {
1435 0 346 if (object->type_dimension > 0) {
1441 0 346 if (!field) {
1457 0 256439 if (*error_id) { return NULL; }
1459 0 256439 if (!obj_runtime) {
1466 0 256439 if (!runtime) {
1483 2 2 if (!field) {
1489 0 2 if (value == NULL) {
1501 0 16 if (object == NULL) {
1506 0 16 if (object->type_dimension > 0) {
1512 2 14 if (!field) {
1524 0 4 if (object == NULL) {
1529 0 4 if (object->type_dimension > 0) {
1535 2 2 if (!field) {
1547 0 4 if (object == NULL) {
1552 0 4 if (object->type_dimension > 0) {
1558 2 2 if (!field) {
1570 0 4 if (object == NULL) {
1575 0 4 if (object->type_dimension > 0) {
1581 2 2 if (!field) {
1592 0 4 if (object == NULL) {
1597 0 4 if (object->type_dimension > 0) {
1603 2 2 if (!field) {
1615 0 4 if (object == NULL) {
1620 0 4 if (object->type_dimension > 0) {
1626 2 2 if (!field) {
1638 0 233694 if (object == NULL) {
1643 0 233694 if (object->type_dimension > 0) {
1649 2 233692 if (!field) {
1668 0 316 if (message_length > 255) {
1708 0 682 if (native_mortal_stack == NULL) {
1726 682 0 if (mortal_stack != NULL) {
1754 6 2 if (object) {
1767 14348 0 if (object) {
1769 13904 444 is_string = (object_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_STRING && object->type_dimension == 0);
13842 62 is_string = (object_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_STRING && object->type_dimension == 0);
1783 268 2 if (object) {
1785 6 262 if (object_type_dimension == 0) {
1788 254 8 else if (object_type_dimension == 1) {
1791 170 84 switch (object_basic_type_category) {
1802 8 0 else if (object_type_dimension > 1) {
1822 591688 2 if (object) {
1824 460112 131576 if (object_type_dimension == 0) {
1827 131482 94 else if (object_type_dimension == 1) {
1833 94 0 else if (object_type_dimension > 1) {
1852 21024 2 if (object) {
1854 6 21018 if (object_type_dimension == 0) {
1857 20994 24 else if (object_type_dimension == 1) {
1860 100 20894 switch (object_basic_type_category) {
1871 24 0 else if (object_type_dimension > 1) {
1890 8 2 if (object) {
1892 6 2 if (object_type_dimension == 0) {
1896 4 2 switch (object_basic_type_category) {
1922 10 2 if (object) {
1924 8 2 if (object_type_dimension == 0) {
1928 6 2 switch (object_basic_type_category) {
1932 2 4 if (basic_type_is_pointer) {
1961 6726 0 if (array) {
1962 6404 322 if (SPVM_API_is_string(env, stack, array)) {
1965 262 60 else if (SPVM_API_is_object_array(env, stack, array)) {
1968 48 12 else if (SPVM_API_is_numeric_array(env, stack, array)) {
1972 0 48 assert(type_dimension == 1);
1974 28 20 if (array_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_BYTE) {
1977 0 20 else if (array_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_SHORT) {
1980 12 8 else if (array_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_INT || array_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_FLOAT) {
0 12 else if (array_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_INT || array_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_FLOAT) {
1983 12 0 else if (array_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_LONG || array_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_DOUBLE) {
12 0 else if (array_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_LONG || array_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_DOUBLE) {
1990 12 0 else if (SPVM_API_is_mulnum_array(env, stack, array)) {
1993 0 12 assert(type_dimension == 1);
2001 0 12 if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_BYTE) {
2004 0 12 else if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_SHORT) {
2007 12 0 else if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_INT || field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_FLOAT) {
0 12 else if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_INT || field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_FLOAT) {
2010 12 0 else if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_LONG || field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_DOUBLE) {
12 0 else if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_LONG || field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_DOUBLE) {
2040 0 108 assert(object);
2064 96 108 for (dim_index = 0; dim_index < type_dimension; dim_index++) {
2087 2 6 if (type_flag & SPVM_NATIVE_C_TYPE_FLAG_MUTABLE) {
2098 2 6 if (type_flag & SPVM_NATIVE_C_TYPE_FLAG_REF) {
2113 2 6 if (type_flag & SPVM_NATIVE_C_TYPE_FLAG_MUTABLE) {
2121 4 8 for (int32_t type_dimension_index = 0; type_dimension_index < type_dimension; type_dimension_index++) {
2127 2 6 if (type_flag & SPVM_NATIVE_C_TYPE_FLAG_REF) {
2149 0 2056 if (stack[SPVM_API_C_STACK_INDEX_CALL_DEPTH].ival > 100) {
2161 2056 0 if (class_dir) {
2240 0 0 if (string == NULL) {
2249 0 0 for (i = 0; i < string_length; i++) {
2281 982 120 if (string1_length > 0) {
2284 910 192 if (string2_length) {
2351 36 132 if (object == NULL) {
2357 28 104 if (SPVM_API_is_string(env, stack, object)) {
2364 66 38 else if (type_dimension > 0) {
2373 150 66 for (int32_t array_index = 0; array_index < array_length; array_index++) {
2375 176 150 for (int32_t depth_index = 0; depth_index < *depth + 1; depth_index++) {
2379 32 118 if (SPVM_API_is_mulnum_array(env, stack, object)) {
2385 96 32 for (int32_t field_index = 0; field_index < fields_length; field_index++) {
2386 192 96 for (int32_t depth_index = 0; depth_index < *depth + 2; depth_index++) {
2437 32 64 if (field_index == fields_length - 1) {
2447 54 64 else if (SPVM_API_is_numeric_array(env, stack, object)) {
2487 64 0 else if (SPVM_API_is_object_array(env, stack, object)) {
2498 66 84 if (array_index == array_length - 1) {
2506 10 66 for (int32_t depth_index = 0; depth_index < *depth; depth_index++) {
2513 70 66 for (int32_t type_dimension_index = 0; type_dimension_index < type_dimension; type_dimension_index++) {
2525 24 14 if (exists) {
2544 112 14 for (int32_t field_index = 0; field_index < fields_length; field_index++) {
2545 202 112 for (int32_t depth_index = 0; depth_index < *depth + 1; depth_index++) {
2558 100 12 if (field_type_dimension == 0 && field_basic_type_id >= SPVM_NATIVE_C_BASIC_TYPE_ID_BYTE && field_basic_type_id <= SPVM_NATIVE_C_BASIC_TYPE_ID_DOUBLE) {
100 0 if (field_type_dimension == 0 && field_basic_type_id >= SPVM_NATIVE_C_BASIC_TYPE_ID_BYTE && field_basic_type_id <= SPVM_NATIVE_C_BASIC_TYPE_ID_DOUBLE) {
76 24 if (field_type_dimension == 0 && field_basic_type_id >= SPVM_NATIVE_C_BASIC_TYPE_ID_BYTE && field_basic_type_id <= SPVM_NATIVE_C_BASIC_TYPE_ID_DOUBLE) {
2609 14 98 if (field_index == fields_length - 1) {
2617 10 14 for (int32_t depth_index = 0; depth_index < *depth; depth_index++) {
2628 14000 0 if (string && string_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_STRING && string->type_dimension == 0) {
14000 0 if (string && string_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_STRING && string->type_dimension == 0) {
14000 0 if (string && string_basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_STRING && string->type_dimension == 0) {
2636 6396 8 if (string) {
2637 268 6128 if (string->flag & SPVM_OBJECT_C_FLAG_IS_READ_ONLY) {
2753 0 300969 if (!basic_type) {
2757 0 300969 if (basic_type->category != SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_CLASS) {
2766 0 300969 if (!basic_type) {
2800 68831 0 if (bytes != NULL && length > 0) {
68690 141 if (bytes != NULL && length > 0) {
2820 0 159811 if (length < 0) {
2830 159811 0 if (object) {
2831 84936 74875 if (bytes != NULL && length > 0) {
83601 1335 if (bytes != NULL && length > 0) {
2858 0 836 if (length < 0) {
2895 0 706 if (length < 0) {
2940 0 52598 if (!is_object_array) {
2944 0 52598 if (!basic_type) {
2966 0 70 if (type_dimension < 2) {
2969 0 70 else if (basic_type->id == SPVM_NATIVE_C_BASIC_TYPE_ID_ANY_OBJECT) {
2975 0 70 if (!basic_type) {
3005 42 184 if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_BYTE) {
3008 32 152 else if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_SHORT) {
3011 44 108 else if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_INT) {
3014 32 76 else if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_LONG) {
3017 28 48 else if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_FLOAT) {
3020 48 0 else if (field_basic_type_id == SPVM_NATIVE_C_BASIC_TYPE_ID_DOUBLE) {
3045 0 268 if (array == NULL) {
3049 0 268 if (length < 0) {
3179 0 751783 if (!object) {
3185 0 751783 if (object->type_dimension != 0) {
3198 0 3026 if (!basic_type) {
3211 0 108 if (!basic_type) {
3224 0 12957 if (!basic_type) {
3237 58 0 if (method) {
3238 0 58 if (!method->is_class_method) {
3250 2 0 if (method) {
3251 0 2 if (method->is_class_method) {
3267 0 689102 if (!object) {
3276 10 689194 if (!parent_basic_type) {
3282 689092 102 if (method) {
3284 0 689092 if (method->is_class_method) {
3306 0 1978224 assert(size > 0);
3328 1977552 2 if (block) {
3357 0 222 if (!object) {
3365 216 6 if (SPVM_API_is_string(env, stack, object)) {
3373 2 4 else if (SPVM_API_is_numeric_array(env, stack, object) || SPVM_API_is_mulnum_array(env, stack, object)) {
2 0 else if (SPVM_API_is_numeric_array(env, stack, object) || SPVM_API_is_mulnum_array(env, stack, object)) {
3403 34 0 if (string != NULL) {
3404 34 0 if (SPVM_API_is_string(env, stack, string)) {
3405 34 0 if (!SPVM_API_is_read_only(env, stack, string)) {
3408 2 32 if (new_length > length) {
3411 0 32 else if (new_length < 0) {
3417 0 34 if (new_length > length) {
3429 0 107723 assert(array);
3435 0 107723 assert(array_type_dimension > 0);
3444 0 962 assert(object);
3448 958 4 if (object_basic_type->id == basic_type->id && object->type_dimension == type_dimension) {
956 2 if (object_basic_type->id == basic_type->id && object->type_dimension == type_dimension) {
3458 0 820 if (!basic_type) {
3472 222 312349 if (object == NULL) {
3478 0 312349 if (!basic_type) {
3492 0 0 if (!basic_type) {
3505 0 0 if (basic_type_id < 0) {
3516 0 0 if (!basic_type) {
3533 0 8 if (length < 0) {
3537 8 0 if (length == 0) {
3546 8 0 if (status == 0) {
3559 4 0 if (obj_strerror_value) {
3591 0 2 assert(spvm_version_string);
3598 0 2 assert(*end == '\0');
3599 0 2 assert(errno == 0);
3613 0 4 if (!version_string) {
3621 32 4 for (int32_t i = 0; i < version_string_length; i++) {
3623 32 0 if (!(ch == '_')) {
3632 0 4 assert(*end == '\0');
3633 0 4 assert(errno == 0);
3642 518528 0 if (object) {
3661 20 0 if (stack[SPVM_API_C_STACK_INDEX_ENV].oval == env) {
3678 0 2843489 if (stack[SPVM_API_C_STACK_INDEX_CALL_DEPTH].ival > max_call_depth) {
3690 21535 2821954 if (method->is_init) {
3692 12198 9337 if (current_basic_type->initialized) {
3700 2831291 12198 if (!no_need_call) {
3702 1362919 1468372 if (method->is_native) {
3708 368 1362551 if (optional_args_length > 0) {
3719 368 452 if (opcode->id == SPVM_OPCODE_C_ID_END_ARGS) {
3726 2 2 if (stack_index >= args_width) {
3733 2 2 if (stack_index >= args_width) {
3740 8 8 if (stack_index >= args_width) {
3747 2 2 if (stack_index >= args_width) {
3754 2 2 if (stack_index >= args_width) {
3763 2 2 if (stack_index >= args_width) {
3770 16 356 if (stack_index >= args_width) {
3783 0 1362919 assert(native_address != NULL);
3787 1362609 310 if (!error_id) {
3788 306584 1056025 if (method_return_type_is_object) {
3790 305998 586 if (return_object != NULL) {
3806 1362609 310 if (!error_id) {
3807 306584 1056025 if (method_return_type_is_object) {
3809 305998 586 if (return_object != NULL) {
3822 310 1362609 if (error_id && SPVM_API_get_exception(env, stack) == NULL) {
0 310 if (error_id && SPVM_API_get_exception(env, stack) == NULL) {
3830 10737 1457635 if (method_precompile_address) {
3840 62 2831229 if (mortal && method_return_type_is_object) {
6 56 if (mortal && method_return_type_is_object) {
3858 303785 0 if (object != NULL) {
3860 359 303426 if (*current_mortal_stack_top_ptr >= *current_mortal_stack_capacity_ptr) {
3863 0 359 if (new_mortal_stack == NULL) {
3888 303785 1362921 for (mortal_stack_index = original_mortal_stack_top; mortal_stack_index < *current_mortal_stack_top_ptr; mortal_stack_index++) {
3901 830540 1300771 for (int32_t mortal_stack_index = original_mortal_stack_top; mortal_stack_index < *mortal_stack_top_ptr; mortal_stack_index++) {
3904 810029 20511 if (*object_ref != NULL) {
3927 0 4 assert(ref);
3929 0 4 if (*ref == NULL) {
3948 0 384 assert(ref);
3950 2 382 if (*ref == NULL) {
3963 380 2 if (!isweak) {
3967 0 380 assert(ref_count > 0);
3970 2 378 if (ref_count == 1) {
3985 378 0 if (object->weaken_backref_head == NULL) {
3992 0 0 while (weaken_backref_next->next != NULL){
4002 2 380 if (destroied_referent) {
4011 0 5816333 assert(ref);
4013 3948163 1868170 if (*ref == NULL) {
4021 363 1867807 if (isweak) {
4023 0 363 assert(object->weaken_backref_head);
4031 0 363 assert(object->weaken_backref_head);
4033 363 0 while (*weaken_backref_next_ptr != NULL){
4034 363 0 if ((*weaken_backref_next_ptr)->ref == ref) {
4053 0 0 assert(ref);
4055 0 0 if (*ref == NULL) {
4074 15 15 while (weaken_backref_head_cur != NULL){
4093 1868170 3948163 if (object_assign_off) {
4100 0 5816333 assert(!((intptr_t)object & 1));
4103 1868857 3947476 if (object && (object != object_assign_off)) {
1868309 548 if (object && (object != object_assign_off)) {
4114 1868857 3947476 if (object) {
4120 1868857 3947476 if (object) {
4122 1868309 548 if (lock_object_mutex) {
4127 3948163 1868170 if (!object_assign_off) {
4133 0 1868170 assert(object_assign_off_ref_count > 0);
4136 1350314 517856 if (object_assign_off_ref_count > 1) {
4147 52930 464926 if (SPVM_API_is_object_array(env, stack, object_assign_off)) {
4149 2203741 52930 for (int32_t index = 0; index < length; index++) {
4158 300297 164629 if (object_assign_off_basic_type_category == SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_CLASS) {
4163 706 299591 if (object_assign_off_basic_type->destructor_method) {
4177 2 704 if (error_id) {
4191 308185 300297 for (int32_t field_index = 0; field_index < object_assign_off_fields_length; field_index++) {
4199 252297 55888 if (field_type_is_object_assign_off) {
4214 0 517856 if (object_assign_off_ref_count > 0) {
4217 517856 0 else if (object_assign_off_ref_count == 0) {
4220 15 517841 if (object_assign_off->weaken_backref_head != NULL) {
4239 2264601 0 if (object != NULL) {
4241 0 2264601 assert(ref_count >= 0);
4252 2263929 0 if (object != NULL) {
4254 0 2263929 assert(ref_count > 0);