/* API for registering VOLATILE wrappers */ PHPAPI int php_stream_filter_register_factory_volatile(const char *filterpattern, php_stream_filter_factory *factory) { if (!FG(stream_filters)) { ALLOC_HASHTABLE(FG(stream_filters)); zend_hash_init(FG(stream_filters), zend_hash_num_elements(&stream_filters_hash), NULL, NULL, 1); zend_hash_copy(FG(stream_filters), &stream_filters_hash, NULL); } return zend_hash_str_add_ptr(FG(stream_filters), (char*)filterpattern, strlen(filterpattern), factory) ? SUCCESS : FAILURE; }
static void print_modules(void) /* {{{ */ { HashTable sorted_registry; zend_hash_init(&sorted_registry, 50, NULL, NULL, 0); zend_hash_copy(&sorted_registry, &module_registry, NULL); zend_hash_sort(&sorted_registry, module_name_cmp, 0); zend_hash_apply(&sorted_registry, print_module_info); zend_hash_destroy(&sorted_registry); }
/** * Returns the instance as an array representation * * @return array */ PHP_METHOD(Phalcon_Mvc_Model_Row, toArray) { HashTable *properties; properties = Z_OBJ_HT_P(getThis())->get_properties(getThis()); if (!properties) { RETURN_FALSE; } array_init_size(return_value, zend_hash_num_elements(properties)); zend_hash_copy(Z_ARRVAL_P(return_value), properties, (copy_ctor_func_t)zval_add_ref); }
static HashTable* spl_dllist_object_get_debug_info(zval *obj, int *is_temp) /* {{{{ */ { spl_dllist_object *intern = Z_SPLDLLIST_P(obj); spl_ptr_llist_element *current = intern->llist->head, *next; zval tmp, dllist_array; zend_string *pnstr; int i = 0; *is_temp = 0; if (intern->debug_info == NULL) { ALLOC_HASHTABLE(intern->debug_info); zend_hash_init(intern->debug_info, 1, NULL, ZVAL_PTR_DTOR, 0); } if (intern->debug_info->u.v.nApplyCount == 0) { if (!intern->std.properties) { rebuild_object_properties(&intern->std); } zend_hash_copy(intern->debug_info, intern->std.properties, (copy_ctor_func_t) zval_add_ref); pnstr = spl_gen_private_prop_name(spl_ce_SplDoublyLinkedList, "flags", sizeof("flags")-1); ZVAL_LONG(&tmp, intern->flags); zend_hash_add(intern->debug_info, pnstr, &tmp); zend_string_release(pnstr); array_init(&dllist_array); while (current) { next = current->next; add_index_zval(&dllist_array, i, ¤t->data); if (Z_REFCOUNTED(current->data)) { Z_ADDREF(current->data); } i++; current = next; } pnstr = spl_gen_private_prop_name(spl_ce_SplDoublyLinkedList, "dllist", sizeof("dllist")-1); zend_hash_add(intern->debug_info, pnstr, &dllist_array); zend_string_release(pnstr); } return intern->debug_info; }
static HashTable* spl_heap_object_get_debug_info_helper(zend_class_entry *ce, zval *obj, int *is_temp) { /* {{{ */ spl_heap_object *intern = Z_SPLHEAP_P(obj); zval tmp, heap_array; zend_string *pnstr; int i; *is_temp = 0; if (!intern->std.properties) { rebuild_object_properties(&intern->std); } if (intern->debug_info == NULL) { ALLOC_HASHTABLE(intern->debug_info); ZEND_INIT_SYMTABLE_EX(intern->debug_info, zend_hash_num_elements(intern->std.properties) + 1, 0); } if (intern->debug_info->u.v.nApplyCount == 0) { zend_hash_copy(intern->debug_info, intern->std.properties, (copy_ctor_func_t) zval_add_ref); pnstr = spl_gen_private_prop_name(ce, "flags", sizeof("flags")-1); ZVAL_LONG(&tmp, intern->flags); zend_hash_update(intern->debug_info, pnstr, &tmp); zend_string_release(pnstr); pnstr = spl_gen_private_prop_name(ce, "isCorrupted", sizeof("isCorrupted")-1); ZVAL_BOOL(&tmp, intern->heap->flags&SPL_HEAP_CORRUPTED); zend_hash_update(intern->debug_info, pnstr, &tmp); zend_string_release(pnstr); array_init(&heap_array); for (i = 0; i < intern->heap->count; ++i) { add_index_zval(&heap_array, i, &intern->heap->elements[i]); if (Z_REFCOUNTED(intern->heap->elements[i])) { Z_ADDREF(intern->heap->elements[i]); } } pnstr = spl_gen_private_prop_name(ce, "heap", sizeof("heap")-1); zend_hash_update(intern->debug_info, pnstr, &heap_array); zend_string_release(pnstr); } return intern->debug_info; }
static int http_request_on_query_string(php_http_parser *parser, const char *at, size_t length) { TSRMLS_FETCH_FROM_CTX(sw_thread_ctx ? sw_thread_ctx : NULL); http_client *client = parser->data; char *query = estrndup(at, length); zval *get; MAKE_STD_ZVAL(get); array_init(get); zend_update_property(swoole_http_request_class_entry_ptr, client->zrequest, ZEND_STRL("get"), get TSRMLS_CC); sapi_module.treat_data(PARSE_STRING, query, get TSRMLS_CC); ZEND_SET_SYMBOL(&EG(symbol_table), "_GET", get); zval *_request = zend_read_property(swoole_http_request_class_entry_ptr, client->zrequest, ZEND_STRL("request"), 1 TSRMLS_CC); zend_hash_copy(Z_ARRVAL_P(_request), Z_ARRVAL_P(get), NULL, NULL, sizeof(zval)); return 0; }
/** * Resets the request and internal values to avoid those fields will have any default value */ PHP_METHOD(Phalcon_Tag, resetInput){ zval *value = NULL, *key = NULL; zval *a0 = NULL; zval *g0 = NULL; HashTable *ah0; HashPosition hp0; zval **hd; char *hash_index; uint hash_index_len; ulong hash_num; int hash_type; PHALCON_MM_GROW(); PHALCON_ALLOC_ZVAL_MM(a0); array_init(a0); phalcon_update_static_property(SL("phalcon\\tag"), SL("_displayValues"), a0 TSRMLS_CC); phalcon_get_global(&g0, SL("_POST")+1 TSRMLS_CC); if (!phalcon_valid_foreach(g0 TSRMLS_CC)) { return; } ALLOC_HASHTABLE(ah0); zend_hash_init(ah0, 0, NULL, NULL, 0); zend_hash_copy(ah0, Z_ARRVAL_P(g0), NULL, NULL, sizeof(zval*)); zend_hash_internal_pointer_reset_ex(ah0, &hp0); fes_9b93_0: if(zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) != SUCCESS){ goto fee_9b93_0; } PHALCON_INIT_VAR(key); PHALCON_GET_FOREACH_KEY(key, ah0, hp0); PHALCON_INIT_VAR(value); ZVAL_ZVAL(value, *hd, 1, 0); phalcon_array_unset(g0, key); zend_hash_move_forward_ex(ah0, &hp0); goto fes_9b93_0; fee_9b93_0: zend_hash_destroy(ah0); efree(ah0); PHALCON_MM_RESTORE(); }
static HashTable* spl_dllist_object_get_debug_info(zend_object *obj, int *is_temp) /* {{{{ */ { spl_dllist_object *intern = spl_dllist_from_obj(obj); spl_ptr_llist_element *current = intern->llist->head, *next; zval tmp, dllist_array; zend_string *pnstr; int i = 0; HashTable *debug_info; *is_temp = 1; if (!intern->std.properties) { rebuild_object_properties(&intern->std); } debug_info = zend_new_array(1); zend_hash_copy(debug_info, intern->std.properties, (copy_ctor_func_t) zval_add_ref); pnstr = spl_gen_private_prop_name(spl_ce_SplDoublyLinkedList, "flags", sizeof("flags")-1); ZVAL_LONG(&tmp, intern->flags); zend_hash_add(debug_info, pnstr, &tmp); zend_string_release_ex(pnstr, 0); array_init(&dllist_array); while (current) { next = current->next; add_index_zval(&dllist_array, i, ¤t->data); if (Z_REFCOUNTED(current->data)) { Z_ADDREF(current->data); } i++; current = next; } pnstr = spl_gen_private_prop_name(spl_ce_SplDoublyLinkedList, "dllist", sizeof("dllist")-1); zend_hash_add(debug_info, pnstr, &dllist_array); zend_string_release_ex(pnstr, 0); return debug_info; }
/* {{{ static void yaf_config_ini_zval_deep_copy(zval **p) */ static void yaf_config_ini_zval_deep_copy(zval **p) { zval *value; ALLOC_ZVAL(value); *value = **p; switch (Z_TYPE_PP(p)) { case IS_ARRAY: { array_init(value); zend_hash_copy(Z_ARRVAL_P(value), Z_ARRVAL_PP(p), (copy_ctor_func_t)yaf_config_ini_zval_deep_copy, NULL, sizeof(zval *)); } break; default: zval_copy_ctor(value); Z_TYPE_P(value) = Z_TYPE_PP(p); } INIT_PZVAL(value); *p = value; }
/** * Updates data on a table using custom RBDM SQL syntax * * @param string $table * @param array $fields * @param array $values * @param string $whereCondition * @return boolean */ PHP_METHOD(Phalcon_Db, update){ zval *table = NULL, *fields = NULL, *values = NULL, *where_condition = NULL; zval *placeholders = NULL, *value = NULL, *position = NULL, *field = NULL, *set_clause_part = NULL; zval *comma = NULL, *set_clause = NULL, *update_sql = NULL, *success = NULL; HashTable *ah0; HashPosition hp0; zval **hd; char *hash_index; uint hash_index_len; ulong hash_num; int hash_type; int eval_int; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zzz|z", &table, &fields, &values, &where_condition) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_SEPARATE_PARAM(values); if (!where_condition) { PHALCON_ALLOC_ZVAL_MM(where_condition); ZVAL_NULL(where_condition); } PHALCON_INIT_VAR(placeholders); array_init(placeholders); if (!phalcon_valid_foreach(values TSRMLS_CC)) { return; } ALLOC_HASHTABLE(ah0); zend_hash_init(ah0, 0, NULL, NULL, 0); zend_hash_copy(ah0, Z_ARRVAL_P(values), NULL, NULL, sizeof(zval*)); zend_hash_internal_pointer_reset_ex(ah0, &hp0); ph_cycle_start_0: if(zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) != SUCCESS){ goto ph_cycle_end_0; } PHALCON_INIT_VAR(position); PHALCON_GET_FOREACH_KEY(position, ah0, hp0); PHALCON_GET_FOREACH_VALUE(value); eval_int = phalcon_array_isset(fields, position); if (eval_int) { PHALCON_INIT_VAR(field); phalcon_array_fetch(&field, fields, position, PH_NOISY_CC); if (Z_TYPE_P(value) == IS_OBJECT) { PHALCON_INIT_VAR(set_clause_part); PHALCON_CONCAT_VSV(set_clause_part, field, " = ", value); phalcon_array_append(&placeholders, set_clause_part, PH_SEPARATE TSRMLS_CC); PHALCON_SEPARATE_PARAM(values); phalcon_array_unset(values, position); } else { if (Z_TYPE_P(value) == IS_NULL) { PHALCON_INIT_VAR(set_clause_part); PHALCON_CONCAT_VS(set_clause_part, field, " = null"); PHALCON_SEPARATE_PARAM(values); phalcon_array_unset(values, position); } else { PHALCON_INIT_VAR(set_clause_part); PHALCON_CONCAT_VS(set_clause_part, field, " = ?"); } phalcon_array_append(&placeholders, set_clause_part, PH_SEPARATE TSRMLS_CC); } } else { PHALCON_THROW_EXCEPTION_STR(phalcon_db_exception_ce, "The number of values in the update is not the same as fields"); return; } zend_hash_move_forward_ex(ah0, &hp0); goto ph_cycle_start_0; ph_cycle_end_0: zend_hash_destroy(ah0); efree(ah0); PHALCON_INIT_VAR(comma); ZVAL_STRING(comma, ", ", 1); PHALCON_INIT_VAR(set_clause); phalcon_fast_join(set_clause, comma, placeholders TSRMLS_CC); if (Z_TYPE_P(where_condition) != IS_NULL) { PHALCON_INIT_VAR(update_sql); PHALCON_CONCAT_SVSVSV(update_sql, "UPDATE ", table, " SET ", set_clause, " WHERE ", where_condition); } else { PHALCON_INIT_VAR(update_sql); PHALCON_CONCAT_SVSV(update_sql, "UPDATE ", table, " SET ", set_clause); } PHALCON_INIT_VAR(success); PHALCON_CALL_METHOD_PARAMS_2(success, this_ptr, "execute", update_sql, values, PH_NO_CHECK); RETURN_CCTOR(success); }
/** * Inserts data into a table using custom RBDM SQL syntax * * @param string $table * @param array $values * @param array $fields * @return boolean */ PHP_METHOD(Phalcon_Db, insert){ zval *table = NULL, *values = NULL, *fields = NULL, *number_values = NULL, *exception_message = NULL; zval *exception = NULL, *placeholders = NULL, *value = NULL, *position = NULL; zval *str_value = NULL, *comma = NULL, *joined_values = NULL, *joined_fields = NULL; zval *insert_sql = NULL, *success = NULL; HashTable *ah0; HashPosition hp0; zval **hd; char *hash_index; uint hash_index_len; ulong hash_num; int hash_type; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz|z", &table, &values, &fields) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_SEPARATE_PARAM(values); if (!fields) { PHALCON_ALLOC_ZVAL_MM(fields); ZVAL_NULL(fields); } if (Z_TYPE_P(values) == IS_ARRAY) { PHALCON_INIT_VAR(number_values); phalcon_fast_count(number_values, values TSRMLS_CC); if (phalcon_compare_strict_long(number_values, 0 TSRMLS_CC)) { PHALCON_INIT_VAR(exception_message); PHALCON_CONCAT_SVS(exception_message, "Unable to insert into ", table, " without data"); PHALCON_INIT_VAR(exception); object_init_ex(exception, phalcon_db_exception_ce); PHALCON_CALL_METHOD_PARAMS_1_NORETURN(exception, "__construct", exception_message, PH_CHECK); phalcon_throw_exception(exception TSRMLS_CC); return; } PHALCON_INIT_VAR(placeholders); array_init(placeholders); if (!phalcon_valid_foreach(values TSRMLS_CC)) { return; } ALLOC_HASHTABLE(ah0); zend_hash_init(ah0, 0, NULL, NULL, 0); zend_hash_copy(ah0, Z_ARRVAL_P(values), NULL, NULL, sizeof(zval*)); zend_hash_internal_pointer_reset_ex(ah0, &hp0); ph_cycle_start_0: if(zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) != SUCCESS){ goto ph_cycle_end_0; } PHALCON_INIT_VAR(position); PHALCON_GET_FOREACH_KEY(position, ah0, hp0); PHALCON_GET_FOREACH_VALUE(value); if (Z_TYPE_P(value) == IS_OBJECT) { PHALCON_INIT_VAR(str_value); PHALCON_CALL_FUNC_PARAMS_1(str_value, "strval", value); phalcon_array_append(&placeholders, str_value, PH_SEPARATE TSRMLS_CC); PHALCON_SEPARATE_PARAM(values); phalcon_array_unset(values, position); } else { if (Z_TYPE_P(value) == IS_NULL) { phalcon_array_append_string(&placeholders, SL("null"), PH_SEPARATE TSRMLS_CC); PHALCON_SEPARATE_PARAM(values); phalcon_array_unset(values, position); } else { phalcon_array_append_string(&placeholders, SL("?"), PH_SEPARATE TSRMLS_CC); } } zend_hash_move_forward_ex(ah0, &hp0); goto ph_cycle_start_0; ph_cycle_end_0: zend_hash_destroy(ah0); efree(ah0); PHALCON_INIT_VAR(comma); ZVAL_STRING(comma, ", ", 1); PHALCON_INIT_VAR(joined_values); phalcon_fast_join(joined_values, comma, placeholders TSRMLS_CC); if (Z_TYPE_P(fields) == IS_ARRAY) { PHALCON_INIT_VAR(joined_fields); phalcon_fast_join(joined_fields, comma, fields TSRMLS_CC); PHALCON_INIT_VAR(insert_sql); PHALCON_CONCAT_SVSVSVS(insert_sql, "INSERT INTO ", table, " (", joined_fields, ") VALUES (", joined_values, ")"); } else { PHALCON_INIT_VAR(insert_sql); PHALCON_CONCAT_SVSVS(insert_sql, "INSERT INTO ", table, " VALUES (", joined_values, ")"); } PHALCON_INIT_VAR(success); PHALCON_CALL_METHOD_PARAMS_2(success, this_ptr, "execute", insert_sql, values, PH_NO_CHECK); RETURN_CCTOR(success); } PHALCON_THROW_EXCEPTION_STR(phalcon_db_exception_ce, "The second parameter for insert isn't an Array"); return; }
void zend_copy_constants(HashTable *target, HashTable *source) { zend_constant tmp_constant; zend_hash_copy(target, source, (copy_ctor_func_t) copy_zend_constant, &tmp_constant, sizeof(zend_constant)); }
/** * Inserts data into a table using custom RBDM SQL syntax * * @param string $table * @param array $values * @param array $fields * @return boolean */ PHP_METHOD(Phalcon_Db, insert){ zval *table = NULL, *values = NULL, *fields = NULL, *placeholders = NULL, *value = NULL; zval *n = NULL, *comma = NULL, *joined_values = NULL, *insert_sql = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL, *r4 = NULL; zval *i0 = NULL; HashTable *ah0; HashPosition hp0; zval **hd; char *hash_index; uint hash_index_len; ulong hash_num; int hash_type; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz|z", &table, &values, &fields) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_SEPARATE_PARAM(values); if (!fields) { PHALCON_ALLOC_ZVAL_MM(fields); ZVAL_NULL(fields); } if (Z_TYPE_P(values) == IS_ARRAY) { PHALCON_ALLOC_ZVAL_MM(r0); phalcon_fast_count(r0, values TSRMLS_CC); if (!zend_is_true(r0)) { PHALCON_ALLOC_ZVAL_MM(i0); object_init_ex(i0, phalcon_db_exception_ce); PHALCON_ALLOC_ZVAL_MM(r1); PHALCON_CONCAT_SVS(r1, "Unable to insert into ", table, " without data"); PHALCON_CALL_METHOD_PARAMS_1_NORETURN(i0, "__construct", r1, PH_CHECK); phalcon_throw_exception(i0 TSRMLS_CC); return; } PHALCON_INIT_VAR(placeholders); array_init(placeholders); if (!phalcon_valid_foreach(values TSRMLS_CC)) { return; } ALLOC_HASHTABLE(ah0); zend_hash_init(ah0, 0, NULL, NULL, 0); zend_hash_copy(ah0, Z_ARRVAL_P(values), NULL, NULL, sizeof(zval*)); zend_hash_internal_pointer_reset_ex(ah0, &hp0); fes_e7f0_1: if(zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) != SUCCESS){ goto fee_e7f0_1; } PHALCON_INIT_VAR(n); PHALCON_GET_FOREACH_KEY(n, ah0, hp0); PHALCON_INIT_VAR(value); ZVAL_ZVAL(value, *hd, 1, 0); if (Z_TYPE_P(value) == IS_OBJECT) { PHALCON_INIT_VAR(r2); PHALCON_CALL_FUNC_PARAMS_1(r2, "strval", value); phalcon_array_append(&placeholders, r2, PH_SEPARATE TSRMLS_CC); PHALCON_SEPARATE_PARAM(values); phalcon_array_unset(values, n); } else { phalcon_array_append_string(&placeholders, SL("?"), PH_SEPARATE TSRMLS_CC); } zend_hash_move_forward_ex(ah0, &hp0); goto fes_e7f0_1; fee_e7f0_1: zend_hash_destroy(ah0); efree(ah0); PHALCON_INIT_VAR(comma); ZVAL_STRING(comma, ", ", 1); PHALCON_INIT_VAR(joined_values); phalcon_fast_join(joined_values, comma, placeholders TSRMLS_CC); if (Z_TYPE_P(fields) == IS_ARRAY) { PHALCON_ALLOC_ZVAL_MM(r3); phalcon_fast_join(r3, comma, fields TSRMLS_CC); PHALCON_INIT_VAR(insert_sql); PHALCON_CONCAT_SVSVSVS(insert_sql, "INSERT INTO ", table, " (", r3, ") VALUES (", joined_values, ")"); } else { PHALCON_INIT_VAR(insert_sql); PHALCON_CONCAT_SVSVS(insert_sql, "INSERT INTO ", table, " VALUES (", joined_values, ")"); } PHALCON_ALLOC_ZVAL_MM(r4); PHALCON_CALL_METHOD_PARAMS_2(r4, this_ptr, "execute", insert_sql, values, PH_NO_CHECK); RETURN_CTOR(r4); } PHALCON_THROW_EXCEPTION_STR(phalcon_db_exception_ce, "The second parameter for insert isn't an Array"); return; }
/** * Inserts data into a table using custom RBDM SQL syntax * * * * @param string $table * @param array $values * @param array $fields * @param boolean $automaticQuotes * @return boolean */ PHP_METHOD(Phalcon_Db, insert){ zval *table = NULL, *values = NULL, *fields = NULL, *automatic_quotes = NULL; zval *value = NULL, *key = NULL, *joined_values = NULL, *insert_sql = NULL; zval *r0 = NULL, *r1 = NULL, *r2 = NULL, *r3 = NULL, *r4 = NULL, *r5 = NULL, *r6 = NULL; zval *r7 = NULL, *r8 = NULL, *r9 = NULL, *r10 = NULL; zval *i0 = NULL; zval *c0 = NULL, *c1 = NULL; HashTable *ah0; HashPosition hp0; zval **hd; char *hash_index; uint hash_index_len; ulong hash_num; int hash_type; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz|zz", &table, &values, &fields, &automatic_quotes) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_SEPARATE_PARAM(values); if (!fields) { PHALCON_INIT_VAR(fields); ZVAL_NULL(fields); } if (!automatic_quotes) { PHALCON_INIT_VAR(automatic_quotes); ZVAL_BOOL(automatic_quotes, 0); } if (Z_TYPE_P(values) == IS_ARRAY) { PHALCON_ALLOC_ZVAL_MM(r0); phalcon_fast_count(r0, values TSRMLS_CC); if (!zend_is_true(r0)) { PHALCON_ALLOC_ZVAL_MM(i0); object_init_ex(i0, phalcon_db_exception_ce); PHALCON_ALLOC_ZVAL_MM(r1); PHALCON_CONCAT_SVS(r1, "Unable to insert into ", table, " without data"); PHALCON_CALL_METHOD_PARAMS_1_NORETURN(i0, "__construct", r1, PHALCON_CHECK); phalcon_throw_exception(i0 TSRMLS_CC); return; } else { if (zend_is_true(automatic_quotes)) { if (phalcon_valid_foreach(values TSRMLS_CC)) { ALLOC_HASHTABLE(ah0); zend_hash_init(ah0, 0, NULL, NULL, 0); zend_hash_copy(ah0, Z_ARRVAL_P(values), NULL, NULL, sizeof(zval*)); zend_hash_internal_pointer_reset_ex(ah0, &hp0); fes_e7f0_1: if(zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) != SUCCESS){ goto fee_e7f0_1; } else { PHALCON_INIT_VAR(key); PHALCON_GET_FOREACH_KEY(key, ah0, hp0); } PHALCON_INIT_VAR(value); ZVAL_ZVAL(value, *hd, 1, 0); if (Z_TYPE_P(value) == IS_OBJECT) { PHALCON_INIT_VAR(r2); phalcon_instance_of(r2, value, phalcon_db_rawvalue_ce TSRMLS_CC); if (zend_is_true(r2)) { PHALCON_INIT_VAR(r3); PHALCON_CALL_METHOD_PARAMS_1(r3, this_ptr, "escapestring", value, PHALCON_NO_CHECK); phalcon_array_update(&values, key, &r3, PHALCON_SEPARATE_PLZ, PHALCON_COPY, PHALCON_NO_CTOR TSRMLS_CC); goto fes_e7f0_1; } } PHALCON_INIT_VAR(r4); PHALCON_INIT_VAR(r5); PHALCON_CALL_METHOD_PARAMS_1(r5, this_ptr, "escapestring", value, PHALCON_NO_CHECK); PHALCON_CONCAT_SVS(r4, "'", r5, "'"); phalcon_array_update(&values, key, &r4, PHALCON_SEPARATE_PLZ, PHALCON_COPY, PHALCON_NO_CTOR TSRMLS_CC); zend_hash_move_forward_ex(ah0, &hp0); goto fes_e7f0_1; fee_e7f0_1: zend_hash_destroy(ah0); efree(ah0); } else { return; } } } PHALCON_INIT_VAR(c0); ZVAL_STRING(c0, ", ", 1); PHALCON_ALLOC_ZVAL_MM(r6); phalcon_fast_join(r6, c0, values TSRMLS_CC); PHALCON_CPY_WRT(joined_values, r6); if (Z_TYPE_P(fields) == IS_ARRAY) { PHALCON_ALLOC_ZVAL_MM(r7); PHALCON_INIT_VAR(c1); ZVAL_STRING(c1, ", ", 1); PHALCON_ALLOC_ZVAL_MM(r8); phalcon_fast_join(r8, c1, fields TSRMLS_CC); PHALCON_CONCAT_SVSVSVS(r7, "INSERT INTO ", table, " (", r8, ") VALUES (", joined_values, ")"); PHALCON_CPY_WRT(insert_sql, r7); } else { PHALCON_ALLOC_ZVAL_MM(r9); PHALCON_CONCAT_SVSVS(r9, "INSERT INTO ", table, " VALUES (", joined_values, ")"); PHALCON_CPY_WRT(insert_sql, r9); } PHALCON_ALLOC_ZVAL_MM(r10); PHALCON_CALL_METHOD_PARAMS_1(r10, this_ptr, "query", insert_sql, PHALCON_NO_CHECK); PHALCON_RETURN_DZVAL(r10); } else { PHALCON_THROW_EXCEPTION_STR(phalcon_db_exception_ce, "The second parameter for insert isn't an Array"); return; } PHALCON_MM_RESTORE(); }
/* {{{ get_debug_info handler for Calendar */ static HashTable *Calendar_get_debug_info(zval *object, int *is_temp) { zval zv, zfields; Calendar_object *co; const Calendar *cal; HashTable *debug_info; *is_temp = 1; ALLOC_HASHTABLE(debug_info); zend_hash_init(debug_info, 8, NULL, ZVAL_PTR_DTOR, 0); co = Z_INTL_CALENDAR_P(object); cal = co->ucal; if (cal == NULL) { ZVAL_FALSE(&zv); zend_hash_str_update(debug_info, "valid", sizeof("valid") - 1, &zv); return debug_info; } ZVAL_TRUE(&zv); zend_hash_str_update(debug_info, "valid", sizeof("valid") - 1, &zv); ZVAL_STRING(&zv, const_cast<char*>(cal->getType())); zend_hash_str_update(debug_info, "type", sizeof("type") - 1, &zv); { zval ztz, ztz_debug; int is_tmp; HashTable *debug_info_tz; timezone_object_construct(&cal->getTimeZone(), &ztz , 0); debug_info = Z_OBJ_HANDLER(ztz, get_debug_info)(&ztz, &is_tmp); assert(is_tmp == 1); array_init(&ztz_debug); zend_hash_copy(Z_ARRVAL(ztz_debug), debug_info_tz, zval_add_ref); zend_hash_destroy(debug_info_tz); FREE_HASHTABLE(debug_info_tz); zend_hash_str_update(debug_info, "timeZone", sizeof("timeZone") - 1, &ztz_debug); } { UErrorCode uec = U_ZERO_ERROR; Locale locale = cal->getLocale(ULOC_VALID_LOCALE, uec); if (U_SUCCESS(uec)) { ZVAL_STRING(&zv, const_cast<char*>(locale.getName())); zend_hash_str_update(debug_info, "locale", sizeof("locale") - 1, &zv); } else { ZVAL_STRING(&zv, const_cast<char*>(u_errorName(uec))); zend_hash_str_update(debug_info, "locale", sizeof("locale") - 1, &zv); } } array_init_size(&zfields, UCAL_FIELD_COUNT); for (int i = 0; i < sizeof(debug_info_fields) / sizeof(*debug_info_fields); i++) { UErrorCode uec = U_ZERO_ERROR; const char *name = debug_info_fields[i].name; int32_t res = cal->get(debug_info_fields[i].field, uec); if (U_SUCCESS(uec)) { add_assoc_long(&zfields, name, (zend_long)res); } else { add_assoc_string(&zfields, name, const_cast<char*>(u_errorName(uec))); } } zend_hash_str_update(debug_info, "fields", sizeof("fields") - 1, &zfields); return debug_info; }
/* {{{ php_parsekit_parse_op_array */ static void php_parsekit_parse_op_array(zval *return_value, zend_op_array *ops, long options TSRMLS_DC) { zend_op *op; zval *tmpzval; int i = 0; /* TODO: Reorder / Organize */ array_init(return_value); add_assoc_long(return_value, "type", (long)(ops->type)); add_assoc_string(return_value, "type_name", php_parsekit_define_name(ops->type, php_parsekit_function_types, PHP_PARSEKIT_FUNCTYPE_UNKNOWN), 1); if (ops->function_name) { add_assoc_string(return_value, "function_name", ops->function_name, 1); } else if (options & PHP_PARSEKIT_ALWAYS_SET) { add_assoc_null(return_value, "function_name"); } #ifdef ZEND_ENGINE_2 /* ZE2 op_array members */ if (ops->scope && ops->scope->name) { add_assoc_stringl(return_value, "scope", ops->scope->name, ops->scope->name_length, 1); } else if (options & PHP_PARSEKIT_ALWAYS_SET) { add_assoc_null(return_value, "scope"); } add_assoc_long(return_value, "fn_flags", ops->fn_flags); if (ops->function_name && ops->prototype) { MAKE_STD_ZVAL(tmpzval); array_init(tmpzval); add_assoc_long(tmpzval, "type", ops->prototype->type); add_assoc_string(return_value, "type_name", php_parsekit_define_name(ops->prototype->type, php_parsekit_function_types, PHP_PARSEKIT_FUNCTYPE_UNKNOWN), 1); if (ops->prototype->common.function_name) { add_assoc_string(tmpzval, "function_name", ops->prototype->common.function_name, 1); } else if (options & PHP_PARSEKIT_ALWAYS_SET) { add_assoc_null(tmpzval, "function_name"); } if (ops->prototype->common.scope && ops->prototype->common.scope->name) { add_assoc_stringl(tmpzval, "scope", ops->prototype->common.scope->name, ops->prototype->common.scope->name_length, 1); } else if (options & PHP_PARSEKIT_ALWAYS_SET) { add_assoc_null(tmpzval, "scope"); } add_assoc_zval(return_value, "prototype", tmpzval); } else if (options & PHP_PARSEKIT_ALWAYS_SET) { add_assoc_null(return_value, "prototype"); } add_assoc_long(return_value, "num_args", ops->num_args); add_assoc_long(return_value, "required_num_args", ops->required_num_args); add_assoc_bool(return_value, "pass_rest_by_reference", ops->pass_rest_by_reference); if (ops->num_args && ops->arg_info) { MAKE_STD_ZVAL(tmpzval); php_parsekit_parse_arginfo(tmpzval, ops->num_args, ops->arg_info, options TSRMLS_CC); add_assoc_zval(return_value, "arg_info", tmpzval); } else if (options & PHP_PARSEKIT_ALWAYS_SET) { add_assoc_null(return_value, "arg_info"); } if (ops->last_try_catch > 0) { MAKE_STD_ZVAL(tmpzval); array_init(tmpzval); for(i = 0; i < ops->last_try_catch; i++) { zval *tmp_zval; MAKE_STD_ZVAL(tmp_zval); array_init(tmp_zval); add_assoc_long(tmp_zval, "try_op", ops->try_catch_array[i].try_op); add_assoc_long(tmp_zval, "catch_op", ops->try_catch_array[i].catch_op); add_index_zval(tmpzval, i, tmp_zval); } add_assoc_zval(return_value, "try_catch_array", tmpzval); } else if (options & PHP_PARSEKIT_ALWAYS_SET) { add_assoc_null(return_value, "try_catch_array"); } #ifndef ZEND_ACC_CLOSURE /* PHP<5.3 */ add_assoc_bool(return_value, "uses_this", ops->uses_this); #endif add_assoc_long(return_value, "line_start", ops->line_start); add_assoc_long(return_value, "line_end", ops->line_end); if (ops->doc_comment && ops->doc_comment_len) { add_assoc_stringl(return_value, "doc_comment", ops->doc_comment, ops->doc_comment_len, 1); } else if (options & PHP_PARSEKIT_ALWAYS_SET) { add_assoc_null(return_value, "doc_comment"); } #else /* ZE1 op_array members */ if (ops->arg_types) { zend_uchar *arg_types = ops->arg_types; int numargs = *(ops->arg_types); MAKE_STD_ZVAL(tmpzval); array_init(tmpzval); add_assoc_long(tmpzval, "arg_count", numargs); for(i = 0; i < numargs; i++) { add_next_index_long(tmpzval, arg_types[i+1]); } add_assoc_zval(return_value, "arg_types", tmpzval); /* Emulated arg_info */ MAKE_STD_ZVAL(tmpzval); php_parsekit_derive_arginfo(tmpzval, ops, options TSRMLS_CC); add_assoc_zval(return_value, "arg_info", tmpzval); } else { MAKE_STD_ZVAL(tmpzval); array_init(tmpzval); add_assoc_long(tmpzval, "arg_count", 0); add_assoc_zval(return_value, "arg_types", tmpzval); add_assoc_null(return_value, "arg_info"); } add_assoc_bool(return_value, "uses_global", ops->uses_globals); #endif /* ZE1 and ZE2 */ add_assoc_bool(return_value, "return_reference", ops->return_reference); add_assoc_long(return_value, "refcount", *(ops->refcount)); add_assoc_long(return_value, "last", ops->last); add_assoc_long(return_value, "size", ops->size); add_assoc_long(return_value, "T", ops->T); add_assoc_long(return_value, "last_brk_cont", ops->last_brk_cont); add_assoc_long(return_value, "current_brk_cont", ops->current_brk_cont); add_assoc_long(return_value, "backpatch_count", ops->backpatch_count); add_assoc_bool(return_value, "done_pass_two", ops->done_pass_two); if (ops->last_brk_cont > 0) { MAKE_STD_ZVAL(tmpzval); array_init(tmpzval); for(i = 0; i < ops->last_brk_cont; i++) { zval *tmp_zval; MAKE_STD_ZVAL(tmp_zval); array_init(tmp_zval); add_assoc_long(tmp_zval, "cont", ops->brk_cont_array[i].cont); add_assoc_long(tmp_zval, "brk", ops->brk_cont_array[i].brk); add_assoc_long(tmp_zval, "parent", ops->brk_cont_array[i].parent); add_index_zval(tmpzval, i, tmp_zval); } add_assoc_zval(return_value, "brk_cont_array", tmpzval); } else if (options & PHP_PARSEKIT_ALWAYS_SET) { add_assoc_null(return_value, "brk_cont_array"); } if (ops->static_variables) { zval *tmp_zval; MAKE_STD_ZVAL(tmpzval); array_init(tmpzval); zend_hash_copy(HASH_OF(tmpzval), ops->static_variables, (copy_ctor_func_t) zval_add_ref, (void *) &tmp_zval, sizeof(zval *)); add_assoc_zval(return_value, "static_variables", tmpzval); } else if (options & PHP_PARSEKIT_ALWAYS_SET) { add_assoc_null(return_value, "static_variables"); } if (ops->start_op) { char sop[(sizeof(void *) * 2) + 1]; snprintf(sop, sizeof(sop), "%X", (unsigned int)ops->start_op); add_assoc_string(return_value, "start_op", sop, 1); } else if (options & PHP_PARSEKIT_ALWAYS_SET) { add_assoc_null(return_value, "start_op"); } if (ops->filename) { add_assoc_string(return_value, "filename", ops->filename, 1); } else { add_assoc_null(return_value, "filename"); } /* Leave this last, it simplifies readability */ MAKE_STD_ZVAL(tmpzval); array_init(tmpzval); for(op = ops->opcodes, i = 0; op && i < ops->size; op++, i++) { zval *zop; MAKE_STD_ZVAL(zop); php_parsekit_parse_op(zop, ops, op, options TSRMLS_CC); add_next_index_zval(tmpzval, zop); } add_assoc_zval(return_value, "opcodes", tmpzval); }
void php_handler(struct network *net, struct trigger *trig, struct irc_data *data, struct dcc_session *dcc, const char *dccbuf) { zval *func; zval *netw; zval *nick; zval *uhost; zval *hand; zval *chan; zval *arg; zval *ret; zval *idx; zval *php_args[10]; /* may need changed */ #ifdef WANT_PHP_OBJECT_TRIGGERS zend_object *network; zend_object *irc_data; zend_object *trigger; #endif /* WANT_PHP_OBJECT_TRIGGERS */ /* We have to create the arguments for the called function as zvals */ TSRMLS_FETCH(); switch (trig->type) { #ifdef WANT_PHP_OBJECT_TRIGGERS case TRIG_OPUB: /* Create stdClass objects */ zend_object_std_init(&network, class_type TSRMLS_CC); zend_object_std_init(&irc_data, class_type TSRMLS_CC); zend_object_std_init(&trigger, class_type TSRMLS_CC); /* Give them default properties */ zend_hash_copy(network.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *)); zend_hash_copy(irc_data.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *)); zend_hash_copy(trigger.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *)); break; #endif /* WANT_PHP_OBJECT_TRIGGERS */ case TRIG_PUB: MAKE_STD_ZVAL(func); MAKE_STD_ZVAL(netw); MAKE_STD_ZVAL(nick); MAKE_STD_ZVAL(uhost); MAKE_STD_ZVAL(hand); MAKE_STD_ZVAL(chan); MAKE_STD_ZVAL(arg); ALLOC_INIT_ZVAL(ret); ZVAL_STRING(func, trig->command, 1); ZVAL_STRING(netw, net->label, 1); ZVAL_STRING(nick, data->prefix->nick, 1); ZVAL_STRING(uhost, data->prefix->host, 1); ZVAL_STRING(hand, "*", 1); ZVAL_STRING(chan, data->c_params[0], 1); ZVAL_STRING(arg, troll_makearg(data->rest_str,trig->mask), 1); php_args[0] = netw; php_args[1] = nick; php_args[2] = uhost; php_args[3] = hand; php_args[4] = chan; php_args[5] = arg; zend_try { if (call_user_function(CG(function_table), NULL, func, ret, 6, php_args TSRMLS_CC) != SUCCESS) troll_debug(LOG_WARN,"Error calling function\n"); else FREE_ZVAL(ret); } zend_end_try(); /*if (netw) FREE_ZVAL(netw); if (nick) FREE_ZVAL(nick); if (uhost) FREE_ZVAL(uhost); if (hand) FREE_ZVAL(hand); if (chan) FREE_ZVAL(chan); if (arg) FREE_ZVAL(arg);*/ break; case TRIG_PUBM: MAKE_STD_ZVAL(func); MAKE_STD_ZVAL(netw); MAKE_STD_ZVAL(nick); MAKE_STD_ZVAL(uhost); MAKE_STD_ZVAL(hand); MAKE_STD_ZVAL(chan); MAKE_STD_ZVAL(arg); ALLOC_INIT_ZVAL(ret); ZVAL_STRING(func, trig->command, 1); ZVAL_STRING(netw, net->label, 1); ZVAL_STRING(nick, data->prefix->nick, 1); ZVAL_STRING(uhost, data->prefix->host, 1); ZVAL_STRING(hand, "*", 1); ZVAL_STRING(chan, data->c_params[0], 1); ZVAL_STRING(arg, data->rest_str, 1); php_args[0] = netw; php_args[1] = nick; php_args[2] = uhost; php_args[3] = hand; php_args[4] = chan; php_args[5] = arg; zend_try { if (call_user_function(CG(function_table), NULL, func, ret, 6, php_args TSRMLS_CC) != SUCCESS) troll_debug(LOG_WARN,"Error calling function\n"); else FREE_ZVAL(ret); } zend_end_try(); /* if (netw) FREE_ZVAL(netw); if (nick) FREE_ZVAL(nick); if (uhost) FREE_ZVAL(uhost); if (hand) FREE_ZVAL(hand); if (chan) FREE_ZVAL(chan); if (arg) FREE_ZVAL(arg); */ break; case TRIG_MSG: MAKE_STD_ZVAL(func); MAKE_STD_ZVAL(netw); MAKE_STD_ZVAL(nick); MAKE_STD_ZVAL(uhost); MAKE_STD_ZVAL(hand); MAKE_STD_ZVAL(arg); ALLOC_INIT_ZVAL(ret); ZVAL_STRING(func, trig->command, 1); ZVAL_STRING(netw, net->label, 1); ZVAL_STRING(nick, data->prefix->nick, 1); ZVAL_STRING(uhost, data->prefix->host, 1); ZVAL_STRING(hand, "*", 1); ZVAL_STRING(arg, troll_makearg(data->rest_str,trig->mask), 1); php_args[0] = netw; php_args[1] = nick; php_args[2] = uhost; php_args[3] = hand; php_args[4] = arg; if (call_user_function(CG(function_table), NULL, func, ret, 5, php_args TSRMLS_CC) != SUCCESS) troll_debug(LOG_WARN,"Error calling function\n"); else FREE_ZVAL(ret); /* if (netw) FREE_ZVAL(netw); if (nick) FREE_ZVAL(nick); if (uhost) FREE_ZVAL(uhost); if (hand) FREE_ZVAL(hand); if (arg) FREE_ZVAL(arg); */ break; case TRIG_TOPC: MAKE_STD_ZVAL(func); MAKE_STD_ZVAL(netw); MAKE_STD_ZVAL(nick); MAKE_STD_ZVAL(uhost); MAKE_STD_ZVAL(hand); MAKE_STD_ZVAL(arg); ALLOC_INIT_ZVAL(ret); ZVAL_STRING(func, trig->command, 1); ZVAL_STRING(netw, net->label, 1); ZVAL_STRING(nick, data->prefix->nick, 1); ZVAL_STRING(uhost, data->prefix->host, 1); ZVAL_STRING(hand, "*", 1); ZVAL_STRING(arg, data->rest_str, 1); php_args[0] = netw; php_args[1] = nick; php_args[2] = uhost; php_args[3] = hand; php_args[4] = arg; if (call_user_function(CG(function_table), NULL, func, ret, 5, php_args TSRMLS_CC) != SUCCESS) troll_debug(LOG_WARN,"Error calling function\n"); else FREE_ZVAL(ret); /* if (netw) FREE_ZVAL(netw); if (nick) FREE_ZVAL(nick); if (uhost) FREE_ZVAL(uhost); if (hand) FREE_ZVAL(hand); if (arg) FREE_ZVAL(arg); */ break; case TRIG_MSGM: MAKE_STD_ZVAL(func); MAKE_STD_ZVAL(netw); MAKE_STD_ZVAL(nick); MAKE_STD_ZVAL(uhost); MAKE_STD_ZVAL(hand); MAKE_STD_ZVAL(arg); ALLOC_INIT_ZVAL(ret); ZVAL_STRING(func, trig->command, 1); ZVAL_STRING(netw, net->label, 1); ZVAL_STRING(nick, data->prefix->nick, 1); ZVAL_STRING(uhost, data->prefix->host, 1); ZVAL_STRING(hand, "*", 1); ZVAL_STRING(arg, data->rest_str, 1); php_args[0] = netw; php_args[1] = nick; php_args[2] = uhost; php_args[3] = hand; php_args[4] = arg; if (call_user_function(CG(function_table), NULL, func, ret, 5, php_args TSRMLS_CC) != SUCCESS) troll_debug(LOG_WARN,"Error calling function\n"); else FREE_ZVAL(ret); /* if (netw) FREE_ZVAL(netw); if (nick) FREE_ZVAL(nick); if (uhost) FREE_ZVAL(uhost); if (hand) FREE_ZVAL(hand); if (arg) FREE_ZVAL(arg); */ break; case TRIG_JOIN: break; case TRIG_PART: break; case TRIG_SIGN: break; case TRIG_DCC: /* $net, $handle, $idx, $text */ MAKE_STD_ZVAL(func); MAKE_STD_ZVAL(netw); MAKE_STD_ZVAL(hand); MAKE_STD_ZVAL(idx); MAKE_STD_ZVAL(arg); ALLOC_INIT_ZVAL(ret); ZVAL_STRING(func, trig->command, 1); ZVAL_STRING(netw, dcc->net->label, 1); ZVAL_STRING(hand, dcc->user->username, 1); ZVAL_LONG(idx, dcc->id); ZVAL_STRING(arg, dccbuf, 1); php_args[0] = hand; php_args[1] = netw; php_args[2] = idx; php_args[3] = arg; if (call_user_function(CG(function_table), NULL, func, ret, 4, php_args TSRMLS_CC) != SUCCESS) troll_debug(LOG_WARN,"Error calling function\n"); else FREE_ZVAL(ret); /*if (hand) FREE_ZVAL(hand); if (idx) FREE_ZVAL(idx); if (arg) FREE_ZVAL(arg);*/ break; } }
ZEND_API void zend_ts_hash_copy_to_hash(HashTable *target, TsHashTable *source, copy_ctor_func_t pCopyConstructor) { begin_read(source); zend_hash_copy(target, TS_HASH(source), pCopyConstructor); end_read(source); }
PHP_METHOD(Phalcon_Test, nice){ zval *v0 = NULL, *v1 = NULL, *v2 = NULL, *v3 = NULL; zval *a0 = NULL; zval *r0 = NULL, *r1 = NULL; zval *t0 = NULL; HashTable *ah0; HashPosition hp0; zval **hd; char *index; uint index_len; ulong num; int htype; PHALCON_MM_GROW(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &v0) == FAILURE) { PHALCON_MM_RESTORE(); RETURN_NULL(); } PHALCON_INIT_VAR(a0); array_init(a0); add_assoc_long_ex(a0, "hello1", strlen("hello1")+1, 1); add_assoc_long_ex(a0, "hello2", strlen("hello2")+1, 2); add_assoc_long_ex(a0, "hello3", strlen("hello3")+1, 3); PHALCON_CPY_WRT(v1, a0); if (Z_TYPE_P(v1) != IS_ARRAY) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid argument supplied for foreach()"); } else { ALLOC_HASHTABLE(ah0); zend_hash_init(ah0, 0, NULL, NULL, 0); zend_hash_copy(ah0, Z_ARRVAL_P(v1), NULL, NULL, sizeof(zval*)); zend_hash_internal_pointer_reset_ex(ah0, &hp0); fes_2ebb_0: if(zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) != SUCCESS){ goto fee_2ebb_0; } else { PHALCON_INIT_VAR(v3); htype = zend_hash_get_current_key_ex(ah0, &index, &index_len, &num, 0, &hp0); if (htype == HASH_KEY_IS_STRING) { ZVAL_STRINGL(v3, index, index_len-1, 1); } else { if (htype == HASH_KEY_IS_LONG) { ZVAL_LONG(v3, num); } } } PHALCON_INIT_VAR(v2); ZVAL_ZVAL(v2, *hd, 1, 0); PHALCON_INIT_VAR(r0); phalcon_array_fetch(&r0, v1, v3, PHALCON_NOISY_FETCH TSRMLS_CC); PHALCON_INIT_VAR(t0); ZVAL_LONG(t0, 100); PHALCON_INIT_VAR(r1); phalcon_add_function(r1, r0, t0 TSRMLS_CC); Z_ADDREF_P(r1); if (Z_REFCOUNT_P(v1) > 1) { zval *new_zv; Z_DELREF_P(v1); ALLOC_ZVAL(new_zv); INIT_PZVAL_COPY(new_zv, v1); v1 = new_zv; zval_copy_ctor(new_zv); } phalcon_array_update(v1, v3, r1 TSRMLS_CC); zend_hash_move_forward_ex(ah0, &hp0); goto fes_2ebb_0; fee_2ebb_0: zend_hash_destroy(ah0); efree(ah0); } PHALCON_CALL_FUNC_PARAMS_1_NORETURN("print_r", v1, 0x015); PHALCON_MM_RESTORE(); RETURN_NULL(); }
void zend_copy_constants(HashTable *target, HashTable *source) { zend_hash_copy(target, source, copy_zend_constant); }
void php_pq_params_set_type_conv(php_pq_params_t *p, HashTable *conv) { zend_hash_clean(&p->type.conv); zend_hash_copy(&p->type.conv, conv, (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *)); }