static PHP_INI_MH(OnChangeCallback) /* {{{ */ { if (EG(current_execute_data)) { if (Z_TYPE(ASSERTG(callback)) != IS_UNDEF) { zval_ptr_dtor(&ASSERTG(callback)); ZVAL_UNDEF(&ASSERTG(callback)); } if (new_value && (Z_TYPE(ASSERTG(callback)) != IS_UNDEF || ZSTR_LEN(new_value))) { ZVAL_STR_COPY(&ASSERTG(callback), new_value); } } else { if (ASSERTG(cb)) { pefree(ASSERTG(cb), 1); } if (new_value && ZSTR_LEN(new_value)) { ASSERTG(cb) = pemalloc(ZSTR_LEN(new_value) + 1, 1); memcpy(ASSERTG(cb), ZSTR_VAL(new_value), ZSTR_LEN(new_value)); ASSERTG(cb)[ZSTR_LEN(new_value)] = '\0'; } else { ASSERTG(cb) = NULL; } } return SUCCESS; }
static PHP_INI_MH(OnChangeCallback) /* {{{ */ { if (EG(in_execution)) { if (ASSERTG(callback)) { zval_ptr_dtor(&ASSERTG(callback)); ASSERTG(callback) = NULL; } if (new_value && (ASSERTG(callback) || new_value_length)) { MAKE_STD_ZVAL(ASSERTG(callback)); ZVAL_STRINGL(ASSERTG(callback), new_value, new_value_length, 1); } } else { if (ASSERTG(cb)) { pefree(ASSERTG(cb), 1); } if (new_value && new_value_length) { ASSERTG(cb) = pemalloc(new_value_length + 1, 1); memcpy(ASSERTG(cb), new_value, new_value_length); ASSERTG(cb)[new_value_length] = '\0'; } else { ASSERTG(cb) = NULL; } } return SUCCESS; }