Lines Matching refs:sym

2251 	zend_ffi_symbol *sym = Z_PTR_P(zv);
2252 zend_ffi_type_dtor(sym->type);
2253 efree(sym);
2259 zend_ffi_symbol *sym = Z_PTR_P(zv);
2260 zend_ffi_type_dtor(sym->type);
2261 free(sym);
2366 zend_ffi_symbol *sym = NULL;
2369 sym = zend_hash_find_ptr(ffi->symbols, var_name);
2370 if (sym && sym->kind != ZEND_FFI_SYM_VAR && sym->kind != ZEND_FFI_SYM_CONST && sym->kind != ZEND_FFI_SYM_FUNC) {
2371 sym = NULL;
2374 if (!sym) {
2382 if (sym->kind == ZEND_FFI_SYM_VAR) {
2383 zend_ffi_cdata_to_zval(NULL, sym->addr, ZEND_FFI_TYPE(sym->type), read_type, rv, (zend_ffi_flags)sym->is_const, 0, 0);
2384 } else if (sym->kind == ZEND_FFI_SYM_FUNC) {
2392 new_type->pointer.type = ZEND_FFI_TYPE(sym->type);
2399 cdata->ptr_holder = sym->addr;
2403 ZVAL_LONG(rv, sym->value);
2415 zend_ffi_symbol *sym = NULL;
2418 sym = zend_hash_find_ptr(ffi->symbols, var_name);
2419 if (sym && sym->kind != ZEND_FFI_SYM_VAR) {
2420 sym = NULL;
2423 if (!sym) {
2431 if (sym->is_const) {
2436 zend_ffi_zval_to_cdata(sym->addr, ZEND_FFI_TYPE(sym->type), value);
2771 zend_ffi_symbol *sym = NULL;
2795 sym = zend_hash_find_ptr(ffi->symbols, name);
2796 if (sym && sym->kind != ZEND_FFI_SYM_FUNC) {
2797 sym = NULL;
2800 if (!sym) {
2805 type = ZEND_FFI_TYPE(sym->type);
2829 func->internal_function.reserved[1] = sym->addr;
2916 zend_ffi_symbol *sym;
2918 ZEND_HASH_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) {
2919 if (sym->kind == ZEND_FFI_SYM_VAR) {
2924 sym->addr = addr;
2925 } else if (sym->kind == ZEND_FFI_SYM_FUNC) {
2926 zend_string *mangled_name = zend_ffi_mangled_func_name(name, ZEND_FFI_TYPE(sym->type));
2933 sym->addr = addr;
3033 static int zend_ffi_same_symbols(zend_ffi_symbol *old, zend_ffi_symbol *sym) /* {{{ */
3035 if (old->kind != sym->kind || old->is_const != sym->is_const) {
3040 if (old->value != sym->value) {
3045 return zend_ffi_same_types(ZEND_FFI_TYPE(old->type), ZEND_FFI_TYPE(sym->type));
3103 zend_ffi_symbol *sym;
3107 ZEND_HASH_FOREACH_PTR(FFI_G(symbols), sym) {
3108 zend_ffi_subst_old_type(&sym->type, old, type);
3142 zend_ffi_symbol *sym;
3235 ZEND_HASH_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) {
3236 if (sym->kind == ZEND_FFI_SYM_VAR) {
3249 sym->addr = addr;
3250 } else if (sym->kind == ZEND_FFI_SYM_FUNC) {
3251 zend_string *mangled_name = zend_ffi_mangled_func_name(name, ZEND_FFI_TYPE(sym->type));
3266 sym->addr = addr;
3272 if (zend_ffi_same_symbols(old_sym, sym)) {
3273 if (ZEND_FFI_TYPE_IS_OWNED(sym->type)
3274 && ZEND_FFI_TYPE(old_sym->type) != ZEND_FFI_TYPE(sym->type)) {
3275 zend_ffi_type *type = ZEND_FFI_TYPE(sym->type);
3332 ZEND_HASH_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) {
3333 if (!zend_hash_add_ptr(scope->symbols, name, sym)) {
3334 zend_ffi_type_dtor(sym->type);
3335 free(sym);
3511 zend_ffi_symbol *sym;
3513 ZEND_HASH_FOREACH_STR_KEY_PTR(FFI_G(symbols), key, sym) {
3514 if (type == ZEND_FFI_TYPE(sym->type)) {
5440 zend_ffi_symbol *sym;
5444 sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
5445 if (sym) {
5446 return (sym->kind == ZEND_FFI_SYM_TYPE);
5459 zend_ffi_symbol *sym;
5463 sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
5464 if (sym && sym->kind == ZEND_FFI_SYM_TYPE) {
5465 dcl->type = ZEND_FFI_TYPE(sym->type);;
5466 if (sym->is_const) {
5483 zend_ffi_symbol *sym;
5491 sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
5492 if (sym && sym->kind == ZEND_FFI_SYM_CONST) {
5493 val->i64 = sym->value;
5494 switch (sym->type->kind) {
5543 zend_ffi_symbol *sym;
5638 sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
5639 if (sym) {
5642 sym = pemalloc(sizeof(zend_ffi_symbol), FFI_G(persistent));
5643 sym->kind = ZEND_FFI_SYM_CONST;
5644 sym->type = (zend_ffi_type*)sym_type;
5645 sym->value = value;
5646 zend_hash_str_add_new_ptr(FFI_G(symbols), name, name_len, sym);
6208 zend_ffi_symbol *sym;
6215 sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
6216 if (sym) {
6218 && sym->kind == ZEND_FFI_SYM_TYPE
6219 && zend_ffi_is_same_type(ZEND_FFI_TYPE(sym->type), ZEND_FFI_TYPE(dcl->type))
6220 && sym->is_const == (zend_bool)(dcl->attr & ZEND_FFI_ATTR_CONST)) {
6229 if (sym->kind == ZEND_FFI_SYM_FUNC
6230 && zend_ffi_same_types(ZEND_FFI_TYPE(sym->type), type)) {
6236 if (sym->kind == ZEND_FFI_SYM_VAR
6237 && zend_ffi_is_same_type(ZEND_FFI_TYPE(sym->type), type)
6238 && sym->is_const == (zend_bool)(dcl->attr & ZEND_FFI_ATTR_CONST)) {
6264 sym = pemalloc(sizeof(zend_ffi_symbol), FFI_G(persistent));
6265 sym->kind = ZEND_FFI_SYM_TYPE;
6266 sym->type = dcl->type;
6267 sym->is_const = (zend_bool)(dcl->attr & ZEND_FFI_ATTR_CONST);
6269 zend_hash_str_add_new_ptr(FFI_G(symbols), name, name_len, sym);
6280 sym = pemalloc(sizeof(zend_ffi_symbol), FFI_G(persistent));
6281 sym->kind = (type->kind == ZEND_FFI_TYPE_FUNC) ? ZEND_FFI_SYM_FUNC : ZEND_FFI_SYM_VAR;
6282 sym->type = dcl->type;
6283 sym->is_const = (zend_bool)(dcl->attr & ZEND_FFI_ATTR_CONST);
6285 zend_hash_str_add_new_ptr(FFI_G(symbols), name, name_len, sym);