Skip to content

Commit

Permalink
Fixing double tracking of variables in memory frame
Browse files Browse the repository at this point in the history
  • Loading branch information
phalcon committed May 16, 2013
1 parent 2faa826 commit c2778ad
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 31 deletions.
24 changes: 20 additions & 4 deletions build/32bits/phalcon.c
Original file line number Diff line number Diff line change
Expand Up @@ -1112,13 +1112,14 @@ static void PHALCON_FASTCALL phalcon_copy_ctor(zval *destiny, zval *origin);
} \
}

//phalcon_memory_observe(&z TSRMLS_CC); \

#define PHALCON_SEPARATE(z) \
{ \
zval *orig_ptr = z; \
if (Z_REFCOUNT_P(orig_ptr) > 1) { \
Z_DELREF_P(orig_ptr); \
ALLOC_ZVAL(z); \
phalcon_memory_observe(&z TSRMLS_CC); \
*z = *orig_ptr; \
zval_copy_ctor(z); \
Z_SET_REFCOUNT_P(z, 1); \
Expand Down Expand Up @@ -26969,7 +26970,7 @@ static PHP_METHOD(Phalcon_Db_Result_Pdo, numRows){

PHALCON_INIT_VAR(type);
PHALCON_CALL_METHOD(type, connection, "gettype");
if (PHALCON_IS_STRING(type, "sqlite")) {
if (PHALCON_IS_STRING(type, "sqlite") || PHALCON_IS_STRING(type, "oci")) {

PHALCON_OBS_VAR(sql_statement);
phalcon_read_property_this_quick(&sql_statement, this_ptr, SL("_sqlStatement"), 18972457UL, PH_NOISY_CC);
Expand Down Expand Up @@ -67778,6 +67779,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate){
zval *primary_field = NULL, *attribute_field = NULL, *params;
zval *class_name, *message = NULL, *type;
zval *r0 = NULL, *r1 = NULL;
zval *message_field = NULL, *mmesage = NULL;
HashTable *ah0, *ah1;
HashPosition hp0, hp1;
zval **hd;
Expand Down Expand Up @@ -67830,6 +67832,9 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate){
return;
}

PHALCON_INIT_VAR(message_field);
array_init(message_field);

while (zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) == SUCCESS) {

PHALCON_GET_FOREACH_VALUE(compose_field);
Expand Down Expand Up @@ -67868,6 +67873,8 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate){
phalcon_array_append(&bind_types, bind_type, PH_SEPARATE TSRMLS_CC);
PHALCON_SEPARATE(number);
increment_function(number);

phalcon_array_append(&message_field, compose_field, PH_SEPARATE TSRMLS_CC);

zend_hash_move_forward_ex(ah0, &hp0);
}
Expand Down Expand Up @@ -67995,9 +68002,18 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate){
PHALCON_CALL_METHOD_PARAMS_1_KEY(message, this_ptr, "getoption", option, 1191969182UL);
if (!zend_is_true(message)) {
PHALCON_INIT_NVAR(message);
PHALCON_CONCAT_SVS(message, "Value of field '", field, "' is already present in another record");
}

if( Z_TYPE_P(field) == IS_ARRAY ){

PHALCON_INIT_VAR(mmesage);
phalcon_fast_join_str(mmesage, SL("', '"), message_field TSRMLS_CC);
PHALCON_CPY_WRT(message_field, mmesage);

PHALCON_CONCAT_SVS(message, "Value of fields '", mmesage,"' is already present in another record");
}else{
PHALCON_CONCAT_SVS(message, "Value of field '", field,"' is already present in another record");
}
}
PHALCON_INIT_VAR(type);
ZVAL_STRING(type, "Unique", 1);
PHALCON_CALL_METHOD_PARAMS_3_NORETURN_KEY(this_ptr, "appendmessage", message, field, type, 2313005058UL);
Expand Down
33 changes: 22 additions & 11 deletions build/32bits/phalcon.h
Original file line number Diff line number Diff line change
Expand Up @@ -470,20 +470,18 @@ zend_class_entry *phalcon_db_adapterinterface_ce;

PHALCON_INIT_CLASS(Phalcon_Db_AdapterInterface);

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface___construct, 0, 0, 1)
ZEND_ARG_INFO(0, descriptor)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_fetchone, 0, 0, 1)
ZEND_ARG_INFO(0, sqlQuery)
ZEND_ARG_INFO(0, fetchMode)
ZEND_ARG_INFO(0, placeholders)
ZEND_ARG_INFO(0, bindParams)
ZEND_ARG_INFO(0, bindTypes)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_fetchall, 0, 0, 1)
ZEND_ARG_INFO(0, sqlQuery)
ZEND_ARG_INFO(0, fetchMode)
ZEND_ARG_INFO(0, placeholders)
ZEND_ARG_INFO(0, bindParams)
ZEND_ARG_INFO(0, bindTypes)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_insert, 0, 0, 2)
Expand Down Expand Up @@ -662,7 +660,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_describecolumns, 0, 0
ZEND_END_ARG_INFO()

PHALCON_INIT_FUNCS(phalcon_db_adapterinterface_method_entry){
PHP_ABSTRACT_ME(Phalcon_Db_AdapterInterface, __construct, arginfo_phalcon_db_adapterinterface___construct)
PHP_ABSTRACT_ME(Phalcon_Db_AdapterInterface, __construct, NULL)
PHP_ABSTRACT_ME(Phalcon_Db_AdapterInterface, fetchOne, arginfo_phalcon_db_adapterinterface_fetchone)
PHP_ABSTRACT_ME(Phalcon_Db_AdapterInterface, fetchAll, arginfo_phalcon_db_adapterinterface_fetchall)
PHP_ABSTRACT_ME(Phalcon_Db_AdapterInterface, insert, arginfo_phalcon_db_adapterinterface_insert)
Expand Down Expand Up @@ -1281,6 +1279,7 @@ ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_dispatcherinterface_getparam, 0, 0, 1)
ZEND_ARG_INFO(0, param)
ZEND_ARG_INFO(0, filters)
ZEND_ARG_INFO(0, defaultValue)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_dispatcherinterface_forward, 0, 0, 1)
Expand Down Expand Up @@ -1395,6 +1394,7 @@ PHALCON_INIT_CLASS(Phalcon_Mvc_CollectionInterface);

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface___construct, 0, 0, 0)
ZEND_ARG_INFO(0, dependencyInjector)
ZEND_ARG_INFO(0, modelsManager)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_setid, 0, 0, 1)
Expand Down Expand Up @@ -1555,7 +1555,7 @@ zend_class_entry *phalcon_mvc_model_queryinterface_ce;

PHALCON_INIT_CLASS(Phalcon_Mvc_Model_QueryInterface);

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_model_queryinterface___construct, 0, 0, 1)
ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_model_queryinterface___construct, 0, 0, 0)
ZEND_ARG_INFO(0, phql)
ZEND_END_ARG_INFO()

Expand Down Expand Up @@ -1944,6 +1944,14 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_ismethod, 0, 0, 1)
ZEND_ARG_INFO(0, methods)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_hasfiles, 0, 0, 0)
ZEND_ARG_INFO(0, notErrored)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_getuploadedfiles, 0, 0, 0)
ZEND_ARG_INFO(0, notErrored)
ZEND_END_ARG_INFO()

PHALCON_INIT_FUNCS(phalcon_http_requestinterface_method_entry){
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, get, arginfo_phalcon_http_requestinterface_get)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getPost, arginfo_phalcon_http_requestinterface_getpost)
Expand Down Expand Up @@ -1972,8 +1980,8 @@ PHALCON_INIT_FUNCS(phalcon_http_requestinterface_method_entry){
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, isHead, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, isDelete, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, isOptions, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, hasFiles, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getUploadedFiles, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, hasFiles, arginfo_phalcon_http_requestinterface_hasfiles)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getUploadedFiles, arginfo_phalcon_http_requestinterface_getuploadedfiles)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getHTTPReferer, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getAcceptableContent, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getBestAccept, NULL)
Expand Down Expand Up @@ -2820,7 +2828,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_escaperinterface_escapehtml, 0, 0, 1)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_escaperinterface_escapehtmlattr, 0, 0, 1)
ZEND_ARG_INFO(0, text)
ZEND_ARG_INFO(0, attribute)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_escaperinterface_escapecss, 0, 0, 1)
Expand Down Expand Up @@ -3075,6 +3083,7 @@ PHALCON_INIT_CLASS(Phalcon_Events_ManagerInterface);
ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_events_managerinterface_attach, 0, 0, 2)
ZEND_ARG_INFO(0, eventType)
ZEND_ARG_INFO(0, handler)
ZEND_ARG_INFO(0, priority)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_events_managerinterface_dettachall, 0, 0, 0)
Expand All @@ -3085,6 +3094,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_events_managerinterface_fire, 0, 0, 2)
ZEND_ARG_INFO(0, eventType)
ZEND_ARG_INFO(0, source)
ZEND_ARG_INFO(0, data)
ZEND_ARG_INFO(0, cancelable)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_events_managerinterface_getlisteners, 0, 0, 1)
Expand All @@ -3109,6 +3119,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_model_messageinterface___construct, 0
ZEND_ARG_INFO(0, message)
ZEND_ARG_INFO(0, field)
ZEND_ARG_INFO(0, type)
ZEND_ARG_INFO(0, model)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_model_messageinterface_settype, 0, 0, 1)
Expand Down
24 changes: 20 additions & 4 deletions build/safe/phalcon.c
Original file line number Diff line number Diff line change
Expand Up @@ -1112,13 +1112,14 @@ static void PHALCON_FASTCALL phalcon_copy_ctor(zval *destiny, zval *origin);
} \
}

//phalcon_memory_observe(&z TSRMLS_CC); \

#define PHALCON_SEPARATE(z) \
{ \
zval *orig_ptr = z; \
if (Z_REFCOUNT_P(orig_ptr) > 1) { \
Z_DELREF_P(orig_ptr); \
ALLOC_ZVAL(z); \
phalcon_memory_observe(&z TSRMLS_CC); \
*z = *orig_ptr; \
zval_copy_ctor(z); \
Z_SET_REFCOUNT_P(z, 1); \
Expand Down Expand Up @@ -26969,7 +26970,7 @@ static PHP_METHOD(Phalcon_Db_Result_Pdo, numRows){

PHALCON_INIT_VAR(type);
PHALCON_CALL_METHOD(type, connection, "gettype");
if (PHALCON_IS_STRING(type, "sqlite")) {
if (PHALCON_IS_STRING(type, "sqlite") || PHALCON_IS_STRING(type, "oci")) {

PHALCON_OBS_VAR(sql_statement);
phalcon_read_property_this(&sql_statement, this_ptr, SL("_sqlStatement"), PH_NOISY_CC);
Expand Down Expand Up @@ -67778,6 +67779,7 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate){
zval *primary_field = NULL, *attribute_field = NULL, *params;
zval *class_name, *message = NULL, *type;
zval *r0 = NULL, *r1 = NULL;
zval *message_field = NULL, *mmesage = NULL;
HashTable *ah0, *ah1;
HashPosition hp0, hp1;
zval **hd;
Expand Down Expand Up @@ -67830,6 +67832,9 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate){
return;
}

PHALCON_INIT_VAR(message_field);
array_init(message_field);

while (zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) == SUCCESS) {

PHALCON_GET_FOREACH_VALUE(compose_field);
Expand Down Expand Up @@ -67868,6 +67873,8 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate){
phalcon_array_append(&bind_types, bind_type, PH_SEPARATE TSRMLS_CC);
PHALCON_SEPARATE(number);
increment_function(number);

phalcon_array_append(&message_field, compose_field, PH_SEPARATE TSRMLS_CC);

zend_hash_move_forward_ex(ah0, &hp0);
}
Expand Down Expand Up @@ -67995,9 +68002,18 @@ static PHP_METHOD(Phalcon_Mvc_Model_Validator_Uniqueness, validate){
PHALCON_CALL_METHOD_PARAMS_1(message, this_ptr, "getoption", option);
if (!zend_is_true(message)) {
PHALCON_INIT_NVAR(message);
PHALCON_CONCAT_SVS(message, "Value of field '", field, "' is already present in another record");
}

if( Z_TYPE_P(field) == IS_ARRAY ){

PHALCON_INIT_VAR(mmesage);
phalcon_fast_join_str(mmesage, SL("', '"), message_field TSRMLS_CC);
PHALCON_CPY_WRT(message_field, mmesage);

PHALCON_CONCAT_SVS(message, "Value of fields '", mmesage,"' is already present in another record");
}else{
PHALCON_CONCAT_SVS(message, "Value of field '", field,"' is already present in another record");
}
}
PHALCON_INIT_VAR(type);
ZVAL_STRING(type, "Unique", 1);
PHALCON_CALL_METHOD_PARAMS_3_NORETURN(this_ptr, "appendmessage", message, field, type);
Expand Down
33 changes: 22 additions & 11 deletions build/safe/phalcon.h
Original file line number Diff line number Diff line change
Expand Up @@ -470,20 +470,18 @@ zend_class_entry *phalcon_db_adapterinterface_ce;

PHALCON_INIT_CLASS(Phalcon_Db_AdapterInterface);

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface___construct, 0, 0, 1)
ZEND_ARG_INFO(0, descriptor)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_fetchone, 0, 0, 1)
ZEND_ARG_INFO(0, sqlQuery)
ZEND_ARG_INFO(0, fetchMode)
ZEND_ARG_INFO(0, placeholders)
ZEND_ARG_INFO(0, bindParams)
ZEND_ARG_INFO(0, bindTypes)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_fetchall, 0, 0, 1)
ZEND_ARG_INFO(0, sqlQuery)
ZEND_ARG_INFO(0, fetchMode)
ZEND_ARG_INFO(0, placeholders)
ZEND_ARG_INFO(0, bindParams)
ZEND_ARG_INFO(0, bindTypes)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_insert, 0, 0, 2)
Expand Down Expand Up @@ -662,7 +660,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_db_adapterinterface_describecolumns, 0, 0
ZEND_END_ARG_INFO()

PHALCON_INIT_FUNCS(phalcon_db_adapterinterface_method_entry){
PHP_ABSTRACT_ME(Phalcon_Db_AdapterInterface, __construct, arginfo_phalcon_db_adapterinterface___construct)
PHP_ABSTRACT_ME(Phalcon_Db_AdapterInterface, __construct, NULL)
PHP_ABSTRACT_ME(Phalcon_Db_AdapterInterface, fetchOne, arginfo_phalcon_db_adapterinterface_fetchone)
PHP_ABSTRACT_ME(Phalcon_Db_AdapterInterface, fetchAll, arginfo_phalcon_db_adapterinterface_fetchall)
PHP_ABSTRACT_ME(Phalcon_Db_AdapterInterface, insert, arginfo_phalcon_db_adapterinterface_insert)
Expand Down Expand Up @@ -1281,6 +1279,7 @@ ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_dispatcherinterface_getparam, 0, 0, 1)
ZEND_ARG_INFO(0, param)
ZEND_ARG_INFO(0, filters)
ZEND_ARG_INFO(0, defaultValue)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_dispatcherinterface_forward, 0, 0, 1)
Expand Down Expand Up @@ -1395,6 +1394,7 @@ PHALCON_INIT_CLASS(Phalcon_Mvc_CollectionInterface);

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface___construct, 0, 0, 0)
ZEND_ARG_INFO(0, dependencyInjector)
ZEND_ARG_INFO(0, modelsManager)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_collectioninterface_setid, 0, 0, 1)
Expand Down Expand Up @@ -1555,7 +1555,7 @@ zend_class_entry *phalcon_mvc_model_queryinterface_ce;

PHALCON_INIT_CLASS(Phalcon_Mvc_Model_QueryInterface);

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_model_queryinterface___construct, 0, 0, 1)
ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_model_queryinterface___construct, 0, 0, 0)
ZEND_ARG_INFO(0, phql)
ZEND_END_ARG_INFO()

Expand Down Expand Up @@ -1944,6 +1944,14 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_ismethod, 0, 0, 1)
ZEND_ARG_INFO(0, methods)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_hasfiles, 0, 0, 0)
ZEND_ARG_INFO(0, notErrored)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_http_requestinterface_getuploadedfiles, 0, 0, 0)
ZEND_ARG_INFO(0, notErrored)
ZEND_END_ARG_INFO()

PHALCON_INIT_FUNCS(phalcon_http_requestinterface_method_entry){
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, get, arginfo_phalcon_http_requestinterface_get)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getPost, arginfo_phalcon_http_requestinterface_getpost)
Expand Down Expand Up @@ -1972,8 +1980,8 @@ PHALCON_INIT_FUNCS(phalcon_http_requestinterface_method_entry){
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, isHead, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, isDelete, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, isOptions, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, hasFiles, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getUploadedFiles, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, hasFiles, arginfo_phalcon_http_requestinterface_hasfiles)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getUploadedFiles, arginfo_phalcon_http_requestinterface_getuploadedfiles)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getHTTPReferer, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getAcceptableContent, NULL)
PHP_ABSTRACT_ME(Phalcon_Http_RequestInterface, getBestAccept, NULL)
Expand Down Expand Up @@ -2820,7 +2828,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_escaperinterface_escapehtml, 0, 0, 1)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_escaperinterface_escapehtmlattr, 0, 0, 1)
ZEND_ARG_INFO(0, text)
ZEND_ARG_INFO(0, attribute)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_escaperinterface_escapecss, 0, 0, 1)
Expand Down Expand Up @@ -3075,6 +3083,7 @@ PHALCON_INIT_CLASS(Phalcon_Events_ManagerInterface);
ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_events_managerinterface_attach, 0, 0, 2)
ZEND_ARG_INFO(0, eventType)
ZEND_ARG_INFO(0, handler)
ZEND_ARG_INFO(0, priority)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_events_managerinterface_dettachall, 0, 0, 0)
Expand All @@ -3085,6 +3094,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_events_managerinterface_fire, 0, 0, 2)
ZEND_ARG_INFO(0, eventType)
ZEND_ARG_INFO(0, source)
ZEND_ARG_INFO(0, data)
ZEND_ARG_INFO(0, cancelable)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_events_managerinterface_getlisteners, 0, 0, 1)
Expand All @@ -3109,6 +3119,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_model_messageinterface___construct, 0
ZEND_ARG_INFO(0, message)
ZEND_ARG_INFO(0, field)
ZEND_ARG_INFO(0, type)
ZEND_ARG_INFO(0, model)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_phalcon_mvc_model_messageinterface_settype, 0, 0, 1)
Expand Down
3 changes: 2 additions & 1 deletion ext/kernel/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,13 +132,14 @@ extern void PHALCON_FASTCALL phalcon_copy_ctor(zval *destiny, zval *origin);
} \
}

//phalcon_memory_observe(&z TSRMLS_CC); \
#define PHALCON_SEPARATE(z) \
{ \
zval *orig_ptr = z; \
if (Z_REFCOUNT_P(orig_ptr) > 1) { \
Z_DELREF_P(orig_ptr); \
ALLOC_ZVAL(z); \
phalcon_memory_observe(&z TSRMLS_CC); \
*z = *orig_ptr; \
zval_copy_ctor(z); \
Z_SET_REFCOUNT_P(z, 1); \
Expand Down

0 comments on commit c2778ad

Please sign in to comment.