这篇教程C++ ALLOC_INIT_ZVAL函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中ALLOC_INIT_ZVAL函数的典型用法代码示例。如果您正苦于以下问题:C++ ALLOC_INIT_ZVAL函数的具体用法?C++ ALLOC_INIT_ZVAL怎么用?C++ ALLOC_INIT_ZVAL使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了ALLOC_INIT_ZVAL函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: phalcon_array_append_stringint phalcon_array_append_string(zval **arr, char *value, int value_length, int separate TSRMLS_DC){ zval *zvalue; ALLOC_INIT_ZVAL(zvalue); Z_SET_REFCOUNT_P(zvalue, 0); ZVAL_STRINGL(zvalue, value, value_length, 1); return phalcon_array_append(arr, zvalue, separate TSRMLS_CC);}
开发者ID:fatihzkaratana,项目名称:cphalcon,代码行数:10,
示例2: zephir_array_append_string/** * @brief Appends a string @a value to @a arr * @param[in,out] arr Array * @param value Value * @param value_length Length of the value (usually <tt>strlen(value)</tt>) * @param separate Flags (@c PH_SEPARATE: separate array if its reference count is greater than 1; @c arr will contain the separated array) * @return Whether the operation succeeded * @retval @c FAILURE Failure or @a arr is not an array * @retval @c SUCCESS Success * @throw @c E_WARNING if @a is not an array * @see zephir_array_append() * * Equivalent to <tt>$arr[] = $value</tt> in PHP, where @c $value is a string. */int zephir_array_append_string(zval **arr, char *value, uint value_length, int separate) { zval *zvalue; ALLOC_INIT_ZVAL(zvalue); Z_SET_REFCOUNT_P(zvalue, 0); ZVAL_STRINGL(zvalue, value, value_length, 1); return zephir_array_append(arr, zvalue, separate);}
开发者ID:hellcore,项目名称:zephir,代码行数:24,
示例3: zephir_array_append_long/** * @brief Appends a long integer @a value to @a arr * @param[in,out] arr Array * @param value Value * @param separate Flags (@c PH_SEPARATE: separate array if its reference count is greater than 1; @c arr will contain the separated array) * @return Whether the operation succeeded * @retval @c FAILURE Failure or @a arr is not an array * @retval @c SUCCESS Success * @throw @c E_WARNING if @a is not an array * @see zephir_array_append() * * Equivalent to <tt>$arr[] = $value</tt> in PHP, where @c $value is an integer. */int zephir_array_append_long(zval **arr, long value, int separate) { zval *zvalue; ALLOC_INIT_ZVAL(zvalue); Z_SET_REFCOUNT_P(zvalue, 0); ZVAL_LONG(zvalue, value); return zephir_array_append(arr, zvalue, separate ZEPHIR_DEBUG_PARAMS_DUMMY);}
开发者ID:golovanov,项目名称:php-ext-zendxml,代码行数:23,
示例4: phalcon_array_append_longint phalcon_array_append_long(zval **arr, long value, int separate TSRMLS_DC){ zval *zvalue; ALLOC_INIT_ZVAL(zvalue); Z_SET_REFCOUNT_P(zvalue, 0); ZVAL_LONG(zvalue, value); return phalcon_array_append(arr, zvalue, separate TSRMLS_CC);}
开发者ID:fatihzkaratana,项目名称:cphalcon,代码行数:10,
示例5: PHP_METHOD/** {{{ public ZeRecorder::fetchAll() */PHP_METHOD(ze_recorder, fetchAll) { zval * self = NULL; zval * stmt = NULL; long style = 0; zval * style_z = NULL; zval * success = NULL; zval * row = NULL; /* PDO::FETCH_ASSOC */ style = 2; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l" , &style ) == FAILURE) { WRONG_PARAM_COUNT; } /* call execute */ /* call fetch */ self = getThis(); stmt = zend_read_property(ze_recorder_ce, self, ZEND_STRL(ZE_STMT), 0 TSRMLS_CC); do { if (!stmt || Z_TYPE_P(stmt) != IS_OBJECT) { ze_error(E_ERROR TSRMLS_CC, "recorder.fetch.stmt.not_object"); break; } zend_call_method(&stmt, Z_OBJCE_P(stmt), NULL, ZEND_STRL("execute"), &success, 0, NULL, NULL TSRMLS_CC); if (!success || EG(exception)) { break; } convert_to_boolean(success); if (Z_BVAL_P(success) == 1) { ALLOC_INIT_ZVAL(style_z); ZVAL_LONG(style_z, style); zend_call_method(&stmt, NULL, NULL, ZEND_STRL("fetchAll"), &row, 1, style_z, NULL TSRMLS_CC); zval_dtor(style_z); FREE_ZVAL(style_z); } zval_dtor(success); FREE_ZVAL(success); } while (0); if (row) { RETURN_ZVAL(row, 1, 1); } else { RETURN_FALSE; }}
开发者ID:eixom,项目名称:zoeeyphp,代码行数:57,
示例6: signature// time criticalbool PHPQt::qt_metacall(smokephp_object* o, Smoke::Stack args){ Context::setCallType( Context::SlotCall ); const QMetaObject* staticMetaObject = o->meta(); const int _id = args[2].s_int; const int offset = staticMetaObject->methodOffset(); const QByteArray signature( staticMetaObject->method(_id).signature() ); const QByteArray metaMethodName = signature.left( signature.indexOf("(") ); //! - if we have a slot overridden in php user space: call it //! @see InvokeSlot if( PHPQt::methodExists( o->ce_ptr() , metaMethodName.constData()) ) { pDebug( PHPQt::Slot ) << " userspace " << signature << o->ce_ptr()->name; const int count = staticMetaObject->method( args[2].s_int ).parameterTypes().count() + 1; // zval* zmem = ALLOCA_N(zval, count); zval** zmem = (zval**) safe_emalloc( sizeof(zval*), count+1, 0); for( int i=0;i<count;i++ ) { ALLOC_INIT_ZVAL( zmem[i] ); } // NOTICE is memory allocation safe here? InvokeSlot c( o->smoke(), args, o->zval_ptr(), zmem, _id, staticMetaObject, (void**) args[3].s_voidp, metaMethodName ); c.next(); efree(zmem); return true; } else { if ( staticMetaObject->indexOfSlot( signature ) != -1 ) { pDebug( PHPQt::Slot ) << " C++ " << signature; // return false means this will be done by smoke return false; } else { // TODO error case for undefined methods, see php_qt proxyMethod // const int i = staticMetaObject->indexOfSignal( signature ); // const int offset = staticMetaObject->methodOffset(); // The offset is the summary of all methods in the class's superclasses pDebug( PHPQt::Signal ) << signature << staticMetaObject->className() << _id << staticMetaObject->methodOffset(); /* C++ */ //if( _id < offset ) { qWarning() << "got an id smaller than offset"; } /** * We go through QMetaObject::activate, because it can either be connected to a C++ Slot or a user space Slot * cast to a QObject using smoke cast * */ QObject* ptr = (QObject*) o->smoke()->cast( const_cast<void*>( o->ptr() ), o->classId(), cachedQObjectSmokeId ); void *_b[] = { 0, ((void**) args[3].s_voidp)[1] }; QMetaObject::activate( ptr, staticMetaObject, 0, _b ); return true; // success } } // else method exist return false;}
开发者ID:0xd34df00d,项目名称:Qross,代码行数:56,
示例7: php_jq_filterstatic voidphp_jq_filter(zval **return_value, jq_state *jq, jv json, int flags TSRMLS_DC){ jv result; jq_start(jq, jv_copy(json), 0); if (jv_is_valid(result = jq_next(jq))) { int multiple = 0; while (1) { zval *zv; ALLOC_INIT_ZVAL(zv); if (flags == JQ_OPT_RAW) { if (jv_get_kind(result) == JV_KIND_STRING) { ZVAL_STRING(zv, jv_string_value(result), 1); } else { jv dump = jv_dump_string(result, 0); if (jv_is_valid(dump)) { ZVAL_STRING(zv, jv_string_value(dump), 1); } jv_free(dump); } } else { php_jv_dump(&zv, result TSRMLS_CC); } if (!jv_is_valid(result = jq_next(jq))) { if (multiple) { zend_hash_next_index_insert(Z_ARRVAL_PP(return_value), &zv, sizeof(zv), NULL); } else { ZVAL_ZVAL(*return_value, zv, 1, 1); } break; } if (!multiple) { multiple = 1; array_init(*return_value); } zend_hash_next_index_insert(Z_ARRVAL_PP(return_value), &zv, sizeof(zv), NULL); } } else { jv_free(result); if (PHP_JQ_G(display_errors)) { PHP_JQ_ERR(E_WARNING, "filter parse error"); } ZVAL_BOOL(*return_value, 0); }}
开发者ID:Gasol,项目名称:php-ext-jq,代码行数:54,
示例8: cp_unserializeCPINLINE zval * cp_unserialize(char *data, int len) { zval *unser_value; ALLOC_INIT_ZVAL(unser_value); php_unserialize_data_t var_hash; PHP_VAR_UNSERIALIZE_INIT(var_hash); if (php_var_unserialize(&unser_value, (const unsigned char **) &data, (unsigned char *) data + len - 1, &var_hash TSRMLS_CC) != 1) {// php_error_docref(NULL TSRMLS_CC, E_NOTICE, "unser data is corrupted"); } PHP_VAR_UNSERIALIZE_DESTROY(var_hash); return unser_value;}
开发者ID:damaainan,项目名称:php-cp,代码行数:12,
示例9: qb_add_arraystatic zval * qb_add_array(zval *array, const char *name) { HashTable *ht = Z_ARRVAL_P(array); zval *zvalue; ALLOC_INIT_ZVAL(zvalue); array_init(zvalue); if(name) { zend_hash_update(ht, name, (uint32_t) strlen(name) + 1, &zvalue, sizeof(zval *), NULL); } else { zend_hash_next_index_insert(ht, &zvalue, sizeof(zval *), NULL); } return zvalue;}
开发者ID:3CTO,项目名称:qb,代码行数:12,
示例10: php_jam_invoke_handlervoid php_jam_invoke_handler(int type TSRMLS_DC, const char *error_filename, const uint error_lineno, const char *format, ...){ zval *event; va_list args; ALLOC_INIT_ZVAL(event); array_init(event); va_start(args, format); php_jam_capture_error_ex(event, type, error_filename, error_lineno, 1, format, args TSRMLS_CC); va_end(args);}
开发者ID:brzuchal,项目名称:jam,代码行数:12,
示例11: phalcon_call_method_params_normal/** * Call methods that require parameters in a old-style secure way */inline int phalcon_call_method_params_normal(zval *return_value, zval *object, char *method_name, int method_len, zend_uint param_count, zval *params[], int check, int noreturn TSRMLS_DC){ zval *fn = NULL; int status = FAILURE; zend_class_entry *ce, *active_scope = NULL; if (check) { if (!zend_hash_exists(&Z_OBJCE_P(object)->function_table, method_name, method_len+1)) { return SUCCESS; } } if (!noreturn) { ALLOC_INIT_ZVAL(return_value); } PHALCON_ALLOC_ZVAL(fn); ZVAL_STRINGL(fn, method_name, method_len, 1); if (Z_TYPE_P(object) == IS_OBJECT) { active_scope = EG(scope); ce = Z_OBJCE_P(object); phalcon_find_scope(ce, method_name, method_len TSRMLS_CC); status = PHALCON_CALL_USER_FUNCTION(&ce->function_table, &object, fn, return_value, param_count, params TSRMLS_CC); if (status == FAILURE) { EG(scope) = active_scope; php_error_docref(NULL TSRMLS_CC, E_ERROR, "Call to undefined method %s() on class %s", Z_STRVAL_P(fn), Z_OBJCE_P(object)->name); status = FAILURE; } EG(scope) = active_scope; } else { php_error_docref(NULL TSRMLS_CC, E_ERROR, "Call to method %s() on a non object", Z_STRVAL_P(fn)); status = FAILURE; } zval_ptr_dtor(&fn); if (!noreturn) { zval_ptr_dtor(&return_value); return_value = NULL; } if (EG(exception)){ status = FAILURE; } if (status == FAILURE) { phalcon_memory_restore_stack(TSRMLS_C); } return status;}
开发者ID:gplanchat,项目名称:cphalcon,代码行数:55,
示例12: phalcon_call_func_params/** * Call single function which requires arbitrary number of parameters */int phalcon_call_func_params(zval *return_value, char *func_name, int func_length, zend_uint param_count, zval *params[], int noreturn, int fcache_pointer TSRMLS_DC){ zval *fn = NULL; int status = FAILURE; //zval ***params_array; zval *local_retval_ptr = NULL; //int i; if (!noreturn) { ALLOC_INIT_ZVAL(return_value); } PHALCON_ALLOC_ZVAL(fn); ZVAL_STRINGL(fn, func_name, func_length, 1); /*status = phalcon_cache_lookup_function(fn, fcache_pointer); if (status == FAILURE) { return FAILURE; }*/ /*if(param_count){ params_array = (zval ***) emalloc(sizeof(zval **)*param_count); for (i=0; i<param_count; i++) { params_array[i] = ¶ms[i]; } } else { params_array = NULL; }*/ status = call_user_function(CG(function_table), NULL, fn, return_value, param_count, params TSRMLS_CC); //status = phalcon_call_user_function_ex(CG(function_table), NULL, fn, &local_retval_ptr, param_count, params_array, 1, NULL, phalcon_fcall_cache[fcache_pointer] TSRMLS_CC); if (status == FAILURE) { php_error_docref(NULL TSRMLS_CC, E_ERROR, "Call to undefined function %s()", func_name); return FAILURE; } zval_ptr_dtor(&fn); if (local_retval_ptr) { COPY_PZVAL_TO_ZVAL(*return_value, local_retval_ptr); } if (!noreturn) { zval_ptr_dtor(&return_value); } /*if (params_array) { efree(params_array); }*/ return status;}
开发者ID:xingskycn,项目名称:cphalcon,代码行数:55,
示例13: cpWorker_loopstatic int cpWorker_loop(int worker_id){ CPWG.id = worker_id; char fifo_name[CP_FIFO_NAME_LEN] = {0}; sprintf(fifo_name, "%s_%d", CP_FIFO_NAME_PRE, CPGC.group_id * CP_GROUP_LEN + worker_id); //client 2 worker int pipe_fd_read = cpCreateFifo(fifo_name); sprintf(fifo_name, "%s_%d_1", CP_FIFO_NAME_PRE, CPGC.group_id * CP_GROUP_LEN + worker_id); //worker 2 client int pipe_fd_write = cpCreateFifo(fifo_name); CPGS->workers[worker_id].pipe_fd_write = pipe_fd_write; cpShareMemory *sm_obj = &(CPGS->workers[worker_id].sm_obj); cpWorkerInfo event; bzero(&event, sizeof (event)); int ret, len = 0; int event_len = sizeof (event); while (CPGS->running) { zval *ret_value; ALLOC_INIT_ZVAL(ret_value); if (CPGS->workers[worker_id].pre_len) { len = CPGS->workers[worker_id].pre_len; CPGS->workers[worker_id].pre_len = 0; CPWG.clientPid = CPGS->workers[worker_id].pre_pid; } else { do { ret = cpFifoRead(pipe_fd_read, &event, event_len); if (ret < 0) { cpLog("fifo read Error: %s [%d]", strerror(errno), errno); } } while (event.pid != CPGS->workers[worker_id].CPid); //有可能有脏数据 读出来 if (!CPGS->workers[worker_id].run) { CPGS->workers[worker_id].pre_len = event.len; //啊~~我要挂了,赶紧存起来 下次再用 CPGS->workers[worker_id].pre_pid = event.pid; break; } len = event.len;// cpLog("worker %d len",len); CPWG.clientPid = event.pid; } if (sm_obj->mem == NULL) { if ((sm_obj->mem = shmat(sm_obj->shmid, NULL, 0)) < 0) { cpLog("attach sys mem error Error: %s [%d]", strerror(errno), errno); } } if (ret < 0) { cpLog("fifo read Error: %s [%d]", strerror(errno), errno); } php_msgpack_unserialize(ret_value, sm_obj->mem, len); worker_onReceive(ret_value); } return SUCCESS;}
开发者ID:WalterShe,项目名称:php-cp,代码行数:52,
示例14: phalcon_call_static_zval_func_params/** * Call single static function on a zval which requires parameters */inline int phalcon_call_static_zval_func_params(zval *return_value, zval *mixed_name, char *method_name, int method_len, zend_uint param_count, zval *params[], int noreturn TSRMLS_DC){ zval *fn; int status = FAILURE; if (!noreturn) { ALLOC_INIT_ZVAL(return_value); } ALLOC_INIT_ZVAL(fn); array_init(fn); add_next_index_zval(fn, mixed_name); add_next_index_stringl(fn, method_name, method_len, 1); status = phalcon_call_user_function(CG(function_table), NULL, fn, return_value, param_count, params TSRMLS_CC); if (status == FAILURE) { if(Z_TYPE_P(mixed_name) == IS_STRING) { php_error_docref(NULL TSRMLS_CC, E_ERROR, "Call to undefined function %s::%s()", Z_STRVAL_P(mixed_name), method_name); } else { php_error_docref(NULL TSRMLS_CC, E_ERROR, "Call to undefined function not-callable::%s()", method_name); } } zval_ptr_dtor(&fn); if (!noreturn) { zval_ptr_dtor(&return_value); } if (EG(exception)) { status = FAILURE; } if (status == FAILURE) { phalcon_memory_restore_stack(TSRMLS_C); } return status;}
开发者ID:Tigerlee1987,项目名称:cphalcon,代码行数:42,
示例15: PHP_METHODPHP_METHOD(SpotifyPlaylist, getTracks){ zval tempretval, *type, *spotifyobject; ALLOC_INIT_ZVAL(type); Z_TYPE_P(type) = IS_LONG; Z_LVAL_P(type) = 0; spotifyobject = GET_THIS_PROPERTY(spotifyplaylist_ce, "spotify"); object_init_ex(return_value, spotifytrackiterator_ce); SPOTIFY_METHOD3(SpotifyTrackIterator, __construct, &tempretval, return_value, getThis(), type, spotifyobject);}
开发者ID:DaanMeijer,项目名称:libspotify-php,代码行数:13,
示例16: ONPHP_METHODONPHP_METHOD(DBField, toDialectString){ smart_str string = {0}; zval *table, *field, *dialect, *cast, *quoted; ONPHP_GET_ARGS("O", &dialect, onphp_ce_Dialect); table = ONPHP_READ_PROPERTY(getThis(), "table"); field = ONPHP_READ_PROPERTY(getThis(), "field"); cast = ONPHP_READ_PROPERTY(getThis(), "cast"); // either null or instance of DialectString if (Z_TYPE_P(table) == IS_OBJECT) { zval *tmp; ONPHP_CALL_METHOD_1(table, "todialectstring", &tmp, dialect); onphp_append_zval_to_smart_string(&string, tmp); zval_ptr_dtor(&tmp); smart_str_appendc(&string, '.'); } ONPHP_CALL_METHOD_1(dialect, "quotefield", "ed, field); onphp_append_zval_to_smart_string(&string, quoted); zval_ptr_dtor("ed); smart_str_0(&string); if (Z_STRLEN_P(cast)) { zval *tmp, *out; ALLOC_INIT_ZVAL(tmp); ZVAL_STRINGL(tmp, string.c, string.len, 1); ONPHP_CALL_METHOD_2_NORET(dialect, "tocasted", &out, tmp, cast); ZVAL_FREE(tmp); smart_str_free(&string); if (EG(exception)) { return; } RETURN_ZVAL(out, 1, 1); } RETURN_STRINGL(string.c, string.len, 0);}
开发者ID:suquant,项目名称:soloweb-onphp,代码行数:51,
示例17: PHP_METHOD/** * Checks a plain text password and its hash version to check if the password matches * * @param string $password * @param string $passwordHash * @param int $maxPasswordLength * @return boolean */PHP_METHOD(Phalcon_Security, checkHash){ zval **password, **password_hash, **max_pass_length = NULL, *hash; zval* params[2]; int check = 0; phalcon_fetch_params_ex(2, 1, &password, &password_hash, &max_pass_length); PHALCON_ENSURE_IS_STRING(password); if (max_pass_length) { PHALCON_ENSURE_IS_LONG(max_pass_length); if (Z_LVAL_PP(max_pass_length) > 0 && Z_STRLEN_PP(password) > Z_LVAL_PP(max_pass_length)) { RETURN_FALSE; } } params[0] = *password; params[1] = *password_hash; ALLOC_INIT_ZVAL(hash); phalcon_call_func_params_w(hash, SL("crypt"), 2, params TSRMLS_CC); if (UNEXPECTED(EG(exception) != NULL)) { zval_ptr_dtor(&hash); RETURN_NULL(); } if (UNEXPECTED(Z_TYPE_P(hash) != IS_STRING)) { convert_to_string(hash); } if (Z_STRLEN_P(hash) == Z_STRLEN_PP(password_hash)) { int n = Z_STRLEN_P(hash); char *h1 = Z_STRVAL_P(hash); char *h2 = Z_STRVAL_PP(password_hash); while (n) { check |= ((unsigned int)*h1) ^ ((unsigned int)*h2); ++h1; ++h2; --n; } zval_ptr_dtor(&hash); RETURN_BOOL(check == 0); } zval_ptr_dtor(&hash); RETURN_FALSE;}
开发者ID:CreativeOutbreak,项目名称:cphalcon,代码行数:59,
示例18: PHP_METHOD/** * Check whether a model is already initialized * * @param string $modelName * @return bool */PHP_METHOD(Phalcon_Mvc_Collection_Manager, isInitialized){ zval *model_name, *initialized, *lowercased; phalcon_fetch_params(0, 1, 0, &model_name); initialized = phalcon_fetch_nproperty_this(this_ptr, SL("_initialized"), PH_NOISY TSRMLS_CC); ALLOC_INIT_ZVAL(lowercased); phalcon_fast_strtolower(lowercased, model_name); RETVAL_BOOL(phalcon_array_isset(initialized, lowercased)); zval_ptr_dtor(&lowercased);}
开发者ID:100851766,项目名称:cphalcon,代码行数:20,
示例19: php_jam_user_event_triggerstatic void php_jam_user_event_trigger(int type TSRMLS_DC, const char *error_filename, const uint error_lineno, const char *format, ...){ zval *event; va_list args; ALLOC_INIT_ZVAL(event); array_init(event); add_assoc_bool(event, "jam_event_trigger", 1); va_start(args, format); php_jam_capture_error_ex(event, type, error_filename, error_lineno, 1, format, args TSRMLS_CC); va_end(args);}
开发者ID:brzuchal,项目名称:jam,代码行数:14,
示例20: phalcon_array_unset/** * Unsets zval index from array */int PHALCON_FASTCALL phalcon_array_unset(zval *arr, zval *index){ zval *copy; int exists, copied = 0; if (Z_TYPE_P(arr) != IS_ARRAY) { return 0; } if (Z_TYPE_P(index) == IS_NULL) { ALLOC_INIT_ZVAL(copy); ZVAL_ZVAL(copy, index, 1, 0); convert_to_string(copy); index = copy; copied = 1; } else { if (Z_TYPE_P(index) == IS_BOOL || Z_TYPE_P(index) == IS_DOUBLE) { ALLOC_INIT_ZVAL(copy); ZVAL_ZVAL(copy, index, 1, 0); convert_to_long(copy); index = copy; copied = 1; } } if (Z_TYPE_P(index) == IS_STRING) { exists = zend_hash_del(Z_ARRVAL_P(arr), Z_STRVAL_P(index), Z_STRLEN_P(index)+1); } else { exists = zend_hash_index_del(Z_ARRVAL_P(arr), Z_LVAL_P(index)); } if (copied) { zval_ptr_dtor(©); } return exists;}
开发者ID:meibk,项目名称:cphalcon,代码行数:40,
示例21: phalcon_array_update_string_zval_zval_multi_3/** * $x[$a][$b]["str"] = $v */void phalcon_array_update_string_zval_zval_multi_3(zval **arr, zval *index1, zval *index2, char *index3, uint index3_length, zval **value, int flags TSRMLS_DC){ zval *temp1 = NULL, *temp2 = NULL; if (Z_TYPE_PP(arr) == IS_ARRAY) { ALLOC_INIT_ZVAL(temp1); phalcon_array_fetch(&temp1, *arr, index1, PH_SILENT_CC); if (Z_REFCOUNT_P(temp1) > 1) { phalcon_array_update_zval(arr, index1, &temp1, PH_COPY | PH_CTOR TSRMLS_CC); } if (Z_TYPE_P(temp1) != IS_ARRAY) { convert_to_array(temp1); phalcon_array_update_zval(arr, index1, &temp1, PH_COPY TSRMLS_CC); } ALLOC_INIT_ZVAL(temp2); phalcon_array_fetch(&temp2, temp1, index2, PH_SILENT_CC); if (Z_REFCOUNT_P(temp2) > 1) { phalcon_array_update_zval(&temp1, index2, &temp2, PH_COPY | PH_CTOR TSRMLS_CC); } if (Z_TYPE_P(temp2) != IS_ARRAY) { convert_to_array(temp2); phalcon_array_update_zval(&temp1, index2, &temp2, PH_COPY TSRMLS_CC); } phalcon_array_update_string(&temp2, index3, index3_length, value, PH_COPY TSRMLS_CC); } if (temp1 != NULL) { zval_ptr_dtor(&temp1); } if (temp2 != NULL) { zval_ptr_dtor(&temp2); }}
开发者ID:croustibat,项目名称:cphalcon,代码行数:40,
示例22: PHP_METHODPHP_METHOD(Money, extractPercentage){ long percentage; double result; zval *new_money_percentage, *amount, *new_money_subtotal; if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &percentage) == FAILURE) { return; } ALLOC_INIT_ZVAL(new_money_percentage);ALLOC_INIT_ZVAL(new_money_subtotal); amount = zend_read_property(money_ce, getThis(), MONEY_PROP_AMOUNT_WS, 0); result = Z_LVAL_P(amount) / (100 + percentage) * percentage; CREATE_NEW_MONEY_OBJ(new_money_percentage, zend_dval_to_lval(result), zend_read_property(money_ce, getThis(), MONEY_PROP_CURRENCY_WS, 0)) array_init(return_value); add_assoc_zval(return_value, "percentage", new_money_percentage); money_handler_do_operation(ZEND_SUB, new_money_subtotal, getThis(), new_money_percentage); add_assoc_zval(return_value, "subtotal", new_money_subtotal);}
开发者ID:Peekmo,项目名称:money,代码行数:24,
示例23: oks_populate_results/** * Populate the snapshot results from the observe operations * @param res the couchbase object * @param ocoll the observe collection * @param abools an array (or single) boolean * @param adetails an array of details to be indexed by key * @param multi boolean param - this determines whether abools is a scalar or * an array */static void oks_populate_results(php_couchbase_res *res, struct observe_collection *ocoll, zval *abools, zval *adetails, int multi){ int ii; if (multi && IS_ARRAY != Z_TYPE_P(abools)) { array_init(abools); } for (ii = 0; ii < ocoll->nks; ii++) { /* get the key */ pcbc_ht_key reski; zval *tmpary; struct observe_keystate *oks = ocoll->ks + ii; pcbc_ht_key_create( oks->ocmd.v.v0.key, oks->ocmd.v.v0.nkey, &reski); if (multi) { pcbc_ht_hkstoreb(abools, &reski, oks_get_boolval(oks)); } else { if (oks_get_boolval(oks)) { ZVAL_TRUE(abools); } else { ZVAL_FALSE(abools); } } if (adetails != NULL) { ALLOC_INIT_ZVAL(tmpary); array_init(tmpary); oks_to_zvarray(oks, tmpary); pcbc_ht_hkstorez(adetails, &reski, tmpary); } pcbc_ht_key_cleanup(&reski); }}
开发者ID:gigablah,项目名称:php-ext-couchbase,代码行数:57,
示例24: dcc_phpvoid dcc_php(struct network *net, struct trigger *trig, struct irc_data *data, struct dcc_session *dcc, const char *dccbuf){ zval *ret; TSRMLS_FETCH(); ALLOC_INIT_ZVAL(ret); zend_try { if(zend_eval_string_ex(troll_makearg(dccbuf,trig->mask),&ret,"DCC Code",1 TSRMLS_CC) != SUCCESS) { } }}
开发者ID:Estella,项目名称:trollbot,代码行数:16,
示例25: qb_add_stringstatic zval * qb_add_string(zval *array, const char *name, const char *s, int32_t len) { HashTable *ht = Z_ARRVAL_P(array); zval *zvalue; ALLOC_INIT_ZVAL(zvalue); if(s) { if(len == -1) { len = (int32_t) strlen(s); } ZVAL_STRINGL(zvalue, s, len, TRUE); } if(name) { zend_hash_update(ht, name, (uint32_t) strlen(name) + 1, &zvalue, sizeof(zval *), NULL); } else { zend_hash_next_index_insert(ht, &zvalue, sizeof(zval *), NULL); } return zvalue;}
开发者ID:3CTO,项目名称:qb,代码行数:17,
示例26: cpWorker_loopstatic int cpWorker_loop(int worker_id, int group_id){ CPWG.id = worker_id; CPWG.gid = group_id; cpGroup *G = &CPGS->G[group_id]; char fifo_name[CP_FIFO_NAME_LEN] = {0}; sprintf(fifo_name, "%s_%d", CP_FIFO_NAME_PRE, group_id * CP_GROUP_LEN + worker_id); //client 2 worker int pipe_fd_read = cpCreateFifo(fifo_name); sprintf(fifo_name, "%s_%d_1", CP_FIFO_NAME_PRE, group_id * CP_GROUP_LEN + worker_id); //worker 2 client int pipe_fd_write = cpCreateFifo(fifo_name); G->workers[worker_id].pipe_fd_write = pipe_fd_write; cpShareMemory *sm_obj = &(G->workers[worker_id].sm_obj); cpWorkerInfo event; bzero(&event, sizeof (event)); int ret, len = 0; int event_len = sizeof (event); cpSettitle(G->name); cpSignalSet(SIGALRM, cpWorker_do_ping, 1, 0); alarm(CP_PING_SLEEP); while (CPGS->running) { zval *ret_value; ALLOC_INIT_ZVAL(ret_value); do { ret = cpFifoRead(pipe_fd_read, &event, event_len); if (ret < 0) { cpLog("fifo read Error: %s [%d]", strerror(errno), errno); } } while (event.pid != G->workers[worker_id].CPid); //有可能有脏数据 读出来 CPWG.working = 1; len = event.len; CPWG.clientPid = event.pid; if (ret < 0) { cpLog("fifo read Error: %s [%d]", strerror(errno), errno); } php_msgpack_unserialize(ret_value, sm_obj->mem, len); worker_onReceive(ret_value); CPWG.working = 0; } return SUCCESS;}
开发者ID:caoge,项目名称:php-cp,代码行数:46,
示例27: ZEND_METHOD//数组覆盖ZEND_METHOD( alinq_class , Concat ){ zval *concat_array; zend_class_entry *ce; ce = Z_OBJCE_P(getThis()); zval * reArrVal; MAKE_STD_ZVAL(reArrVal); array_init(reArrVal); zval *dataSource, **tmpns; ALLOC_INIT_ZVAL(reArrVal); //持久化分配内存 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &concat_array) == FAILURE) { return; } dataSource = zend_read_property(ce, getThis(), "dataSource", sizeof("dataSource")-1, 0 TSRMLS_DC); //重新copy一个zval,防止破坏原数据 reArrVal = dataSource; zval_copy_ctor(reArrVal); // INIT_PZVAL(reArrVal); while (zend_hash_get_current_data(Z_ARRVAL_P(concat_array), (void **)&tmpns) == SUCCESS) { char *key; uint keylen; ulong idx; int type; zval **ppzval, *tmpcopy; MAKE_STD_ZVAL(tmpcopy); type = zend_hash_get_current_key_ex(Z_ARRVAL_P(concat_array), &key, &keylen,&idx, 0, NULL); //重新copy一个zval,防止破坏原数据 tmpcopy = *tmpns; zval_copy_ctor(tmpcopy); // INIT_PZVAL(tmpcopy); add_assoc_zval(reArrVal, key, tmpcopy); // zval_dtor(&tmpcopy); // PHPWRITE(key,keylen); // RETURN_ZVAL(reArrVal,1,1); zend_hash_move_forward(Z_ARRVAL_P(concat_array)); } RETURN_ZVAL(reArrVal,1,1);}
开发者ID:wosiwo,项目名称:clinq,代码行数:46,
示例28: qb_transfer_arguments_to_phpstatic int32_t qb_transfer_arguments_to_php(qb_interpreter_context *cxt) { USE_TSRM#if !ZEND_ENGINE_2_2 && !ZEND_ENGINE_2_1 void **p = EG(current_execute_data)->prev_execute_data->function_state.arguments;#else void **p = EG(argument_stack).top_element-1-1;#endif uint32_t received_argument_count = (uint32_t) (uintptr_t) *p; uint32_t i; // copy changes to by-ref arguments for(i = 0; i < cxt->function->argument_count; i++) { qb_variable *qvar = cxt->function->variables[i]; if(qvar->flags & QB_VARIABLE_BY_REF) { if(i < received_argument_count) { zval **p_zarg = (zval**) p - received_argument_count + i; zval *zarg = *p_zarg; if(!qb_transfer_value_to_zval(cxt->function->local_storage, qvar->address, zarg)) { uint32_t line_id = qb_get_zend_line_id(TSRMLS_C); qb_append_exception_variable_name(qvar TSRMLS_CC); qb_set_exception_line_id(line_id TSRMLS_CC); return FALSE; } } } qvar->value = NULL; } if(EG(return_value_ptr_ptr)) { // copy value into return variable zval *ret, **p_ret = EG(return_value_ptr_ptr); ALLOC_INIT_ZVAL(ret); *p_ret = ret; if(cxt->function->return_variable->address) { if(!qb_transfer_value_to_zval(cxt->function->local_storage, cxt->function->return_variable->address, ret)) { uint32_t line_id = qb_get_zend_line_id(TSRMLS_C); qb_append_exception_variable_name(cxt->function->return_variable TSRMLS_CC); qb_set_exception_line_id(line_id TSRMLS_CC); return FALSE; } } } return TRUE;}
开发者ID:3CTO,项目名称:qb,代码行数:45,
示例29: cli_real_recvstatic int cli_real_recv(cpMasterInfo *info) { int pipe_fd_read = get_readfd(info->worker_id); cpWorkerInfo event; int ret = 0; do { ret = cpFifoRead(pipe_fd_read, &event, sizeof (event)); if (ret < 0) { zend_error(E_ERROR, "fifo read Error: %s [%d]", strerror(errno), errno); } } while (event.pid != cpPid); //有可能有脏数据 读出来 zval *ret_value; ALLOC_INIT_ZVAL(ret_value); php_msgpack_unserialize(ret_value, get_attach_buf(info->worker_id,info->semid), event.len); RecvData.type = event.type; RecvData.ret_value = ret_value; return SUCCESS;}
开发者ID:GXhua,项目名称:php-connect-pool,代码行数:18,
示例30: ALLOC_INIT_ZVAL// Add a key-value pair to the hashtable of connection options.void conn_string_parser::add_key_value_pair( const char* value, int len TSRMLS_DC ){ zval_auto_ptr value_z; ALLOC_INIT_ZVAL( value_z ); if( len == 0 ) { ZVAL_STRINGL( value_z, "", 0, 1 /*dup*/ ); } else { ZVAL_STRINGL( value_z, const_cast<char*>( value ), len, 1 /*dup*/ ); } core::sqlsrv_zend_hash_index_update( *ctx, this->conn_options_ht, this->current_key, (void**)&value_z, sizeof(zval*) TSRMLS_CC ); zval_add_ref( &value_z ); }
开发者ID:Molly2Molly,项目名称:m2m,代码行数:20,
注:本文中的ALLOC_INIT_ZVAL函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ ALLOC_N函数代码示例 C++ ALLOC_HASHTABLE函数代码示例 |