Lines Matching refs:FFI_G
1026 if (!FFI_G(callbacks)) { in zend_ffi_create_callback()
1027 FFI_G(callbacks) = emalloc(sizeof(HashTable)); in zend_ffi_create_callback()
1028 zend_hash_init(FFI_G(callbacks), 0, NULL, zend_ffi_callback_hash_dtor, 0); in zend_ffi_create_callback()
1030 zend_hash_next_index_insert_ptr(FFI_G(callbacks), callback_data); in zend_ffi_create_callback()
2883 if (EXPECTED(FFI_G(restriction) > ZEND_FFI_ENABLED)) { in zend_ffi_validate_api_restriction()
2884 ZEND_ASSERT(FFI_G(restriction) == ZEND_FFI_PRELOAD); in zend_ffi_validate_api_restriction()
2885 if (FFI_G(is_cli) in zend_ffi_validate_api_restriction()
2891 } else if (EXPECTED(FFI_G(restriction) == ZEND_FFI_ENABLED)) { in zend_ffi_validate_api_restriction()
2932 FFI_G(symbols) = NULL; in ZEND_METHOD()
2933 FFI_G(tags) = NULL; in ZEND_METHOD()
2937 FFI_G(default_type_attr) = ZEND_FFI_ATTR_STORED; in ZEND_METHOD()
2940 if (FFI_G(symbols)) { in ZEND_METHOD()
2941 zend_hash_destroy(FFI_G(symbols)); in ZEND_METHOD()
2942 efree(FFI_G(symbols)); in ZEND_METHOD()
2943 FFI_G(symbols) = NULL; in ZEND_METHOD()
2945 if (FFI_G(tags)) { in ZEND_METHOD()
2946 zend_hash_destroy(FFI_G(tags)); in ZEND_METHOD()
2947 efree(FFI_G(tags)); in ZEND_METHOD()
2948 FFI_G(tags) = NULL; in ZEND_METHOD()
2953 if (FFI_G(symbols)) { in ZEND_METHOD()
2957 ZEND_HASH_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) { in ZEND_METHOD()
2982 ffi->symbols = FFI_G(symbols); in ZEND_METHOD()
2983 ffi->tags = FFI_G(tags); in ZEND_METHOD()
2985 FFI_G(symbols) = NULL; in ZEND_METHOD()
2986 FFI_G(tags) = NULL; in ZEND_METHOD()
3147 if (FFI_G(symbols)) { in zend_ffi_cleanup_type()
3148 ZEND_HASH_FOREACH_PTR(FFI_G(symbols), sym) { in zend_ffi_cleanup_type()
3152 if (FFI_G(tags)) { in zend_ffi_cleanup_type()
3153 ZEND_HASH_FOREACH_PTR(FFI_G(tags), tag) { in zend_ffi_cleanup_type()
3162 if (!FFI_G(weak_types)) { in zend_ffi_remember_type()
3163 FFI_G(weak_types) = emalloc(sizeof(HashTable)); in zend_ffi_remember_type()
3164 zend_hash_init(FFI_G(weak_types), 0, NULL, zend_ffi_type_hash_dtor, 0); in zend_ffi_remember_type()
3168 zend_hash_next_index_insert_ptr(FFI_G(weak_types), ZEND_FFI_TYPE_MAKE_OWNED(type)); in zend_ffi_remember_type()
3221 FFI_G(symbols) = NULL; in zend_ffi_load()
3222 FFI_G(tags) = NULL; in zend_ffi_load()
3223 FFI_G(persistent) = preload; in zend_ffi_load()
3224 FFI_G(default_type_attr) = preload ? in zend_ffi_load()
3234 FFI_G(persistent) = 0; in zend_ffi_load()
3270 if (FFI_G(scopes)) { in zend_ffi_load()
3271 scope = zend_hash_str_find_ptr(FFI_G(scopes), scope_name, scope_name_len); in zend_ffi_load()
3275 if (FFI_G(symbols)) { in zend_ffi_load()
3276 ZEND_HASH_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) { in zend_ffi_load()
3333 if (scope && scope->tags && FFI_G(tags)) { in zend_ffi_load()
3334 ZEND_HASH_FOREACH_STR_KEY_PTR(FFI_G(tags), name, tag) { in zend_ffi_load()
3358 scope->symbols = FFI_G(symbols); in zend_ffi_load()
3359 scope->tags = FFI_G(tags); in zend_ffi_load()
3361 if (!FFI_G(scopes)) { in zend_ffi_load()
3362 FFI_G(scopes) = malloc(sizeof(HashTable)); in zend_ffi_load()
3363 zend_hash_init(FFI_G(scopes), 0, NULL, zend_ffi_scope_hash_dtor, 1); in zend_ffi_load()
3366 zend_hash_str_add_ptr(FFI_G(scopes), scope_name, scope_name_len, scope); in zend_ffi_load()
3368 if (FFI_G(symbols)) { in zend_ffi_load()
3370 scope->symbols = FFI_G(symbols); in zend_ffi_load()
3371 FFI_G(symbols) = NULL; in zend_ffi_load()
3373 ZEND_HASH_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) { in zend_ffi_load()
3379 FFI_G(symbols)->pDestructor = NULL; in zend_ffi_load()
3380 zend_hash_destroy(FFI_G(symbols)); in zend_ffi_load()
3383 if (FFI_G(tags)) { in zend_ffi_load()
3385 scope->tags = FFI_G(tags); in zend_ffi_load()
3386 FFI_G(tags) = NULL; in zend_ffi_load()
3388 ZEND_HASH_FOREACH_STR_KEY_PTR(FFI_G(tags), name, tag) { in zend_ffi_load()
3394 FFI_G(tags)->pDestructor = NULL; in zend_ffi_load()
3395 zend_hash_destroy(FFI_G(tags)); in zend_ffi_load()
3411 ffi->symbols = FFI_G(symbols); in zend_ffi_load()
3412 ffi->tags = FFI_G(tags); in zend_ffi_load()
3416 FFI_G(symbols) = NULL; in zend_ffi_load()
3417 FFI_G(tags) = NULL; in zend_ffi_load()
3418 FFI_G(persistent) = 0; in zend_ffi_load()
3424 if (FFI_G(symbols)) { in zend_ffi_load()
3425 zend_hash_destroy(FFI_G(symbols)); in zend_ffi_load()
3426 pefree(FFI_G(symbols), preload); in zend_ffi_load()
3427 FFI_G(symbols) = NULL; in zend_ffi_load()
3429 if (FFI_G(tags)) { in zend_ffi_load()
3430 zend_hash_destroy(FFI_G(tags)); in zend_ffi_load()
3431 pefree(FFI_G(tags), preload); in zend_ffi_load()
3432 FFI_G(tags) = NULL; in zend_ffi_load()
3434 FFI_G(persistent) = 0; in zend_ffi_load()
3473 if (FFI_G(scopes)) { in ZEND_METHOD()
3474 scope = zend_hash_find_ptr(FFI_G(scopes), scope_name); in ZEND_METHOD()
3522 if (!FFI_G(allow_vla) && (type->attr & ZEND_FFI_ATTR_VLA)) { in zend_ffi_validate_vla()
3523 …ser_error("\"[*]\" is not allowed in other than function prototype scope at line %d", FFI_G(line)); in zend_ffi_validate_vla()
3533 if (FFI_G(tags)) { in zend_ffi_validate_incomplete_type()
3537 ZEND_HASH_FOREACH_STR_KEY_PTR(FFI_G(tags), key, tag) { in zend_ffi_validate_incomplete_type()
3540 zend_ffi_throw_parser_error("Incomplete enum \"%s\" at line %d", ZSTR_VAL(key), FFI_G(line)); in zend_ffi_validate_incomplete_type()
3542 zend_ffi_throw_parser_error("Incomplete union \"%s\" at line %d", ZSTR_VAL(key), FFI_G(line)); in zend_ffi_validate_incomplete_type()
3544 … zend_ffi_throw_parser_error("Incomplete struct \"%s\" at line %d", ZSTR_VAL(key), FFI_G(line)); in zend_ffi_validate_incomplete_type()
3550 if (FFI_G(symbols)) { in zend_ffi_validate_incomplete_type()
3554 ZEND_HASH_FOREACH_STR_KEY_PTR(FFI_G(symbols), key, sym) { in zend_ffi_validate_incomplete_type()
3556 zend_ffi_throw_parser_error("Incomplete C type %s at line %d", ZSTR_VAL(key), FFI_G(line)); in zend_ffi_validate_incomplete_type()
3561 zend_ffi_throw_parser_error("Incomplete type at line %d", FFI_G(line)); in zend_ffi_validate_incomplete_type()
3564 zend_ffi_throw_parser_error("\"[]\" is not allowed at line %d", FFI_G(line)); in zend_ffi_validate_incomplete_type()
3566 } else if (!FFI_G(allow_vla) && (type->attr & ZEND_FFI_ATTR_VLA)) { in zend_ffi_validate_incomplete_type()
3567 …ser_error("\"[*]\" is not allowed in other than function prototype scope at line %d", FFI_G(line)); in zend_ffi_validate_incomplete_type()
3577 zend_ffi_throw_parser_error("void type is not allowed at line %d", FFI_G(line)); in zend_ffi_validate_type()
3587 zend_ffi_throw_parser_error("function type is not allowed at line %d", FFI_G(line)); in zend_ffi_validate_var_type()
3599 LONGJMP(FFI_G(bailout), FAILURE); in zend_ffi_validate_type_name()
3649 ZEND_HASH_FOREACH_PTR(FFI_G(tags), tag) { in zend_ffi_tags_cleanup()
3656 zend_hash_destroy(FFI_G(tags)); in zend_ffi_tags_cleanup()
3657 efree(FFI_G(tags)); in zend_ffi_tags_cleanup()
3694 FFI_G(symbols) = ffi->symbols; in ZEND_METHOD()
3695 FFI_G(tags) = ffi->tags; in ZEND_METHOD()
3697 FFI_G(symbols) = NULL; in ZEND_METHOD()
3698 FFI_G(tags) = NULL; in ZEND_METHOD()
3700 bool clean_symbols = FFI_G(symbols) == NULL; in ZEND_METHOD()
3701 bool clean_tags = FFI_G(tags) == NULL; in ZEND_METHOD()
3703 FFI_G(default_type_attr) = 0; in ZEND_METHOD()
3707 if (clean_tags && FFI_G(tags)) { in ZEND_METHOD()
3708 zend_hash_destroy(FFI_G(tags)); in ZEND_METHOD()
3709 efree(FFI_G(tags)); in ZEND_METHOD()
3710 FFI_G(tags) = NULL; in ZEND_METHOD()
3712 if (clean_symbols && FFI_G(symbols)) { in ZEND_METHOD()
3713 zend_hash_destroy(FFI_G(symbols)); in ZEND_METHOD()
3714 efree(FFI_G(symbols)); in ZEND_METHOD()
3715 FFI_G(symbols) = NULL; in ZEND_METHOD()
3725 if (clean_tags && FFI_G(tags)) { in ZEND_METHOD()
3728 if (clean_symbols && FFI_G(symbols)) { in ZEND_METHOD()
3729 zend_hash_destroy(FFI_G(symbols)); in ZEND_METHOD()
3730 efree(FFI_G(symbols)); in ZEND_METHOD()
3731 FFI_G(symbols) = NULL; in ZEND_METHOD()
3733 FFI_G(symbols) = NULL; in ZEND_METHOD()
3734 FFI_G(tags) = NULL; in ZEND_METHOD()
3836 FFI_G(symbols) = ffi->symbols; in ZEND_METHOD()
3837 FFI_G(tags) = ffi->tags; in ZEND_METHOD()
3839 FFI_G(symbols) = NULL; in ZEND_METHOD()
3840 FFI_G(tags) = NULL; in ZEND_METHOD()
3842 bool clean_symbols = FFI_G(symbols) == NULL; in ZEND_METHOD()
3843 bool clean_tags = FFI_G(tags) == NULL; in ZEND_METHOD()
3845 FFI_G(default_type_attr) = 0; in ZEND_METHOD()
3849 if (clean_tags && FFI_G(tags)) { in ZEND_METHOD()
3850 zend_hash_destroy(FFI_G(tags)); in ZEND_METHOD()
3851 efree(FFI_G(tags)); in ZEND_METHOD()
3852 FFI_G(tags) = NULL; in ZEND_METHOD()
3854 if (clean_symbols && FFI_G(symbols)) { in ZEND_METHOD()
3855 zend_hash_destroy(FFI_G(symbols)); in ZEND_METHOD()
3856 efree(FFI_G(symbols)); in ZEND_METHOD()
3857 FFI_G(symbols) = NULL; in ZEND_METHOD()
3867 if (clean_tags && FFI_G(tags)) { in ZEND_METHOD()
3870 if (clean_symbols && FFI_G(symbols)) { in ZEND_METHOD()
3871 zend_hash_destroy(FFI_G(symbols)); in ZEND_METHOD()
3872 efree(FFI_G(symbols)); in ZEND_METHOD()
3873 FFI_G(symbols) = NULL; in ZEND_METHOD()
3875 FFI_G(symbols) = NULL; in ZEND_METHOD()
3876 FFI_G(tags) = NULL; in ZEND_METHOD()
4000 FFI_G(symbols) = ffi->symbols; in ZEND_METHOD()
4001 FFI_G(tags) = ffi->tags; in ZEND_METHOD()
4003 FFI_G(symbols) = NULL; in ZEND_METHOD()
4004 FFI_G(tags) = NULL; in ZEND_METHOD()
4006 bool clean_symbols = FFI_G(symbols) == NULL; in ZEND_METHOD()
4007 bool clean_tags = FFI_G(tags) == NULL; in ZEND_METHOD()
4009 FFI_G(default_type_attr) = 0; in ZEND_METHOD()
4013 if (clean_tags && FFI_G(tags)) { in ZEND_METHOD()
4014 zend_hash_destroy(FFI_G(tags)); in ZEND_METHOD()
4015 efree(FFI_G(tags)); in ZEND_METHOD()
4016 FFI_G(tags) = NULL; in ZEND_METHOD()
4018 if (clean_symbols && FFI_G(symbols)) { in ZEND_METHOD()
4019 zend_hash_destroy(FFI_G(symbols)); in ZEND_METHOD()
4020 efree(FFI_G(symbols)); in ZEND_METHOD()
4021 FFI_G(symbols) = NULL; in ZEND_METHOD()
4026 if (clean_tags && FFI_G(tags)) { in ZEND_METHOD()
4029 if (clean_symbols && FFI_G(symbols)) { in ZEND_METHOD()
4030 zend_hash_destroy(FFI_G(symbols)); in ZEND_METHOD()
4031 efree(FFI_G(symbols)); in ZEND_METHOD()
4032 FFI_G(symbols) = NULL; in ZEND_METHOD()
4034 FFI_G(symbols) = NULL; in ZEND_METHOD()
4035 FFI_G(tags) = NULL; in ZEND_METHOD()
5128 FFI_G(restriction) = ZEND_FFI_PRELOAD; in ZEND_INI_MH()
5130 FFI_G(restriction) = (zend_ffi_api_restriction)zend_ini_parse_bool(new_value); in ZEND_INI_MH()
5138 if (FFI_G(restriction) == ZEND_FFI_PRELOAD) { in ZEND_INI_DISP()
5140 } else if (FFI_G(restriction) == ZEND_FFI_ENABLED) { in ZEND_INI_DISP()
5266 FFI_G(is_cli) = strcmp(sapi_module.name, "cli") == 0;
5448 if (FFI_G(preload)) {
5449 if (zend_ffi_preload(FFI_G(preload)) != SUCCESS) {
5461 if (FFI_G(callbacks)) {
5462 zend_hash_destroy(FFI_G(callbacks));
5463 efree(FFI_G(callbacks));
5464 FFI_G(callbacks) = NULL;
5466 if (FFI_G(weak_types)) {
5468 fprintf(stderr, "WeakTypes: %d\n", zend_hash_num_elements(FFI_G(weak_types)));
5470 zend_hash_destroy(FFI_G(weak_types));
5471 efree(FFI_G(weak_types));
5472 FFI_G(weak_types) = NULL;
5624 LONGJMP(FFI_G(bailout), FAILURE);
5708 zend_ffi_parser_error("Unsupported type _Complex at line %d", FFI_G(line));
5711 zend_ffi_parser_error("Unsupported type specifier combination at line %d", FFI_G(line));
5725 if (FFI_G(symbols)) {
5726 sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
5731 type = zend_hash_str_find_ptr(&FFI_G(types), name, name_len);
5744 if (FFI_G(symbols)) {
5745 sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
5754 type = zend_hash_str_find_ptr(&FFI_G(types), name, name_len);
5759 zend_ffi_parser_error("Undefined C type \"%.*s\" at line %d", name_len, name, FFI_G(line));
5767 if (UNEXPECTED(FFI_G(attribute_parsing))) {
5772 } else if (FFI_G(symbols)) {
5773 sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
5805 zend_ffi_type *type = pemalloc(sizeof(zend_ffi_type), FFI_G(persistent));
5807 type->attr = FFI_G(default_type_attr) | (dcl->attr & ZEND_FFI_ENUM_ATTRS);
5873 …rser_error("Enumerator value \"%.*s\" must be an integer at line %d", name_len, name, FFI_G(line));
5878 …zend_ffi_parser_error("Overflow in enumeration values \"%.*s\" at line %d", name_len, name, FFI_G(…
5916 if (!FFI_G(symbols)) {
5917 FFI_G(symbols) = pemalloc(sizeof(HashTable), FFI_G(persistent));
5918 …zend_hash_init(FFI_G(symbols), 0, NULL, FFI_G(persistent) ? zend_ffi_symbol_hash_persistent_dtor :…
5920 sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
5922 zend_ffi_parser_error("Redeclaration of \"%.*s\" at line %d", name_len, name, FFI_G(line));
5924 sym = pemalloc(sizeof(zend_ffi_symbol), FFI_G(persistent));
5928 zend_hash_str_add_new_ptr(FFI_G(symbols), name, name_len, sym);
5935 zend_ffi_type *type = pemalloc(sizeof(zend_ffi_type), FFI_G(persistent));
5937 type->attr = FFI_G(default_type_attr) | (dcl->attr & ZEND_FFI_STRUCT_ATTRS);
5945 …(&type->record.fields, 0, NULL, FFI_G(persistent) ? zend_ffi_field_hash_persistent_dtor :zend_ffi_…
5960 … zend_ffi_throw_parser_error("Flexible array member not at end of struct at line %d", FFI_G(line));
5971 …zend_ffi_throw_parser_error("Struct/union can't contain an instance of itself at line %d", FFI_G(l…
5977 zend_ffi_throw_parser_error("Flexible array member in union at line %d", FFI_G(line));
5996 LONGJMP(FFI_G(bailout), FAILURE);
5999 field = pemalloc(sizeof(zend_ffi_field), FFI_G(persistent));
6023 pefree(field, FFI_G(persistent));
6024 zend_ffi_parser_error("Duplicate field name \"%.*s\" at line %d", name_len, name, FFI_G(line));
6041 zend_ffi_parser_error("Declaration does not declare anything at line %d", FFI_G(line));
6051 LONGJMP(FFI_G(bailout), FAILURE);
6060 zend_ffi_field *new_field = pemalloc(sizeof(zend_ffi_field), FFI_G(persistent));
6077 pefree(new_field, FFI_G(persistent));
6078 zend_ffi_parser_error("Duplicate field name \"%s\" at line %d", ZSTR_VAL(key), FFI_G(line));
6108 LONGJMP(FFI_G(bailout), FAILURE);
6113 … at line %d", name ? name_len : sizeof("<anonymous>")-1, name ? name : "<anonymous>", FFI_G(line));
6119 … at line %d", name ? name_len : sizeof("<anonymous>")-1, name ? name : "<anonymous>", FFI_G(line));
6123 … at line %d", name ? name_len : sizeof("<anonymous>")-1, name ? name : "<anonymous>", FFI_G(line));
6128 … at line %d", name ? name_len : sizeof("<anonymous>")-1, name ? name : "<anonymous>", FFI_G(line));
6134 … at line %d", name ? name_len : sizeof("<anonymous>")-1, name ? name : "<anonymous>", FFI_G(line));
6139 … at line %d", name ? name_len : sizeof("<anonymous>")-1, name ? name : "<anonymous>", FFI_G(line));
6143 … at line %d", name ? name_len : sizeof("<anonymous>")-1, name ? name : "<anonymous>", FFI_G(line));
6146 field = pemalloc(sizeof(zend_ffi_field), FFI_G(persistent));
6190 pefree(field, FFI_G(persistent));
6191 zend_ffi_parser_error("Duplicate field name \"%.*s\" at line %d", name_len, name, FFI_G(line));
6216 zend_ffi_type *type = pemalloc(sizeof(zend_ffi_type), FFI_G(persistent));
6218 type->attr = FFI_G(default_type_attr) | (dcl->attr & ZEND_FFI_POINTER_ATTRS);
6224 LONGJMP(FFI_G(bailout), FAILURE);
6237 zend_ffi_throw_parser_error("Array of functions is not allowed at line %d", FFI_G(line));
6240 …zend_ffi_throw_parser_error("Only the leftmost array can be undimensioned at line %d", FFI_G(line)…
6266 zend_ffi_parser_error("Unsupported array index type at line %d", FFI_G(line));
6271 zend_ffi_parser_error("Negative array index at line %d", FFI_G(line));
6277 LONGJMP(FFI_G(bailout), FAILURE);
6280 type = pemalloc(sizeof(zend_ffi_type), FFI_G(persistent));
6282 type->attr = FFI_G(default_type_attr) | (dcl->attr & ZEND_FFI_ARRAY_ATTRS);
6297 zend_ffi_throw_parser_error("Function returning function is not allowed at line %d", FFI_G(line));
6300 zend_ffi_throw_parser_error("Function returning array is not allowed at line %d", FFI_G(line));
6326 pefree(args, FFI_G(persistent));
6327 zend_ffi_parser_error("void type is not allowed at line %d", FFI_G(line));
6336 pefree(args, FFI_G(persistent));
6356 pefree(args, FFI_G(persistent));
6357 …ble is not allowed at position " ZEND_ULONG_FMT " with __vectorcall at line %d", i+1, FFI_G(line));
6369 pefree(args, FFI_G(persistent));
6371 LONGJMP(FFI_G(bailout), FAILURE);
6374 type = pemalloc(sizeof(zend_ffi_type), FFI_G(persistent));
6376 type->attr = FFI_G(default_type_attr) | (dcl->attr & ZEND_FFI_FUNC_ATTRS);
6430 pefree(args, FFI_G(persistent));
6434 zend_ffi_parser_error("Unsupported calling convention line %d", FFI_G(line));
6450 *args = pemalloc(sizeof(HashTable), FFI_G(persistent));
6451 zend_hash_init(*args, 0, NULL, zend_ffi_type_hash_dtor, FFI_G(persistent));
6460 zend_ffi_type *new_type = pemalloc(sizeof(zend_ffi_type), FFI_G(persistent));
6462 new_type->attr = FFI_G(default_type_attr) | (type->attr & ZEND_FFI_POINTER_ATTRS);
6469 zend_ffi_type *new_type = pemalloc(sizeof(zend_ffi_type), FFI_G(persistent));
6471 new_type->attr = FFI_G(default_type_attr);
6480 pefree(*args, FFI_G(persistent));
6482 LONGJMP(FFI_G(bailout), FAILURE);
6492 if (!FFI_G(symbols)) {
6493 FFI_G(symbols) = pemalloc(sizeof(HashTable), FFI_G(persistent));
6494 …zend_hash_init(FFI_G(symbols), 0, NULL, FFI_G(persistent) ? zend_ffi_symbol_hash_persistent_dtor :…
6497 sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
6527 zend_ffi_parser_error("Redeclaration of \"%.*s\" at line %d", name_len, name, FFI_G(line));
6532 LONGJMP(FFI_G(bailout), FAILURE);
6538 zend_ffi_type *type = pemalloc(sizeof(zend_ffi_type), FFI_G(persistent));
6541 type->attr |= FFI_G(default_type_attr);
6546 sym = pemalloc(sizeof(zend_ffi_symbol), FFI_G(persistent));
6551 zend_hash_str_add_new_ptr(FFI_G(symbols), name, name_len, sym);
6558 LONGJMP(FFI_G(bailout), FAILURE);
6562 sym = pemalloc(sizeof(zend_ffi_symbol), FFI_G(persistent));
6567 zend_hash_str_add_new_ptr(FFI_G(symbols), name, name_len, sym);
6582 if (!FFI_G(tags)) {
6583 FFI_G(tags) = pemalloc(sizeof(HashTable), FFI_G(persistent));
6584 …zend_hash_init(FFI_G(tags), 0, NULL, FFI_G(persistent) ? zend_ffi_tag_hash_persistent_dtor : zend_…
6586 tag = zend_hash_str_find_ptr(FFI_G(tags), name, name_len);
6592 …zend_ffi_parser_error("\"%.*s\" defined as wrong kind of tag at line %d", name_len, name, FFI_G(li…
6595 … zend_ffi_parser_error("Redefinition of \"struct %.*s\" at line %d", name_len, name, FFI_G(line));
6600 …zend_ffi_parser_error("\"%.*s\" defined as wrong kind of tag at line %d", name_len, name, FFI_G(li…
6603 zend_ffi_parser_error("Redefinition of \"union %.*s\" at line %d", name_len, name, FFI_G(line));
6608 …zend_ffi_parser_error("\"%.*s\" defined as wrong kind of tag at line %d", name_len, name, FFI_G(li…
6611 zend_ffi_parser_error("Redefinition of \"enum %.*s\" at line %d", name_len, name, FFI_G(line));
6623 zend_ffi_tag *tag = pemalloc(sizeof(zend_ffi_tag), FFI_G(persistent));
6624 zend_string *tag_name = zend_string_init(name, name_len, FFI_G(persistent));
6649 zend_hash_add_new_ptr(FFI_G(tags), tag_name, tag);
6658 zend_ffi_parser_error("Multiple calling convention specifiers at line %d", FFI_G(line));
6754 zend_ffi_parser_error("Unsupported attribute \"%.*s\" at line %d", name_len, name, FFI_G(line));
6809 zend_ffi_parser_error("Incorrect \"regparam\" value at line %d", FFI_G(line));
6818 zend_ffi_parser_error("Incorrect \"alignment\" value at line %d", FFI_G(line));
6875 zend_ffi_parser_error("Unsupported \"mode\" value at line %d", FFI_G(line));
6878 zend_ffi_parser_error("Unsupported attribute \"%.*s\" at line %d", name_len, name, FFI_G(line));
6894 zend_ffi_parser_error("Incorrect \"alignment\" value at line %d", FFI_G(line));
6955 LONGJMP(FFI_G(bailout), FAILURE);