void _hprose_class_manager_register(char *name, int32_t nlen, char *alias, int32_t alen TSRMLS_DC) { hprose_bytes_io *_name = hprose_bytes_io_create(name, nlen); hprose_bytes_io *_alias = hprose_bytes_io_create(alias, alen); if (!HPROSE_G(cache1)) { ALLOC_HASHTABLE(HPROSE_G(cache1)); zend_hash_init(HPROSE_G(cache1), 64, NULL, hprose_bytes_io_dtor, 0); } if (!HPROSE_G(cache2)) { ALLOC_HASHTABLE(HPROSE_G(cache2)); zend_hash_init(HPROSE_G(cache2), 64, NULL, hprose_bytes_io_dtor, 0); } zend_hash_str_update_ptr(HPROSE_G(cache1), name, nlen, _alias); zend_hash_str_update_ptr(HPROSE_G(cache2), alias, alen, _name); }
static int lsapi_activate_user_ini_mk_user_config(_lsapi_activate_user_ini_ctx *ctx, void* next) { fn_activate_user_ini_chain_t *fn_next = next; /* Find cached config entry: If not found, create one */ ctx->entry = zend_hash_str_find_ptr(&user_config_cache, ctx->path, ctx->path_len); if (ctx->entry) { DEBUG_MESSAGE("found entry for %s", ctx->path); } else { DEBUG_MESSAGE("entry for %s not found, creating new entry", ctx->path); ctx->entry = pemalloc(sizeof(user_config_cache_entry), 1); ctx->entry->expires = 0; zend_hash_init(&ctx->entry->user_config, 0, NULL, config_zval_dtor, 1); zend_hash_str_update_ptr(&user_config_cache, ctx->path, ctx->path_len, ctx->entry); } if (*fn_next) { return (*fn_next)(ctx, fn_next + 1); } else { return SUCCESS; } }
/* {{{ php_mbregex_compile_pattern */ static php_mb_regex_t *php_mbregex_compile_pattern(const char *pattern, size_t patlen, OnigOptionType options, OnigEncoding enc, OnigSyntaxType *syntax) { int err_code = 0; php_mb_regex_t *retval = NULL, *rc = NULL; OnigErrorInfo err_info; OnigUChar err_str[ONIG_MAX_ERROR_MESSAGE_LEN]; rc = zend_hash_str_find_ptr(&MBREX(ht_rc), (char *)pattern, patlen); if (!rc || onig_get_options(rc) != options || onig_get_encoding(rc) != enc || onig_get_syntax(rc) != syntax) { if ((err_code = onig_new(&retval, (OnigUChar *)pattern, (OnigUChar *)(pattern + patlen), options, enc, syntax, &err_info)) != ONIG_NORMAL) { onig_error_code_to_str(err_str, err_code, &err_info); php_error_docref(NULL, E_WARNING, "mbregex compile err: %s", err_str); retval = NULL; goto out; } if (rc == MBREX(search_re)) { /* reuse the new rc? see bug #72399 */ MBREX(search_re) = NULL; } zend_hash_str_update_ptr(&MBREX(ht_rc), (char *)pattern, patlen, retval); } else { retval = rc; } out: return retval; }
/** * {{{ proto bool SolrInputDocument::setVersion(int version) * Enable optimistic concurrency using assertions */ PHP_METHOD(SolrInputDocument, setVersion) { long version = 0; solr_document_t *doc_entry = NULL; solr_field_list_t *field = NULL; solr_char_t *field_name = "_version_"; COMPAT_ARG_SIZE_T field_name_length = sizeof("_version_"); char version_str[80]; zend_error_handling error_handling; zend_replace_error_handling(EH_THROW, solr_ce_SolrIllegalArgumentException, &error_handling TSRMLS_CC); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &version) == FAILURE) { zend_restore_error_handling(&error_handling TSRMLS_CC); return; } zend_restore_error_handling(&error_handling TSRMLS_CC); if (solr_fetch_document_entry(getThis(), &doc_entry TSRMLS_CC) == FAILURE) { return; } field = pemalloc(sizeof(solr_field_list_t), SOLR_DOCUMENT_FIELD_PERSISTENT); field->count = 0L; field->field_boost = 0.0f; field->field_name = pestrdup(field_name, SOLR_DOCUMENT_FIELD_PERSISTENT); field->head = field->last = NULL; snprintf(version_str, 80, "%ld", version); solr_document_insert_field_value(field, version_str, 0.0); if ((zend_hash_str_update_ptr(doc_entry->fields, field_name, field_name_length, field) == NULL )) { solr_throw_exception_ex(solr_ce_SolrException, SOLR_ERROR_1008 TSRMLS_CC, SOLR_FILE_LINE_FUNC, SOLR_ERROR_1008_MSG); solr_destroy_field_list(&field); return; } RETURN_TRUE; }
/* {{{ php_mbregex_compile_pattern */ static php_mb_regex_t *php_mbregex_compile_pattern(const char *pattern, int patlen, OnigOptionType options, OnigEncoding enc, OnigSyntaxType *syntax) { int err_code = 0; php_mb_regex_t *retval = NULL, *rc = NULL; OnigErrorInfo err_info; OnigUChar err_str[ONIG_MAX_ERROR_MESSAGE_LEN]; rc = zend_hash_str_find_ptr(&MBREX(ht_rc), (char *)pattern, patlen); if (!rc || rc->options != options || rc->enc != enc || rc->syntax != syntax) { if ((err_code = onig_new(&retval, (OnigUChar *)pattern, (OnigUChar *)(pattern + patlen), options, enc, syntax, &err_info)) != ONIG_NORMAL) { onig_error_code_to_str(err_str, err_code, err_info); php_error_docref(NULL, E_WARNING, "mbregex compile err: %s", err_str); retval = NULL; goto out; } zend_hash_str_update_ptr(&MBREX(ht_rc), (char *)pattern, patlen, retval); } else if (rc) { retval = rc; } out: return retval; }
PHPAPI int php_stream_xport_register(const char *protocol, php_stream_transport_factory factory) { return zend_hash_str_update_ptr(&xport_hash, protocol, strlen(protocol), factory) ? SUCCESS : FAILURE; }