mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
ext/ffi: Reduce scope of variables
This commit is contained in:
parent
e579477490
commit
4059df0f2f
1 changed files with 7 additions and 12 deletions
|
@ -974,9 +974,7 @@ static void zend_ffi_callback_trampoline(ffi_cif* cif, void* ret, void** args, v
|
||||||
}
|
}
|
||||||
|
|
||||||
if (callback_data->arg_count) {
|
if (callback_data->arg_count) {
|
||||||
uint32_t n = 0;
|
for (uint32_t n = 0; n < callback_data->arg_count; n++) {
|
||||||
|
|
||||||
for (n = 0; n < callback_data->arg_count; n++) {
|
|
||||||
zval_ptr_dtor(&fci.params[n]);
|
zval_ptr_dtor(&fci.params[n]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3064,8 +3062,6 @@ ZEND_METHOD(FFI, cdef) /* {{{ */
|
||||||
zend_string *lib = NULL;
|
zend_string *lib = NULL;
|
||||||
zend_ffi *ffi = NULL;
|
zend_ffi *ffi = NULL;
|
||||||
DL_HANDLE handle = NULL;
|
DL_HANDLE handle = NULL;
|
||||||
char *err;
|
|
||||||
void *addr;
|
|
||||||
|
|
||||||
ZEND_FFI_VALIDATE_API_RESTRICTION();
|
ZEND_FFI_VALIDATE_API_RESTRICTION();
|
||||||
ZEND_PARSE_PARAMETERS_START(0, 2)
|
ZEND_PARSE_PARAMETERS_START(0, 2)
|
||||||
|
@ -3077,7 +3073,7 @@ ZEND_METHOD(FFI, cdef) /* {{{ */
|
||||||
if (lib) {
|
if (lib) {
|
||||||
handle = DL_LOAD(ZSTR_VAL(lib));
|
handle = DL_LOAD(ZSTR_VAL(lib));
|
||||||
if (!handle) {
|
if (!handle) {
|
||||||
err = GET_DL_ERROR();
|
char *err = GET_DL_ERROR();
|
||||||
#ifdef PHP_WIN32
|
#ifdef PHP_WIN32
|
||||||
if (err && err[0]) {
|
if (err && err[0]) {
|
||||||
zend_throw_error(zend_ffi_exception_ce, "Failed loading '%s' (%s)", ZSTR_VAL(lib), err);
|
zend_throw_error(zend_ffi_exception_ce, "Failed loading '%s' (%s)", ZSTR_VAL(lib), err);
|
||||||
|
@ -3125,6 +3121,7 @@ ZEND_METHOD(FFI, cdef) /* {{{ */
|
||||||
zend_ffi_symbol *sym;
|
zend_ffi_symbol *sym;
|
||||||
|
|
||||||
ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) {
|
ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) {
|
||||||
|
void *addr;
|
||||||
if (sym->kind == ZEND_FFI_SYM_VAR) {
|
if (sym->kind == ZEND_FFI_SYM_VAR) {
|
||||||
addr = DL_FETCH_SYMBOL(handle, ZSTR_VAL(name));
|
addr = DL_FETCH_SYMBOL(handle, ZSTR_VAL(name));
|
||||||
if (!addr) {
|
if (!addr) {
|
||||||
|
@ -3344,7 +3341,7 @@ static zend_ffi *zend_ffi_load(const char *filename, bool preload) /* {{{ */
|
||||||
{
|
{
|
||||||
struct stat buf;
|
struct stat buf;
|
||||||
int fd;
|
int fd;
|
||||||
char *code, *code_pos, *scope_name, *lib, *err;
|
char *code, *code_pos, *scope_name, *lib;
|
||||||
size_t code_size, scope_name_len;
|
size_t code_size, scope_name_len;
|
||||||
zend_ffi *ffi;
|
zend_ffi *ffi;
|
||||||
DL_HANDLE handle = NULL;
|
DL_HANDLE handle = NULL;
|
||||||
|
@ -3352,7 +3349,6 @@ static zend_ffi *zend_ffi_load(const char *filename, bool preload) /* {{{ */
|
||||||
zend_string *name;
|
zend_string *name;
|
||||||
zend_ffi_symbol *sym;
|
zend_ffi_symbol *sym;
|
||||||
zend_ffi_tag *tag;
|
zend_ffi_tag *tag;
|
||||||
void *addr;
|
|
||||||
|
|
||||||
if (stat(filename, &buf) != 0) {
|
if (stat(filename, &buf) != 0) {
|
||||||
if (preload) {
|
if (preload) {
|
||||||
|
@ -3425,7 +3421,7 @@ static zend_ffi *zend_ffi_load(const char *filename, bool preload) /* {{{ */
|
||||||
if (preload) {
|
if (preload) {
|
||||||
zend_error(E_WARNING, "FFI: Failed pre-loading '%s'", lib);
|
zend_error(E_WARNING, "FFI: Failed pre-loading '%s'", lib);
|
||||||
} else {
|
} else {
|
||||||
err = GET_DL_ERROR();
|
char *err = GET_DL_ERROR();
|
||||||
#ifdef PHP_WIN32
|
#ifdef PHP_WIN32
|
||||||
if (err && err[0]) {
|
if (err && err[0]) {
|
||||||
zend_throw_error(zend_ffi_exception_ce, "Failed loading '%s' (%s)", lib, err);
|
zend_throw_error(zend_ffi_exception_ce, "Failed loading '%s' (%s)", lib, err);
|
||||||
|
@ -3459,6 +3455,7 @@ static zend_ffi *zend_ffi_load(const char *filename, bool preload) /* {{{ */
|
||||||
|
|
||||||
if (FFI_G(symbols)) {
|
if (FFI_G(symbols)) {
|
||||||
ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) {
|
ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(FFI_G(symbols), name, sym) {
|
||||||
|
void *addr;
|
||||||
if (sym->kind == ZEND_FFI_SYM_VAR) {
|
if (sym->kind == ZEND_FFI_SYM_VAR) {
|
||||||
addr = DL_FETCH_SYMBOL(handle, ZSTR_VAL(name));
|
addr = DL_FETCH_SYMBOL(handle, ZSTR_VAL(name));
|
||||||
if (!addr) {
|
if (!addr) {
|
||||||
|
@ -5952,15 +5949,13 @@ void zend_ffi_resolve_typedef(const char *name, size_t name_len, zend_ffi_dcl *d
|
||||||
|
|
||||||
void zend_ffi_resolve_const(const char *name, size_t name_len, zend_ffi_val *val) /* {{{ */
|
void zend_ffi_resolve_const(const char *name, size_t name_len, zend_ffi_val *val) /* {{{ */
|
||||||
{
|
{
|
||||||
zend_ffi_symbol *sym;
|
|
||||||
|
|
||||||
if (UNEXPECTED(FFI_G(attribute_parsing))) {
|
if (UNEXPECTED(FFI_G(attribute_parsing))) {
|
||||||
val->kind = ZEND_FFI_VAL_NAME;
|
val->kind = ZEND_FFI_VAL_NAME;
|
||||||
val->str = name;
|
val->str = name;
|
||||||
val->len = name_len;
|
val->len = name_len;
|
||||||
return;
|
return;
|
||||||
} else if (FFI_G(symbols)) {
|
} else if (FFI_G(symbols)) {
|
||||||
sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
|
zend_ffi_symbol *sym = zend_hash_str_find_ptr(FFI_G(symbols), name, name_len);
|
||||||
if (sym && sym->kind == ZEND_FFI_SYM_CONST) {
|
if (sym && sym->kind == ZEND_FFI_SYM_CONST) {
|
||||||
val->i64 = sym->value;
|
val->i64 = sym->value;
|
||||||
switch (sym->type->kind) {
|
switch (sym->type->kind) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue