本文整理汇总了C++中UNEXPECTED函数的典型用法代码示例。如果您正苦于以下问题:C++ UNEXPECTED函数的具体用法?C++ UNEXPECTED怎么用?C++ UNEXPECTED使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了UNEXPECTED函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: zend_user_unserialize
/* {{{ zend_user_unserialize */
ZEND_API int zend_user_unserialize(zval *object, zend_class_entry *ce, const unsigned char *buf, size_t buf_len, zend_unserialize_data *data)
{
zval zdata;
if (UNEXPECTED(object_init_ex(object, ce) != SUCCESS)) {
return FAILURE;
}
ZVAL_STRINGL(&zdata, (char*)buf, buf_len);
zend_call_method_with_1_params(object, ce, &ce->unserialize_func, "unserialize", NULL, &zdata);
zval_ptr_dtor(&zdata);
if (EG(exception)) {
return FAILURE;
} else {
return SUCCESS;
}
}
示例2: zend_hash_rehash
ZEND_API int zend_hash_rehash(HashTable *ht)
{
Bucket *p;
uint nIndex;
IS_CONSISTENT(ht);
if (UNEXPECTED(ht->nNumOfElements == 0)) {
return SUCCESS;
}
memset(ht->arBuckets, 0, ht->nTableSize * sizeof(Bucket *));
p = ht->pListHead;
while (p != NULL) {
nIndex = p->h & ht->nTableMask;
CONNECT_TO_BUCKET_DLLIST(p, ht->arBuckets[nIndex]);
ht->arBuckets[nIndex] = p;
p = p->pListNext;
}
return SUCCESS;
}
示例3: setLiteralsAndValues
void setLiteralsAndValues(char *lits, unsigned litCount, unsigned *vals, unsigned valCount) {
// Check wether process is already running
if (processRunning) {
fprintf(stderr, "Process already started - literals and values cannot be set at this stage");
return;
}
// Copy the literals and values
if (UNEXPECTED((literals = (char *)malloc(litCount * sizeof(char))) == NULL)) {
fprintf(stderr, "Not enough memory");
return;
} else {
memcpy(literals, lits, sizeof(unsigned)*litCount);
}
values = copyUnsigned(vals, valCount);
literalCount = litCount;
valueCount = valCount;
literalsSet = true;
}
示例4: PHP_METHOD
/**
* Changes the padding scheme used
*/
PHP_METHOD(Phalcon_Crypt, setPadding) {
zval *scheme_param = NULL, *_0;
zend_long scheme;
zephir_fetch_params(0, 1, 0, &scheme_param);
if (UNEXPECTED(Z_TYPE_P(scheme_param) != IS_LONG)) {
zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'scheme' must be a int") TSRMLS_CC);
RETURN_NULL();
}
scheme = Z_LVAL_P(scheme_param);
ZEPHIR_INIT_ZVAL_NREF(_0);
ZVAL_LONG(_0, scheme);
zephir_update_property_this(getThis(), SL("_padding"), _0 TSRMLS_CC);
RETURN_THISW();
}
示例5: PHP_METHOD
/**
* @var mixed input The text to sanitize
*/
PHP_METHOD(Phalcon_Filter_Sanitize_Lower, __invoke) {
zend_long ZEPHIR_LAST_CALL_STATUS;
zval *input_param = NULL, _0$$3, _1$$3, _2;
zval input;
zval *this_ptr = getThis();
ZVAL_UNDEF(&input);
ZVAL_UNDEF(&_0$$3);
ZVAL_UNDEF(&_1$$3);
ZVAL_UNDEF(&_2);
ZEPHIR_MM_GROW();
zephir_fetch_params(1, 1, 0, &input_param);
if (UNEXPECTED(Z_TYPE_P(input_param) != IS_STRING && Z_TYPE_P(input_param) != IS_NULL)) {
zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'input' must be of the type string") TSRMLS_CC);
RETURN_MM_NULL();
}
if (EXPECTED(Z_TYPE_P(input_param) == IS_STRING)) {
zephir_get_strval(&input, input_param);
} else {
ZEPHIR_INIT_VAR(&input);
ZVAL_EMPTY_STRING(&input);
}
if (1 == (zephir_function_exists_ex(SL("mb_convert_case") TSRMLS_CC) == SUCCESS)) {
ZVAL_LONG(&_0$$3, 1);
ZEPHIR_INIT_VAR(&_1$$3);
ZVAL_STRING(&_1$$3, "UTF-8");
ZEPHIR_RETURN_CALL_FUNCTION("mb_convert_case", NULL, 189, &input, &_0$$3, &_1$$3);
zephir_check_call_status();
RETURN_MM();
}
ZEPHIR_CALL_FUNCTION(&_2, "utf8_decode", NULL, 190, &input);
zephir_check_call_status();
zephir_fast_strtolower(return_value, &_2);
RETURN_MM();
}
示例6: zend_accel_function_hash_copy
static void zend_accel_function_hash_copy(HashTable *target, HashTable *source)
{
zend_function *function1, *function2;
uint idx;
Bucket *p;
zval *t;
for (idx = 0; idx < source->nNumUsed; idx++) {
p = source->arData + idx;
if (Z_TYPE(p->val) == IS_UNDEF) continue;
ZEND_ASSERT(p->key);
t = zend_hash_add(target, p->key, &p->val);
if (UNEXPECTED(t == NULL)) {
if (p->key->len > 0 && p->key->val[0] == 0) {
/* Mangled key */
t = zend_hash_update(target, p->key, &p->val);
} else {
t = zend_hash_find(target, p->key);
goto failure;
}
}
}
target->nInternalPointer = target->nNumOfElements ? 0 : INVALID_IDX;
return;
failure:
function1 = Z_PTR(p->val);
function2 = Z_PTR_P(t);
CG(in_compilation) = 1;
zend_set_compiled_filename(function1->op_array.filename);
CG(zend_lineno) = function1->op_array.opcodes[0].lineno;
if (function2->type == ZEND_USER_FUNCTION
&& function2->op_array.last > 0) {
zend_error(E_ERROR, "Cannot redeclare %s() (previously declared in %s:%d)",
function1->common.function_name->val,
function2->op_array.filename->val,
(int)function2->op_array.opcodes[0].lineno);
} else {
zend_error(E_ERROR, "Cannot redeclare %s()", function1->common.function_name->val);
}
}
示例7: PHP_METHOD
/**
* Phalcon\Acl\Operation constructor
*/
PHP_METHOD(Phalcon_Acl_Operation, __construct) {
zval *name_param = NULL, *description_param = NULL;
zval name, description;
zval *this_ptr = getThis();
ZVAL_UNDEF(&name);
ZVAL_UNDEF(&description);
ZEPHIR_MM_GROW();
zephir_fetch_params(1, 1, 1, &name_param, &description_param);
if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be of the type string") TSRMLS_CC);
RETURN_MM_NULL();
}
if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
zephir_get_strval(&name, name_param);
} else {
ZEPHIR_INIT_VAR(&name);
ZVAL_EMPTY_STRING(&name);
}
if (!description_param) {
ZEPHIR_INIT_VAR(&description);
ZVAL_STRING(&description, "");
} else {
zephir_get_strval(&description, description_param);
}
if (ZEPHIR_IS_STRING(&name, "*")) {
ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_acl_exception_ce, "Operation name cannot be '*'", "phalcon/acl/operation.zep", 40);
return;
}
zephir_update_property_zval(this_ptr, SL("name"), &name);
if (!(Z_TYPE_P(&description) == IS_UNDEF) && Z_STRLEN_P(&description)) {
zephir_update_property_zval(this_ptr, SL("description"), &description);
}
ZEPHIR_MM_RESTORE();
}
示例8: class_name_type_hint
static zend_bool class_name_type_hint(const zend_op_array *op_array, uint32_t arg_num)
{
zend_arg_info *arg_info;
if (arg_num > 0) {
if (op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS) {
if (EXPECTED(arg_num <= op_array->num_args)) {
arg_info = &op_array->arg_info[arg_num-1];
} else if (UNEXPECTED(op_array->fn_flags & ZEND_ACC_VARIADIC)) {
arg_info = &op_array->arg_info[op_array->num_args];
} else {
return 0;
}
return ZEND_TYPE_IS_CLASS(arg_info->type);
}
} else {
arg_info = op_array->arg_info - 1;
return ZEND_TYPE_IS_CLASS(arg_info->type);
}
return 0;
}
示例9: process_args
static int process_args(args_t * args)
{
assert(args != NULL);
switch (args->cmd) {
case c_INJECT:
command_inject(args);
break;
case c_REMOVE:
command_remove(args);
break;
case c_HEXDUMP:
command_hexdump(args);
break;
default:
UNEXPECTED("NOT IMPLEMENTED YET => '%c'", args->cmd);
return -1;
}
return 0;
}
示例10: PHP_METHOD
/**
* Gets an attribute a message using the array syntax
*
*<code>
* print_r(
* $messages[0]
* );
*</code>
*
* @param int index
* @return \Phalcon\Validation\Message
*/
PHP_METHOD(Phalcon_Validation_Message_Group, offsetGet) {
zval *index_param = NULL, *message = NULL, *_0;
zend_long index;
zephir_fetch_params(0, 1, 0, &index_param);
if (UNEXPECTED(Z_TYPE_P(index_param) != IS_LONG)) {
zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'index' must be a int") TSRMLS_CC);
RETURN_NULL();
}
index = Z_LVAL_P(index_param);
_0 = zephir_fetch_nproperty_this(this_ptr, SL("_messages"), PH_NOISY_CC);
if (zephir_array_isset_long_fetch(&message, _0, index, 1 TSRMLS_CC)) {
RETURN_CTORW(message);
}
RETURN_BOOL(0);
}
示例11: PHP_METHOD
PHP_METHOD(jz_data, offsetUnset) {
zval *readonly = zend_read_property(jz_data_class_entry, getThis(), ZEND_STRL(JZ_DATA_PROPERT_NAME_READONLY), 1, NULL);
if (Z_TYPE_P(readonly) == IS_FALSE) {
zval *props;
zend_string *name;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &name) == FAILURE) {
return;
}
props = zend_read_property(jz_data_class_entry, getThis(), ZEND_STRL(JZ_DATA_PROPERT_NAME), 1, NULL);
if (UNEXPECTED(Z_TYPE_P(props) != IS_ARRAY)) {
RETURN_FALSE;
}
if (zend_hash_del(Z_ARRVAL_P(props), name) == SUCCESS) {
RETURN_TRUE;
}
}
RETURN_FALSE;
}
示例12: PHP_METHOD
/**
* Phalcon\Mvc\Model\Relation constructor
*
* @param int type
* @param string|array fields
* @param string|array referencedFields
* @param array options
*/
PHP_METHOD(Phalcon_Mvc_Model_Relation, __construct) {
zval referencedModel;
zval *type, type_sub, *referencedModel_param = NULL, *fields, fields_sub, *referencedFields, referencedFields_sub, *options = NULL, options_sub, __$null;
zval *this_ptr = getThis();
ZVAL_UNDEF(&type_sub);
ZVAL_UNDEF(&fields_sub);
ZVAL_UNDEF(&referencedFields_sub);
ZVAL_UNDEF(&options_sub);
ZVAL_NULL(&__$null);
ZVAL_UNDEF(&referencedModel);
ZEPHIR_MM_GROW();
zephir_fetch_params(1, 4, 1, &type, &referencedModel_param, &fields, &referencedFields, &options);
if (UNEXPECTED(Z_TYPE_P(referencedModel_param) != IS_STRING && Z_TYPE_P(referencedModel_param) != IS_NULL)) {
zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'referencedModel' must be of the type string") TSRMLS_CC);
RETURN_MM_NULL();
}
if (EXPECTED(Z_TYPE_P(referencedModel_param) == IS_STRING)) {
zephir_get_strval(&referencedModel, referencedModel_param);
} else {
ZEPHIR_INIT_VAR(&referencedModel);
ZVAL_EMPTY_STRING(&referencedModel);
}
if (!options) {
options = &options_sub;
options = &__$null;
}
zephir_update_property_zval(this_ptr, SL("_type"), type);
zephir_update_property_zval(this_ptr, SL("_referencedModel"), &referencedModel);
zephir_update_property_zval(this_ptr, SL("_fields"), fields);
zephir_update_property_zval(this_ptr, SL("_referencedFields"), referencedFields);
zephir_update_property_zval(this_ptr, SL("_options"), options);
ZEPHIR_MM_RESTORE();
}
示例13: PHP_METHOD
/**
* Removes a property from the internal bag
*
*<code>
* $user->remove("name");
*</code>
*/
PHP_METHOD(Phalcon_Session_Bag, remove) {
zend_long ZEPHIR_LAST_CALL_STATUS;
zval *property_param = NULL, *_0, *data = NULL, *_1$$4, *_2$$4;
zval *property = NULL;
ZEPHIR_MM_GROW();
zephir_fetch_params(1, 1, 0, &property_param);
if (UNEXPECTED(Z_TYPE_P(property_param) != IS_STRING && Z_TYPE_P(property_param) != IS_NULL)) {
zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'property' must be a string") TSRMLS_CC);
RETURN_MM_NULL();
}
if (EXPECTED(Z_TYPE_P(property_param) == IS_STRING)) {
zephir_get_strval(property, property_param);
} else {
ZEPHIR_INIT_VAR(property);
ZVAL_EMPTY_STRING(property);
}
_0 = zephir_fetch_nproperty_this(this_ptr, SL("_initialized"), PH_NOISY_CC);
if (ZEPHIR_IS_FALSE_IDENTICAL(_0)) {
ZEPHIR_CALL_METHOD(NULL, this_ptr, "initialize", NULL, 0);
zephir_check_call_status();
}
ZEPHIR_OBS_VAR(data);
zephir_read_property_this(&data, this_ptr, SL("_data"), PH_NOISY_CC);
if (zephir_array_isset(data, property)) {
zephir_array_unset(&data, property, PH_SEPARATE);
_1$$4 = zephir_fetch_nproperty_this(this_ptr, SL("_session"), PH_NOISY_CC);
_2$$4 = zephir_fetch_nproperty_this(this_ptr, SL("_name"), PH_NOISY_CC);
ZEPHIR_CALL_METHOD(NULL, _1$$4, "set", NULL, 0, _2$$4, data);
zephir_check_call_status();
zephir_update_property_this(getThis(), SL("_data"), data TSRMLS_CC);
RETURN_MM_BOOL(1);
}
RETURN_MM_BOOL(0);
}
示例14: oop_method_call_handler
/** see http://lxr.php.net/xref/PHP_7_0/Zend/zend_vm_def.h#2892 */
static int oop_method_call_handler(zend_execute_data *execute_data)
{
const zend_op *opline = execute_data->opline;
zend_free_op free_op1, free_op2;
zval *obj = NULL, *method = NULL;
zend_class_entry *ce = NULL;
zend_function *fbc = NULL;
zend_execute_data *call = NULL;
obj = zend_get_zval_ptr(opline->op1_type, &opline->op1, execute_data, &free_op1, BP_VAR_R);
method = zend_get_zval_ptr(opline->op2_type, &opline->op2, execute_data, &free_op2, BP_VAR_R);
if (Z_TYPE_P(obj) == IS_STRING) {
ce = OOP_G(oop_handlers)[Z_TYPE_P(obj)];
if (!ce) {
return ZEND_USER_OPCODE_DISPATCH;
}
fbc = zend_std_get_static_method(ce, Z_STR_P(method), NULL);
if (UNEXPECTED(fbc == NULL)) {
php_error(E_ERROR, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(method));
}
fbc = oop_get_indirection_func(ce, fbc, method, obj);
call = zend_vm_stack_push_call_frame(ZEND_CALL_NESTED_FUNCTION, fbc, opline->extended_value, ce, NULL);
call->prev_execute_data = EX(call);
EX(call) = call;
FREE_OP(free_op2);
FREE_OP_IF_VAR(free_op1);
execute_data->opline++;
return ZEND_USER_OPCODE_CONTINUE;
}
return ZEND_USER_OPCODE_DISPATCH;
}
示例15: gc_remove_from_buffer
ZEND_API void ZEND_FASTCALL gc_remove_from_buffer(zend_refcounted *ref)
{
gc_root_buffer *root;
uint32_t idx = GC_REF_ADDRESS(ref);
GC_BENCH_INC(zval_remove_from_buffer);
if (!GC_REF_CHECK_COLOR(ref, GC_BLACK)) {
GC_TRACE_SET_COLOR(ref, GC_BLACK);
}
GC_REF_SET_INFO(ref, 0);
/* Perform decompression only in case of large buffers */
if (UNEXPECTED(GC_G(first_unused) >= GC_MAX_UNCOMPRESSED)) {
gc_remove_compressed(ref, idx);
return;
}
ZEND_ASSERT(idx);
root = GC_IDX2PTR(idx);
gc_remove_from_roots(root);
}