From 4e009e160fcdefe46905c8eb2f0e39e7c884ae99 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 08:23:57 -0600 Subject: [PATCH 01/42] prepping changelog for 5.5.1 --- CHANGELOG-5.0.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG-5.0.md b/CHANGELOG-5.0.md index e5366d1631..f3c8745324 100644 --- a/CHANGELOG-5.0.md +++ b/CHANGELOG-5.0.md @@ -1,5 +1,15 @@ # Changelog +## [5.5.0](https://github.com/phalcon/cphalcon/releases/tag/v5.5.1) (xxxx-xx-xx) + +### Changed + +### Added + +### Fixed + +### Removed + ## [5.5.0](https://github.com/phalcon/cphalcon/releases/tag/v5.5.0) (2023-12-25) ### Changed From 3debc43748c147ed32a188610781118ff15444b6 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 08:30:09 -0600 Subject: [PATCH 02/42] removing 'order' from 'count() --- phalcon/Mvc/Model.zep | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/phalcon/Mvc/Model.zep b/phalcon/Mvc/Model.zep index b16403129a..b48585a1a8 100644 --- a/phalcon/Mvc/Model.zep +++ b/phalcon/Mvc/Model.zep @@ -1184,6 +1184,13 @@ abstract class Model extends AbstractInjectionAware implements EntityInterface, { var result; + /** + * Removing `order by` for postgresql + */ + if (isset(parameters["order"])) { + unset parameters["order"]; + } + let result = self::groupResult("COUNT", "rowcount", parameters); if typeof result === "string" { From ba5cac03925405a228422c5e3ff08a79d975d44e Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 09:59:04 -0600 Subject: [PATCH 03/42] added tests --- tests/database/Mvc/Model/CountCest.php | 35 +++++++++++++-- .../Paginator/Adapter/Model/PaginateCest.php | 45 +++++++++++++++++++ 2 files changed, 77 insertions(+), 3 deletions(-) diff --git a/tests/database/Mvc/Model/CountCest.php b/tests/database/Mvc/Model/CountCest.php index 758c0c0c5a..9b22bcc8de 100644 --- a/tests/database/Mvc/Model/CountCest.php +++ b/tests/database/Mvc/Model/CountCest.php @@ -30,7 +30,7 @@ class CountCest /** * @var InvoicesMigration */ - private $invoiceMigration; + private InvoicesMigration $invoiceMigration; /** * Executed before each test @@ -63,7 +63,7 @@ public function _before(DatabaseTester $I): void * @group pgsql * @group sqlite */ - public function mvcModelCount(DatabaseTester $I) + public function mvcModelCount(DatabaseTester $I): void { /** * TODO: The following tests need to skip sqlite because we will get @@ -159,7 +159,7 @@ public function mvcModelCount(DatabaseTester $I) * @group mysql * @group pgsql */ - public function mvcModelCountColumnMap(DatabaseTester $I) + public function mvcModelCountColumnMap(DatabaseTester $I):void { /** * @todo The following tests need to skip sqlite because we will get @@ -212,6 +212,35 @@ public function mvcModelCountColumnMap(DatabaseTester $I) $I->assertEquals(20, (int) $results[2]->rowcount); } + /** + * Tests Phalcon\Mvc\Model :: count() - with order + * + * @param DatabaseTester $I + * + * @author Phalcon Team + * @since 2023-12-26 + * @issue https://github.com/phalcon/cphalcon/issues/16471 + * + * @group mysql + * @group pgsql + */ + public function mvcModelCountWithOrder(DatabaseTester $I):void + { + $invId = 'default'; + $this->seed($invId); + + $total = InvoicesMap::count(); + $I->assertEquals(33, $total); + + $total = InvoicesMap::count( + [ + 'distinct' => 'cst_id', + 'order' => 'cst_id', + ] + ); + $I->assertEquals(3, $total); + } + /** * @param string $invId * diff --git a/tests/database/Paginator/Adapter/Model/PaginateCest.php b/tests/database/Paginator/Adapter/Model/PaginateCest.php index cd8898c01e..150b4cffb3 100644 --- a/tests/database/Paginator/Adapter/Model/PaginateCest.php +++ b/tests/database/Paginator/Adapter/Model/PaginateCest.php @@ -333,4 +333,49 @@ public function paginatorAdapterModelPaginateView(DatabaseTester $I): void $actual = $view->getVar('paginate'); $I->assertInstanceOf(Repository::class, $actual); } + + /** + * @param DatabaseTester $I + * + * @group mysql + * @group pgsql + */ + public function paginatorAdapterModelPaginateWithOrder(DatabaseTester $I) + { + $I->wantToTest('Paginator\Adapter\Model - paginate() - with order'); + + /** @var PDO $connection */ + $connection = $I->getConnection(); + $migration = new InvoicesMigration($connection); + $invId = 'default'; + + $this->insertDataInvoices($migration, 17, $invId, 2, 'ccc'); + $this->insertDataInvoices($migration, 11, $invId, 3, 'aaa'); + $this->insertDataInvoices($migration, 31, $invId, 1, 'aaa'); + $this->insertDataInvoices($migration, 15, $invId, 2, 'bbb'); + + $paginator = new Model( + [ + 'model' => Invoices::class, + 'parameters' => [ + 'inv_cst_id >= 2', + 'order' => 'inv_cst_id' + ], + 'limit' => 5, + 'page' => 1, + ] + ); + + // First Page + $page = $paginator->paginate(); + + $I->assertInstanceOf(Repository::class, $page); + + $I->assertCount(5, $page->getItems()); + $I->assertEquals(1, $page->getPrevious()); + $I->assertEquals(2, $page->getNext()); + $I->assertEquals(9, $page->getLast()); + $I->assertEquals(5, $page->getLimit()); + $I->assertEquals(1, $page->getCurrent()); + } } From 5a7d943a13e9f9ed54931073e827dbba53979e17 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 10:00:33 -0600 Subject: [PATCH 04/42] phpcs --- tests/database/Mvc/Model/CountCest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/database/Mvc/Model/CountCest.php b/tests/database/Mvc/Model/CountCest.php index 9b22bcc8de..a7d0746b60 100644 --- a/tests/database/Mvc/Model/CountCest.php +++ b/tests/database/Mvc/Model/CountCest.php @@ -159,7 +159,7 @@ public function mvcModelCount(DatabaseTester $I): void * @group mysql * @group pgsql */ - public function mvcModelCountColumnMap(DatabaseTester $I):void + public function mvcModelCountColumnMap(DatabaseTester $I): void { /** * @todo The following tests need to skip sqlite because we will get @@ -224,7 +224,7 @@ public function mvcModelCountColumnMap(DatabaseTester $I):void * @group mysql * @group pgsql */ - public function mvcModelCountWithOrder(DatabaseTester $I):void + public function mvcModelCountWithOrder(DatabaseTester $I): void { $invId = 'default'; $this->seed($invId); From 91e37a508a8c0f5d61dc85880e0fd54c57a0360c Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 10:02:01 -0600 Subject: [PATCH 05/42] updating changelog --- CHANGELOG-5.0.md | 2 + ext/phalcon/mvc/model.zep.c | 443 ++++++++++++++++++------------------ 2 files changed, 226 insertions(+), 219 deletions(-) diff --git a/CHANGELOG-5.0.md b/CHANGELOG-5.0.md index f3c8745324..2b0813fe45 100644 --- a/CHANGELOG-5.0.md +++ b/CHANGELOG-5.0.md @@ -8,6 +8,8 @@ ### Fixed +- Fixed `Phalcon\Mvc\Model::count` to ignore the `order` parameter (needed for Posgresql) [#16471](https://github.com/phalcon/cphalcon/issues/16471) + ### Removed ## [5.5.0](https://github.com/phalcon/cphalcon/releases/tag/v5.5.0) (2023-12-25) diff --git a/ext/phalcon/mvc/model.zep.c b/ext/phalcon/mvc/model.zep.c index e5b00b96ac..43a34e9d78 100644 --- a/ext/phalcon/mvc/model.zep.c +++ b/ext/phalcon/mvc/model.zep.c @@ -2113,7 +2113,12 @@ PHP_METHOD(Phalcon_Mvc_Model, count) zephir_fetch_params(1, 0, 1, ¶meters); if (!parameters) { parameters = ¶meters_sub; - parameters = &__$null; + ZEPHIR_CPY_WRT(parameters, &__$null); + } else { + ZEPHIR_SEPARATE_PARAM(parameters); + } + if (zephir_array_isset_string(parameters, SL("order"))) { + zephir_array_unset_string(parameters, SL("order"), PH_SEPARATE); } ZEPHIR_INIT_VAR(&_0); ZVAL_STRING(&_0, "COUNT"); @@ -2335,11 +2340,11 @@ PHP_METHOD(Phalcon_Mvc_Model, delete) ZEPHIR_CONCAT_SVS(&_5$$7, "A primary key must be defined in the model in order to perform the operation in '", &_4$$7, "'"); ZEPHIR_CALL_METHOD(NULL, &_3$$7, "__construct", NULL, 33, &_5$$7); zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model.zep", 1316); + zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model.zep", 1323); ZEPHIR_MM_RESTORE(); return; } - zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 1365); + zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 1372); if (Z_TYPE_P(&primaryKeys) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&primaryKeys), _6) { @@ -2355,7 +2360,7 @@ PHP_METHOD(Phalcon_Mvc_Model, delete) ZEPHIR_CONCAT_SVSVS(&_10$$9, "Column '", &primaryKey, "' have not defined a bind data type in '", &_9$$9, "'"); ZEPHIR_CALL_METHOD(NULL, &_8$$9, "__construct", NULL, 33, &_10$$9); zephir_check_call_status(); - zephir_throw_exception_debug(&_8$$9, "phalcon/Mvc/Model.zep", 1330); + zephir_throw_exception_debug(&_8$$9, "phalcon/Mvc/Model.zep", 1337); ZEPHIR_MM_RESTORE(); return; } @@ -2370,7 +2375,7 @@ PHP_METHOD(Phalcon_Mvc_Model, delete) ZEPHIR_CONCAT_SVSVS(&_13$$11, "Column '", &primaryKey, "' isn't part of the column map in '", &_12$$11, "'"); ZEPHIR_CALL_METHOD(NULL, &_11$$11, "__construct", NULL, 33, &_13$$11); zephir_check_call_status(); - zephir_throw_exception_debug(&_11$$11, "phalcon/Mvc/Model.zep", 1340); + zephir_throw_exception_debug(&_11$$11, "phalcon/Mvc/Model.zep", 1347); ZEPHIR_MM_RESTORE(); return; } @@ -2387,17 +2392,17 @@ PHP_METHOD(Phalcon_Mvc_Model, delete) ZEPHIR_CONCAT_SVSVS(&_16$$13, "Cannot delete the record because the primary key attribute: '", &attributeField, "' was not set in '", &_15$$13, "'"); ZEPHIR_CALL_METHOD(NULL, &_14$$13, "__construct", NULL, 33, &_16$$13); zephir_check_call_status(); - zephir_throw_exception_debug(&_14$$13, "phalcon/Mvc/Model.zep", 1354); + zephir_throw_exception_debug(&_14$$13, "phalcon/Mvc/Model.zep", 1361); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1360); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1367); ZEPHIR_CALL_METHOD(&_17$$8, &writeConnection, "escapeidentifier", &_18, 0, &primaryKey); zephir_check_call_status(); ZEPHIR_INIT_NVAR(&_19$$8); ZEPHIR_CONCAT_VS(&_19$$8, &_17$$8, " = ?"); - zephir_array_append(&conditions, &_19$$8, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1361); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1362); + zephir_array_append(&conditions, &_19$$8, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1368); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1369); } ZEND_HASH_FOREACH_END(); } else { ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "rewind", NULL, 0); @@ -2420,7 +2425,7 @@ PHP_METHOD(Phalcon_Mvc_Model, delete) ZEPHIR_CONCAT_SVSVS(&_22$$15, "Column '", &primaryKey, "' have not defined a bind data type in '", &_21$$15, "'"); ZEPHIR_CALL_METHOD(NULL, &_20$$15, "__construct", NULL, 33, &_22$$15); zephir_check_call_status(); - zephir_throw_exception_debug(&_20$$15, "phalcon/Mvc/Model.zep", 1330); + zephir_throw_exception_debug(&_20$$15, "phalcon/Mvc/Model.zep", 1337); ZEPHIR_MM_RESTORE(); return; } @@ -2435,7 +2440,7 @@ PHP_METHOD(Phalcon_Mvc_Model, delete) ZEPHIR_CONCAT_SVSVS(&_25$$17, "Column '", &primaryKey, "' isn't part of the column map in '", &_24$$17, "'"); ZEPHIR_CALL_METHOD(NULL, &_23$$17, "__construct", NULL, 33, &_25$$17); zephir_check_call_status(); - zephir_throw_exception_debug(&_23$$17, "phalcon/Mvc/Model.zep", 1340); + zephir_throw_exception_debug(&_23$$17, "phalcon/Mvc/Model.zep", 1347); ZEPHIR_MM_RESTORE(); return; } @@ -2452,17 +2457,17 @@ PHP_METHOD(Phalcon_Mvc_Model, delete) ZEPHIR_CONCAT_SVSVS(&_28$$19, "Cannot delete the record because the primary key attribute: '", &attributeField, "' was not set in '", &_27$$19, "'"); ZEPHIR_CALL_METHOD(NULL, &_26$$19, "__construct", NULL, 33, &_28$$19); zephir_check_call_status(); - zephir_throw_exception_debug(&_26$$19, "phalcon/Mvc/Model.zep", 1354); + zephir_throw_exception_debug(&_26$$19, "phalcon/Mvc/Model.zep", 1361); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1360); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1367); ZEPHIR_CALL_METHOD(&_29$$14, &writeConnection, "escapeidentifier", &_30, 0, &primaryKey); zephir_check_call_status(); ZEPHIR_INIT_NVAR(&_31$$14); ZEPHIR_CONCAT_VS(&_31$$14, &_29$$14, " = ?"); - zephir_array_append(&conditions, &_31$$14, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1361); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1362); + zephir_array_append(&conditions, &_31$$14, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1368); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1369); ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "next", NULL, 0); zephir_check_call_status(); } @@ -2760,7 +2765,7 @@ PHP_METHOD(Phalcon_Mvc_Model, find) ZEPHIR_INIT_VAR(¶ms); array_init(¶ms); if (Z_TYPE_P(parameters) != IS_NULL) { - zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1635); + zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1642); } } else { ZEPHIR_CPY_WRT(¶ms, parameters); @@ -2917,7 +2922,7 @@ PHP_METHOD(Phalcon_Mvc_Model, findFirst) ZEPHIR_CONCAT_SVS(&_4$$6, "Parameters passed must be of type array, string, numeric or null in '", &_3$$6, "'"); ZEPHIR_CALL_METHOD(NULL, &_2$$6, "__construct", NULL, 33, &_4$$6); zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$6, "phalcon/Mvc/Model.zep", 1759); + zephir_throw_exception_debug(&_2$$6, "phalcon/Mvc/Model.zep", 1766); ZEPHIR_MM_RESTORE(); return; } @@ -3067,7 +3072,7 @@ PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) ZEPHIR_CONCAT_SVS(&_3$$3, "The 'keepSnapshots' option must be enabled to track changes in '", &_2$$3, "'"); ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 33, &_3$$3); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model.zep", 1845); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model.zep", 1852); ZEPHIR_MM_RESTORE(); return; } @@ -3084,7 +3089,7 @@ PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) ZEPHIR_INIT_VAR(&changed); array_init(&changed); ZEPHIR_INIT_VAR(&_4); - zephir_is_iterable(&allAttributes, 0, "phalcon/Mvc/Model.zep", 1903); + zephir_is_iterable(&allAttributes, 0, "phalcon/Mvc/Model.zep", 1910); if (Z_TYPE_P(&allAttributes) == IS_ARRAY) { ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&allAttributes), _7, _8, _5) { @@ -3097,17 +3102,17 @@ PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) ZEPHIR_INIT_NVAR(&_4); ZVAL_COPY(&_4, _5); if (!(zephir_array_isset(&snapshot, &name))) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1878); + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1885); continue; } ZEPHIR_OBS_NVAR(&value); if (!(zephir_fetch_property_zval(&value, this_ptr, &name, PH_SILENT_CC))) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1888); + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1895); continue; } - zephir_array_fetch(&_9$$6, &snapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 1896); + zephir_array_fetch(&_9$$6, &snapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 1903); if (!ZEPHIR_IS_IDENTICAL(&value, &_9$$6)) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1897); + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1904); continue; } } ZEND_HASH_FOREACH_END(); @@ -3125,17 +3130,17 @@ PHP_METHOD(Phalcon_Mvc_Model, getChangedFields) ZEPHIR_CALL_METHOD(&_4, &allAttributes, "current", NULL, 0); zephir_check_call_status(); if (!(zephir_array_isset(&snapshot, &name))) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1878); + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1885); continue; } ZEPHIR_OBS_NVAR(&value); if (!(zephir_fetch_property_zval(&value, this_ptr, &name, PH_SILENT_CC))) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1888); + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1895); continue; } - zephir_array_fetch(&_10$$10, &snapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 1896); + zephir_array_fetch(&_10$$10, &snapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 1903); if (!ZEPHIR_IS_IDENTICAL(&value, &_10$$10)) { - zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1897); + zephir_array_append(&changed, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1904); continue; } ZEPHIR_CALL_METHOD(NULL, &allAttributes, "next", NULL, 0); @@ -3250,7 +3255,7 @@ PHP_METHOD(Phalcon_Mvc_Model, getMessages) ZEPHIR_CPY_WRT(filter, &_2$$4); } zephir_read_property(&_3$$3, this_ptr, ZEND_STRL("errorMessages"), PH_NOISY_CC | PH_READONLY); - zephir_is_iterable(&_3$$3, 0, "phalcon/Mvc/Model.zep", 1967); + zephir_is_iterable(&_3$$3, 0, "phalcon/Mvc/Model.zep", 1974); if (Z_TYPE_P(&_3$$3) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_3$$3), _4$$3) { @@ -3259,7 +3264,7 @@ PHP_METHOD(Phalcon_Mvc_Model, getMessages) ZEPHIR_CALL_METHOD(&_6$$5, &message, "getfield", NULL, 0); zephir_check_call_status(); if (zephir_fast_in_array(&_6$$5, filter)) { - zephir_array_append(&filtered, &message, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1963); + zephir_array_append(&filtered, &message, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1970); } } ZEND_HASH_FOREACH_END(); } else { @@ -3276,7 +3281,7 @@ PHP_METHOD(Phalcon_Mvc_Model, getMessages) ZEPHIR_CALL_METHOD(&_7$$7, &message, "getfield", NULL, 0); zephir_check_call_status(); if (zephir_fast_in_array(&_7$$7, filter)) { - zephir_array_append(&filtered, &message, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1963); + zephir_array_append(&filtered, &message, PH_SEPARATE, "phalcon/Mvc/Model.zep", 1970); } ZEPHIR_CALL_METHOD(NULL, &_3$$3, "next", NULL, 0); zephir_check_call_status(); @@ -3337,7 +3342,7 @@ PHP_METHOD(Phalcon_Mvc_Model, getModelsMetaData) ZEPHIR_CONCAT_SVS(&_5$$4, "The injected service 'modelsMetadata' is not valid in '", &_4$$4, "'"); ZEPHIR_CALL_METHOD(NULL, &_3$$4, "__construct", NULL, 33, &_5$$4); zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$4, "phalcon/Mvc/Model.zep", 2001); + zephir_throw_exception_debug(&_3$$4, "phalcon/Mvc/Model.zep", 2008); ZEPHIR_MM_RESTORE(); return; } @@ -3471,7 +3476,7 @@ PHP_METHOD(Phalcon_Mvc_Model, getRelated) ZEPHIR_CONCAT_SVSVS(&_3$$3, "There is no defined relations for the model '", &className, "' using alias '", &alias, "'"); ZEPHIR_CALL_METHOD(NULL, &_2$$3, "__construct", NULL, 33, &_3$$3); zephir_check_call_status(); - zephir_throw_exception_debug(&_2$$3, "phalcon/Mvc/Model.zep", 2077); + zephir_throw_exception_debug(&_2$$3, "phalcon/Mvc/Model.zep", 2084); ZEPHIR_MM_RESTORE(); return; } @@ -3636,12 +3641,12 @@ PHP_METHOD(Phalcon_Mvc_Model, getUpdatedFields) ZEPHIR_CONCAT_SVS(&_3$$3, "The 'updateSnapshotOnSave' option must be enabled for this method to work properly in '", &_2$$3, "'"); ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 33, &_3$$3); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model.zep", 2201); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model.zep", 2208); ZEPHIR_MM_RESTORE(); return; } if (UNEXPECTED(Z_TYPE_P(&snapshot) != IS_ARRAY)) { - ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The 'keepSnapshots' option must be enabled to track changes", "phalcon/Mvc/Model.zep", 2207); + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_model_exception_ce, "The 'keepSnapshots' option must be enabled to track changes", "phalcon/Mvc/Model.zep", 2214); return; } zephir_read_property(&_0, this_ptr, ZEND_STRL("dirtyState"), PH_NOISY_CC | PH_READONLY); @@ -3654,13 +3659,13 @@ PHP_METHOD(Phalcon_Mvc_Model, getUpdatedFields) ZEPHIR_CONCAT_SVS(&_6$$5, "Change checking cannot be performed because the object has not been persisted or is deleted in '", &_5$$5, "'"); ZEPHIR_CALL_METHOD(NULL, &_4$$5, "__construct", NULL, 33, &_6$$5); zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$5, "phalcon/Mvc/Model.zep", 2216); + zephir_throw_exception_debug(&_4$$5, "phalcon/Mvc/Model.zep", 2223); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_INIT_VAR(&updated); array_init(&updated); - zephir_is_iterable(&snapshot, 0, "phalcon/Mvc/Model.zep", 2231); + zephir_is_iterable(&snapshot, 0, "phalcon/Mvc/Model.zep", 2238); if (Z_TYPE_P(&snapshot) == IS_ARRAY) { ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&snapshot), _9, _10, _7) { @@ -3674,11 +3679,11 @@ PHP_METHOD(Phalcon_Mvc_Model, getUpdatedFields) ZVAL_COPY(&value, _7); _11$$6 = !(zephir_array_isset(&oldSnapshot, &name)); if (!(_11$$6)) { - zephir_array_fetch(&_12$$6, &oldSnapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 2226); + zephir_array_fetch(&_12$$6, &oldSnapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 2233); _11$$6 = !ZEPHIR_IS_IDENTICAL(&value, &_12$$6); } if (_11$$6) { - zephir_array_append(&updated, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2227); + zephir_array_append(&updated, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2234); } } ZEND_HASH_FOREACH_END(); } else { @@ -3696,11 +3701,11 @@ PHP_METHOD(Phalcon_Mvc_Model, getUpdatedFields) zephir_check_call_status(); _13$$8 = !(zephir_array_isset(&oldSnapshot, &name)); if (!(_13$$8)) { - zephir_array_fetch(&_14$$8, &oldSnapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 2226); + zephir_array_fetch(&_14$$8, &oldSnapshot, &name, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 2233); _13$$8 = !ZEPHIR_IS_IDENTICAL(&value, &_14$$8); } if (_13$$8) { - zephir_array_append(&updated, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2227); + zephir_array_append(&updated, &name, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2234); } ZEPHIR_CALL_METHOD(NULL, &snapshot, "next", NULL, 0); zephir_check_call_status(); @@ -4187,7 +4192,7 @@ PHP_METHOD(Phalcon_Mvc_Model, refresh) ZEPHIR_CONCAT_SVS(&_3$$3, "The record cannot be refreshed because it does not exist or is deleted in '", &_2$$3, "'"); ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 33, &_3$$3); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model.zep", 2482); + zephir_throw_exception_debug(&_1$$3, "phalcon/Mvc/Model.zep", 2489); ZEPHIR_MM_RESTORE(); return; } @@ -4223,7 +4228,7 @@ PHP_METHOD(Phalcon_Mvc_Model, refresh) ZEPHIR_CONCAT_SVS(&_8$$7, "The record cannot be refreshed because it does not exist or is deleted in '", &_7$$7, "'"); ZEPHIR_CALL_METHOD(NULL, &_6$$7, "__construct", NULL, 33, &_8$$7); zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$7, "phalcon/Mvc/Model.zep", 2507); + zephir_throw_exception_debug(&_6$$7, "phalcon/Mvc/Model.zep", 2514); ZEPHIR_MM_RESTORE(); return; } @@ -4241,7 +4246,7 @@ PHP_METHOD(Phalcon_Mvc_Model, refresh) ZEPHIR_CONCAT_SVS(&_12$$8, "The record cannot be refreshed because it does not exist or is deleted in '", &_11$$8, "'"); ZEPHIR_CALL_METHOD(NULL, &_10$$8, "__construct", NULL, 33, &_12$$8); zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$8, "phalcon/Mvc/Model.zep", 2518); + zephir_throw_exception_debug(&_10$$8, "phalcon/Mvc/Model.zep", 2525); ZEPHIR_MM_RESTORE(); return; } @@ -4249,7 +4254,7 @@ PHP_METHOD(Phalcon_Mvc_Model, refresh) array_init(&fields); ZEPHIR_CALL_METHOD(&_13, &metaData, "getattributes", NULL, 0, this_ptr); zephir_check_call_status(); - zephir_is_iterable(&_13, 0, "phalcon/Mvc/Model.zep", 2533); + zephir_is_iterable(&_13, 0, "phalcon/Mvc/Model.zep", 2540); if (Z_TYPE_P(&_13) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_13), _14) { @@ -4258,7 +4263,7 @@ PHP_METHOD(Phalcon_Mvc_Model, refresh) ZEPHIR_INIT_NVAR(&_16$$9); zephir_create_array(&_16$$9, 1, 0); zephir_array_fast_append(&_16$$9, &attribute); - zephir_array_append(&fields, &_16$$9, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2527); + zephir_array_append(&fields, &_16$$9, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2534); } ZEND_HASH_FOREACH_END(); } else { ZEPHIR_CALL_METHOD(NULL, &_13, "rewind", NULL, 0); @@ -4274,7 +4279,7 @@ PHP_METHOD(Phalcon_Mvc_Model, refresh) ZEPHIR_INIT_NVAR(&_17$$10); zephir_create_array(&_17$$10, 1, 0); zephir_array_fast_append(&_17$$10, &attribute); - zephir_array_append(&fields, &_17$$10, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2527); + zephir_array_append(&fields, &_17$$10, PH_SEPARATE, "phalcon/Mvc/Model.zep", 2534); ZEPHIR_CALL_METHOD(NULL, &_13, "next", NULL, 0); zephir_check_call_status(); } @@ -4478,7 +4483,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doSave) zephir_check_call_status(); ZEPHIR_CALL_METHOD(NULL, &_7$$12, "__construct", NULL, 433, this_ptr, &_8$$12); zephir_check_call_status(); - zephir_throw_exception_debug(&_7$$12, "phalcon/Mvc/Model.zep", 2707); + zephir_throw_exception_debug(&_7$$12, "phalcon/Mvc/Model.zep", 2714); ZEPHIR_MM_RESTORE(); return; } @@ -4645,7 +4650,7 @@ PHP_METHOD(Phalcon_Mvc_Model, unserialize) ZEPHIR_CONCAT_SVS(&_3$$5, "A dependency injection container is required to access the services related to the ODM in '", &_2$$5, "'"); ZEPHIR_CALL_METHOD(NULL, &_1$$5, "__construct", NULL, 33, &_3$$5); zephir_check_call_status(); - zephir_throw_exception_debug(&_1$$5, "phalcon/Mvc/Model.zep", 2827); + zephir_throw_exception_debug(&_1$$5, "phalcon/Mvc/Model.zep", 2834); ZEPHIR_MM_RESTORE(); return; } @@ -4664,7 +4669,7 @@ PHP_METHOD(Phalcon_Mvc_Model, unserialize) ZEPHIR_CONCAT_SVS(&_8$$6, "The injected service 'modelsManager' is not valid in '", &_7$$6, "'"); ZEPHIR_CALL_METHOD(NULL, &_6$$6, "__construct", NULL, 33, &_8$$6); zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$6, "phalcon/Mvc/Model.zep", 2843); + zephir_throw_exception_debug(&_6$$6, "phalcon/Mvc/Model.zep", 2850); ZEPHIR_MM_RESTORE(); return; } @@ -4673,7 +4678,7 @@ PHP_METHOD(Phalcon_Mvc_Model, unserialize) zephir_check_call_status(); zephir_memory_observe(&properties); if (zephir_array_isset_string_fetch(&properties, &attributes, SL("attributes"), 0)) { - zephir_is_iterable(&properties, 0, "phalcon/Mvc/Model.zep", 2866); + zephir_is_iterable(&properties, 0, "phalcon/Mvc/Model.zep", 2873); if (Z_TYPE_P(&properties) == IS_ARRAY) { ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&properties), _11$$7, _12$$7, _9$$7) { @@ -4896,7 +4901,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setOldSnapshotData) if (Z_TYPE_P(columnMap) == IS_ARRAY) { ZEPHIR_INIT_VAR(&snapshot); array_init(&snapshot); - zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 2984); + zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 2991); if (Z_TYPE_P(&data) == IS_ARRAY) { ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2$$3, _3$$3, _0$$3) { @@ -4922,7 +4927,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setOldSnapshotData) ZEPHIR_CONCAT_SVSVS(&_6$$7, "Column '", &key, "' doesn't make part of the column map in '", &_5$$7, "'"); ZEPHIR_CALL_METHOD(NULL, &_4$$7, "__construct", &_7, 33, &_6$$7); zephir_check_call_status(); - zephir_throw_exception_debug(&_4$$7, "phalcon/Mvc/Model.zep", 2964); + zephir_throw_exception_debug(&_4$$7, "phalcon/Mvc/Model.zep", 2971); ZEPHIR_MM_RESTORE(); return; } @@ -4940,7 +4945,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setOldSnapshotData) ZEPHIR_CONCAT_SVSVS(&_10$$10, "Column '", &key, "' doesn't make part of the column map in '", &_9$$10, "'"); ZEPHIR_CALL_METHOD(NULL, &_8$$10, "__construct", &_7, 33, &_10$$10); zephir_check_call_status(); - zephir_throw_exception_debug(&_8$$10, "phalcon/Mvc/Model.zep", 2975); + zephir_throw_exception_debug(&_8$$10, "phalcon/Mvc/Model.zep", 2982); ZEPHIR_MM_RESTORE(); return; } @@ -4976,7 +4981,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setOldSnapshotData) ZEPHIR_CONCAT_SVSVS(&_13$$14, "Column '", &key, "' doesn't make part of the column map in '", &_12$$14, "'"); ZEPHIR_CALL_METHOD(NULL, &_11$$14, "__construct", &_7, 33, &_13$$14); zephir_check_call_status(); - zephir_throw_exception_debug(&_11$$14, "phalcon/Mvc/Model.zep", 2964); + zephir_throw_exception_debug(&_11$$14, "phalcon/Mvc/Model.zep", 2971); ZEPHIR_MM_RESTORE(); return; } @@ -4994,7 +4999,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setOldSnapshotData) ZEPHIR_CONCAT_SVSVS(&_16$$17, "Column '", &key, "' doesn't make part of the column map in '", &_15$$17, "'"); ZEPHIR_CALL_METHOD(NULL, &_14$$17, "__construct", &_7, 33, &_16$$17); zephir_check_call_status(); - zephir_throw_exception_debug(&_14$$17, "phalcon/Mvc/Model.zep", 2975); + zephir_throw_exception_debug(&_14$$17, "phalcon/Mvc/Model.zep", 2982); ZEPHIR_MM_RESTORE(); return; } @@ -5073,7 +5078,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) if (Z_TYPE_P(columnMap) == IS_ARRAY) { ZEPHIR_INIT_VAR(&snapshot); array_init(&snapshot); - zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 3049); + zephir_is_iterable(&data, 0, "phalcon/Mvc/Model.zep", 3056); if (Z_TYPE_P(&data) == IS_ARRAY) { ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2$$3, _3$$3, _0$$3) { @@ -5108,7 +5113,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) ZEPHIR_CONCAT_SVSVS(&_9$$8, "Column '", &key, "' doesn't make part of the column map in '", &_8$$8, "'"); ZEPHIR_CALL_METHOD(NULL, &_7$$8, "__construct", &_10, 33, &_9$$8); zephir_check_call_status(); - zephir_throw_exception_debug(&_7$$8, "phalcon/Mvc/Model.zep", 3029); + zephir_throw_exception_debug(&_7$$8, "phalcon/Mvc/Model.zep", 3036); ZEPHIR_MM_RESTORE(); return; } @@ -5126,7 +5131,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) ZEPHIR_CONCAT_SVSVS(&_13$$11, "Column '", &key, "' doesn't make part of the column map in '", &_12$$11, "'"); ZEPHIR_CALL_METHOD(NULL, &_11$$11, "__construct", &_10, 33, &_13$$11); zephir_check_call_status(); - zephir_throw_exception_debug(&_11$$11, "phalcon/Mvc/Model.zep", 3040); + zephir_throw_exception_debug(&_11$$11, "phalcon/Mvc/Model.zep", 3047); ZEPHIR_MM_RESTORE(); return; } @@ -5171,7 +5176,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) ZEPHIR_CONCAT_SVSVS(&_18$$16, "Column '", &key, "' doesn't make part of the column map in '", &_17$$16, "'"); ZEPHIR_CALL_METHOD(NULL, &_16$$16, "__construct", &_10, 33, &_18$$16); zephir_check_call_status(); - zephir_throw_exception_debug(&_16$$16, "phalcon/Mvc/Model.zep", 3029); + zephir_throw_exception_debug(&_16$$16, "phalcon/Mvc/Model.zep", 3036); ZEPHIR_MM_RESTORE(); return; } @@ -5189,7 +5194,7 @@ PHP_METHOD(Phalcon_Mvc_Model, setSnapshotData) ZEPHIR_CONCAT_SVSVS(&_21$$19, "Column '", &key, "' doesn't make part of the column map in '", &_20$$19, "'"); ZEPHIR_CALL_METHOD(NULL, &_19$$19, "__construct", &_10, 33, &_21$$19); zephir_check_call_status(); - zephir_throw_exception_debug(&_19$$19, "phalcon/Mvc/Model.zep", 3040); + zephir_throw_exception_debug(&_19$$19, "phalcon/Mvc/Model.zep", 3047); ZEPHIR_MM_RESTORE(); return; } @@ -5543,7 +5548,7 @@ PHP_METHOD(Phalcon_Mvc_Model, toArray) zephir_check_call_status(); ZEPHIR_CALL_METHOD(&_0, &metaData, "getattributes", NULL, 0, this_ptr); zephir_check_call_status(); - zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model.zep", 3333); + zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model.zep", 3340); if (Z_TYPE_P(&_0) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) { @@ -5570,7 +5575,7 @@ PHP_METHOD(Phalcon_Mvc_Model, toArray) ZEPHIR_CONCAT_SVSVS(&_8$$7, "Column '", &attribute, "' doesn't make part of the column map in '", &_7$$7, "'"); ZEPHIR_CALL_METHOD(NULL, &_6$$7, "__construct", &_9, 33, &_8$$7); zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$7, "phalcon/Mvc/Model.zep", 3304); + zephir_throw_exception_debug(&_6$$7, "phalcon/Mvc/Model.zep", 3311); ZEPHIR_MM_RESTORE(); return; } @@ -5631,7 +5636,7 @@ PHP_METHOD(Phalcon_Mvc_Model, toArray) ZEPHIR_CONCAT_SVSVS(&_16$$18, "Column '", &attribute, "' doesn't make part of the column map in '", &_15$$18, "'"); ZEPHIR_CALL_METHOD(NULL, &_14$$18, "__construct", &_9, 33, &_16$$18); zephir_check_call_status(); - zephir_throw_exception_debug(&_14$$18, "phalcon/Mvc/Model.zep", 3304); + zephir_throw_exception_debug(&_14$$18, "phalcon/Mvc/Model.zep", 3311); ZEPHIR_MM_RESTORE(); return; } @@ -5852,7 +5857,7 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) ZEPHIR_CALL_METHOD(&belongsTo, &manager, "getbelongsto", NULL, 0, this_ptr); zephir_check_call_status(); error = 0; - zephir_is_iterable(&belongsTo, 0, "phalcon/Mvc/Model.zep", 3553); + zephir_is_iterable(&belongsTo, 0, "phalcon/Mvc/Model.zep", 3560); if (Z_TYPE_P(&belongsTo) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&belongsTo), _1) { @@ -5867,7 +5872,7 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) action = 1; if (zephir_array_isset_string(&foreignKey, SL("action"))) { ZEPHIR_OBS_NVAR(&_3$$5); - zephir_array_fetch_string(&_3$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3439); + zephir_array_fetch_string(&_3$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3446); action = zephir_get_intval(&_3$$5); } if (action != 1) { @@ -5887,7 +5892,7 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); zephir_check_call_status(); if (Z_TYPE_P(&fields) == IS_ARRAY) { - zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model.zep", 3482); + zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model.zep", 3489); if (Z_TYPE_P(&fields) == IS_ARRAY) { ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _8$$7, _9$$7, _6$$7) { @@ -5901,11 +5906,11 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) ZVAL_COPY(&field, _6$$7); ZEPHIR_OBS_NVAR(&value); zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); - zephir_array_fetch(&_10$$8, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3474); + zephir_array_fetch(&_10$$8, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3481); ZEPHIR_INIT_NVAR(&_11$$8); ZEPHIR_CONCAT_SVSV(&_11$$8, "[", &_10$$8, "] = ?", &position); - zephir_array_append(&conditions, &_11$$8, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3474); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3475); + zephir_array_append(&conditions, &_11$$8, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3481); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3482); if (Z_TYPE_P(&value) == IS_NULL) { numberNull++; } @@ -5925,11 +5930,11 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) zephir_check_call_status(); ZEPHIR_OBS_NVAR(&value); zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); - zephir_array_fetch(&_12$$10, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3474); + zephir_array_fetch(&_12$$10, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3481); ZEPHIR_INIT_NVAR(&_13$$10); ZEPHIR_CONCAT_SVSV(&_13$$10, "[", &_12$$10, "] = ?", &position); - zephir_array_append(&conditions, &_13$$10, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3474); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3475); + zephir_array_append(&conditions, &_13$$10, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3481); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3482); if (Z_TYPE_P(&value) == IS_NULL) { numberNull++; } @@ -5945,15 +5950,15 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) zephir_fetch_property_zval(&value, this_ptr, &fields, PH_SILENT_CC); ZEPHIR_INIT_NVAR(&_14$$12); ZEPHIR_CONCAT_SVS(&_14$$12, "[", &referencedFields, "] = ?0"); - zephir_array_append(&conditions, &_14$$12, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3486); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3487); + zephir_array_append(&conditions, &_14$$12, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3493); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3494); if (Z_TYPE_P(&value) == IS_NULL) { validateWithNulls = 1; } } ZEPHIR_OBS_NVAR(&extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, &foreignKey, SL("conditions"), 0)) { - zephir_array_append(&conditions, &extraConditions, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3498); + zephir_array_append(&conditions, &extraConditions, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3505); } if (validateWithNulls) { ZEPHIR_OBS_NVAR(&allowNulls); @@ -6028,7 +6033,7 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) action = 1; if (zephir_array_isset_string(&foreignKey, SL("action"))) { ZEPHIR_OBS_NVAR(&_27$$24); - zephir_array_fetch_string(&_27$$24, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3439); + zephir_array_fetch_string(&_27$$24, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3446); action = zephir_get_intval(&_27$$24); } if (action != 1) { @@ -6048,7 +6053,7 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) ZEPHIR_CALL_METHOD(&referencedFields, &relation, "getreferencedfields", NULL, 0); zephir_check_call_status(); if (Z_TYPE_P(&fields) == IS_ARRAY) { - zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model.zep", 3482); + zephir_is_iterable(&fields, 0, "phalcon/Mvc/Model.zep", 3489); if (Z_TYPE_P(&fields) == IS_ARRAY) { ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&fields), _32$$26, _33$$26, _30$$26) { @@ -6062,11 +6067,11 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) ZVAL_COPY(&field, _30$$26); ZEPHIR_OBS_NVAR(&value); zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); - zephir_array_fetch(&_34$$27, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3474); + zephir_array_fetch(&_34$$27, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3481); ZEPHIR_INIT_NVAR(&_35$$27); ZEPHIR_CONCAT_SVSV(&_35$$27, "[", &_34$$27, "] = ?", &position); - zephir_array_append(&conditions, &_35$$27, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3474); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3475); + zephir_array_append(&conditions, &_35$$27, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3481); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3482); if (Z_TYPE_P(&value) == IS_NULL) { numberNull++; } @@ -6086,11 +6091,11 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) zephir_check_call_status(); ZEPHIR_OBS_NVAR(&value); zephir_fetch_property_zval(&value, this_ptr, &field, PH_SILENT_CC); - zephir_array_fetch(&_36$$29, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3474); + zephir_array_fetch(&_36$$29, &referencedFields, &position, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3481); ZEPHIR_INIT_NVAR(&_37$$29); ZEPHIR_CONCAT_SVSV(&_37$$29, "[", &_36$$29, "] = ?", &position); - zephir_array_append(&conditions, &_37$$29, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3474); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3475); + zephir_array_append(&conditions, &_37$$29, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3481); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3482); if (Z_TYPE_P(&value) == IS_NULL) { numberNull++; } @@ -6106,15 +6111,15 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysRestrict) zephir_fetch_property_zval(&value, this_ptr, &fields, PH_SILENT_CC); ZEPHIR_INIT_NVAR(&_38$$31); ZEPHIR_CONCAT_SVS(&_38$$31, "[", &referencedFields, "] = ?0"); - zephir_array_append(&conditions, &_38$$31, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3486); - zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3487); + zephir_array_append(&conditions, &_38$$31, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3493); + zephir_array_append(&bindParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3494); if (Z_TYPE_P(&value) == IS_NULL) { validateWithNulls = 1; } } ZEPHIR_OBS_NVAR(&extraConditions); if (zephir_array_isset_string_fetch(&extraConditions, &foreignKey, SL("conditions"), 0)) { - zephir_array_append(&conditions, &extraConditions, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3498); + zephir_array_append(&conditions, &extraConditions, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3505); } if (validateWithNulls) { ZEPHIR_OBS_NVAR(&allowNulls); @@ -6218,7 +6223,7 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysReverseCascade) ZEPHIR_CPY_WRT(&manager, &_0); ZEPHIR_CALL_METHOD(&relations, &manager, "gethasoneandhasmany", NULL, 0, this_ptr); zephir_check_call_status(); - zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model.zep", 3629); + zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model.zep", 3636); if (Z_TYPE_P(&relations) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _1) { @@ -6236,7 +6241,7 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysReverseCascade) } if (_3$$3) { ZEPHIR_OBS_NVAR(&_4$$5); - zephir_array_fetch_string(&_4$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3603); + zephir_array_fetch_string(&_4$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3610); action = zephir_get_intval(&_4$$5); } if (action != 2) { @@ -6275,7 +6280,7 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysReverseCascade) } if (_7$$9) { ZEPHIR_OBS_NVAR(&_8$$11); - zephir_array_fetch_string(&_8$$11, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3603); + zephir_array_fetch_string(&_8$$11, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3610); action = zephir_get_intval(&_8$$11); } if (action != 2) { @@ -6346,7 +6351,7 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysReverseRestrict) ZEPHIR_CALL_METHOD(&relations, &manager, "gethasoneandhasmany", NULL, 0, this_ptr); zephir_check_call_status(); error = 0; - zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model.zep", 3720); + zephir_is_iterable(&relations, 0, "phalcon/Mvc/Model.zep", 3727); if (Z_TYPE_P(&relations) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relations), _1) { @@ -6364,7 +6369,7 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysReverseRestrict) } if (_3$$3) { ZEPHIR_OBS_NVAR(&_4$$5); - zephir_array_fetch_string(&_4$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3674); + zephir_array_fetch_string(&_4$$5, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3681); action = zephir_get_intval(&_4$$5); } if (action != 1) { @@ -6427,7 +6432,7 @@ PHP_METHOD(Phalcon_Mvc_Model, checkForeignKeysReverseRestrict) } if (_15$$9) { ZEPHIR_OBS_NVAR(&_16$$11); - zephir_array_fetch_string(&_16$$11, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3674); + zephir_array_fetch_string(&_16$$11, &foreignKey, SL("action"), PH_NOISY, "phalcon/Mvc/Model.zep", 3681); action = zephir_get_intval(&_16$$11); } if (action != 1) { @@ -6611,7 +6616,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) ZEPHIR_INIT_NVAR(&columnMap); ZVAL_NULL(&columnMap); } - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 3842); + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 3849); if (Z_TYPE_P(&attributes) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _1) { @@ -6628,7 +6633,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) ZEPHIR_CONCAT_SVSVS(&_5$$7, "Column '", &field, "' in '", &_4$$7, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_3$$7, "__construct", &_6, 33, &_5$$7); zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model.zep", 3776); + zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model.zep", 3783); ZEPHIR_MM_RESTORE(); return; } @@ -6644,9 +6649,9 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) _7$$11 = zephir_array_isset(&defaultValues, &field); } if (_7$$11) { - zephir_array_fetch(&_8$$12, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3793); + zephir_array_fetch(&_8$$12, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3800); zephir_array_update_zval(&snapshot, &attributeField, &_8$$12, PH_COPY | PH_SEPARATE); - zephir_array_fetch(&_9$$12, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3794); + zephir_array_fetch(&_9$$12, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3801); zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_9$$12, PH_COPY | PH_SEPARATE); ZEPHIR_CALL_METHOD(&_10$$12, connection, "supportsdefaultvalue", &_11, 0); zephir_check_call_status(); @@ -6668,18 +6673,18 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) ZEPHIR_CONCAT_SVSVS(&_15$$15, "Column '", &field, "' in '", &_14$$15, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, &_13$$15, "__construct", &_6, 33, &_15$$15); zephir_check_call_status(); - zephir_throw_exception_debug(&_13$$15, "phalcon/Mvc/Model.zep", 3811); + zephir_throw_exception_debug(&_13$$15, "phalcon/Mvc/Model.zep", 3818); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3814); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3815); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3816); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3821); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3822); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3823); } else { if (zephir_array_isset(&defaultValues, &field)) { - zephir_array_fetch(&_16$$17, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3819); + zephir_array_fetch(&_16$$17, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3826); zephir_array_update_zval(&snapshot, &attributeField, &_16$$17, PH_COPY | PH_SEPARATE); - zephir_array_fetch(&_17$$17, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3820); + zephir_array_fetch(&_17$$17, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3827); zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_17$$17, PH_COPY | PH_SEPARATE); ZEPHIR_CALL_METHOD(&_18$$17, connection, "supportsdefaultvalue", &_19, 0); zephir_check_call_status(); @@ -6688,13 +6693,13 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) } ZEPHIR_CALL_METHOD(&_20$$17, connection, "getdefaultvalue", &_21, 0); zephir_check_call_status(); - zephir_array_append(&values, &_20$$17, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3826); + zephir_array_append(&values, &_20$$17, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3833); } else { - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3828); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3835); zephir_array_update_zval(&snapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); } - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3832); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3833); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3839); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3840); } } } @@ -6721,7 +6726,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) ZEPHIR_CONCAT_SVSVS(&_24$$22, "Column '", &field, "' in '", &_23$$22, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_22$$22, "__construct", &_6, 33, &_24$$22); zephir_check_call_status(); - zephir_throw_exception_debug(&_22$$22, "phalcon/Mvc/Model.zep", 3776); + zephir_throw_exception_debug(&_22$$22, "phalcon/Mvc/Model.zep", 3783); ZEPHIR_MM_RESTORE(); return; } @@ -6737,9 +6742,9 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) _25$$26 = zephir_array_isset(&defaultValues, &field); } if (_25$$26) { - zephir_array_fetch(&_26$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3793); + zephir_array_fetch(&_26$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3800); zephir_array_update_zval(&snapshot, &attributeField, &_26$$27, PH_COPY | PH_SEPARATE); - zephir_array_fetch(&_27$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3794); + zephir_array_fetch(&_27$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3801); zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_27$$27, PH_COPY | PH_SEPARATE); ZEPHIR_CALL_METHOD(&_28$$27, connection, "supportsdefaultvalue", &_29, 0); zephir_check_call_status(); @@ -6761,18 +6766,18 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) ZEPHIR_CONCAT_SVSVS(&_33$$30, "Column '", &field, "' in '", &_32$$30, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, &_31$$30, "__construct", &_6, 33, &_33$$30); zephir_check_call_status(); - zephir_throw_exception_debug(&_31$$30, "phalcon/Mvc/Model.zep", 3811); + zephir_throw_exception_debug(&_31$$30, "phalcon/Mvc/Model.zep", 3818); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3814); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3815); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3816); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3821); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3822); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3823); } else { if (zephir_array_isset(&defaultValues, &field)) { - zephir_array_fetch(&_34$$32, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3819); + zephir_array_fetch(&_34$$32, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3826); zephir_array_update_zval(&snapshot, &attributeField, &_34$$32, PH_COPY | PH_SEPARATE); - zephir_array_fetch(&_35$$32, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3820); + zephir_array_fetch(&_35$$32, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3827); zephir_array_update_zval(&unsetDefaultValues, &attributeField, &_35$$32, PH_COPY | PH_SEPARATE); ZEPHIR_CALL_METHOD(&_36$$32, connection, "supportsdefaultvalue", &_37, 0); zephir_check_call_status(); @@ -6781,13 +6786,13 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) } ZEPHIR_CALL_METHOD(&_38$$32, connection, "getdefaultvalue", &_39, 0); zephir_check_call_status(); - zephir_array_append(&values, &_38$$32, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3826); + zephir_array_append(&values, &_38$$32, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3833); } else { - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3828); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3835); zephir_array_update_zval(&snapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); } - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3832); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3833); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3839); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3840); } } } @@ -6803,7 +6808,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) zephir_check_call_status(); useExplicitIdentity = zephir_get_boolval(&_40$$35); if (useExplicitIdentity) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3852); + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3859); } if (Z_TYPE_P(&columnMap) == IS_ARRAY) { ZEPHIR_OBS_NVAR(&attributeField); @@ -6816,7 +6821,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) ZEPHIR_CONCAT_SVSVS(&_43$$38, "Identity column '", identityField, "' isn't part of the column map in '", &_42$$38, "'"); ZEPHIR_CALL_METHOD(NULL, &_41$$38, "__construct", &_6, 33, &_43$$38); zephir_check_call_status(); - zephir_throw_exception_debug(&_41$$38, "phalcon/Mvc/Model.zep", 3862); + zephir_throw_exception_debug(&_41$$38, "phalcon/Mvc/Model.zep", 3869); ZEPHIR_MM_RESTORE(); return; } @@ -6831,12 +6836,12 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) } if (_44$$40) { if (useExplicitIdentity) { - zephir_array_append(&values, &defaultValue, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3874); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3874); + zephir_array_append(&values, &defaultValue, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3881); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3881); } } else { if (!(useExplicitIdentity)) { - zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3882); + zephir_array_append(&fields, identityField, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3889); } ZEPHIR_OBS_NVAR(&bindType); if (UNEXPECTED(!(zephir_array_isset_fetch(&bindType, &bindDataTypes, identityField, 0)))) { @@ -6848,23 +6853,23 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) ZEPHIR_CONCAT_SVSVS(&_47$$45, "Identity column '", identityField, "' isn\'t part of the table columns in '", &_46$$45, "'"); ZEPHIR_CALL_METHOD(NULL, &_45$$45, "__construct", &_6, 33, &_47$$45); zephir_check_call_status(); - zephir_throw_exception_debug(&_45$$45, "phalcon/Mvc/Model.zep", 3891); + zephir_throw_exception_debug(&_45$$45, "phalcon/Mvc/Model.zep", 3898); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3894); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3895); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3901); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3902); } } else { if (useExplicitIdentity) { - zephir_array_append(&values, &defaultValue, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3899); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3900); + zephir_array_append(&values, &defaultValue, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3906); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 3907); } } } if (Z_TYPE_P(table) == IS_ARRAY) { - zephir_array_fetch_long(&_48$$48, table, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3909); - zephir_array_fetch_long(&_49$$48, table, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3909); + zephir_array_fetch_long(&_48$$48, table, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3916); + zephir_array_fetch_long(&_49$$48, table, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 3916); ZEPHIR_INIT_VAR(&_50$$48); ZEPHIR_CONCAT_VSV(&_50$$48, &_48$$48, ".", &_49$$48); ZEPHIR_CPY_WRT(table, &_50$$48); @@ -6910,7 +6915,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowInsert) zephir_update_property_zval(this_ptr, ZEND_STRL("uniqueParams"), &__$null); } if (zephir_is_true(&success)) { - zephir_is_iterable(&unsetDefaultValues, 0, "phalcon/Mvc/Model.zep", 3970); + zephir_is_iterable(&unsetDefaultValues, 0, "phalcon/Mvc/Model.zep", 3977); if (Z_TYPE_P(&unsetDefaultValues) == IS_ARRAY) { ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&unsetDefaultValues), _57$$56, _58$$56, _55$$56) { @@ -7107,7 +7112,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) _2 = Z_TYPE_P(&snapshot) == IS_ARRAY; } if (EXPECTED(_2)) { - zephir_is_iterable(&nonPrimary, 0, "phalcon/Mvc/Model.zep", 4130); + zephir_is_iterable(&nonPrimary, 0, "phalcon/Mvc/Model.zep", 4137); if (Z_TYPE_P(&nonPrimary) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&nonPrimary), _3$$5) { @@ -7126,7 +7131,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_7$$9, "Column '", &field, "' in '", &_6$$9, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_5$$9, "__construct", &_8, 33, &_7$$9); zephir_check_call_status(); - zephir_throw_exception_debug(&_5$$9, "phalcon/Mvc/Model.zep", 4024); + zephir_throw_exception_debug(&_5$$9, "phalcon/Mvc/Model.zep", 4031); ZEPHIR_MM_RESTORE(); return; } @@ -7145,7 +7150,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_11$$12, "Column '", &field, "' in '", &_10$$12, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, &_9$$12, "__construct", &_8, 33, &_11$$12); zephir_check_call_status(); - zephir_throw_exception_debug(&_9$$12, "phalcon/Mvc/Model.zep", 4037); + zephir_throw_exception_debug(&_9$$12, "phalcon/Mvc/Model.zep", 4044); ZEPHIR_MM_RESTORE(); return; } @@ -7171,7 +7176,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_14$$20, "Column '", &field, "' in '", &_13$$20, "' have not defined a data type"); ZEPHIR_CALL_METHOD(NULL, &_12$$20, "__construct", &_8, 33, &_14$$20); zephir_check_call_status(); - zephir_throw_exception_debug(&_12$$20, "phalcon/Mvc/Model.zep", 4067); + zephir_throw_exception_debug(&_12$$20, "phalcon/Mvc/Model.zep", 4074); ZEPHIR_MM_RESTORE(); return; } @@ -7219,9 +7224,9 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) } } if (changed) { - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4117); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4118); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4119); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4124); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4125); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4126); } zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); } else { @@ -7253,7 +7258,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_25$$32, "Column '", &field, "' in '", &_24$$32, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_23$$32, "__construct", &_8, 33, &_25$$32); zephir_check_call_status(); - zephir_throw_exception_debug(&_23$$32, "phalcon/Mvc/Model.zep", 4024); + zephir_throw_exception_debug(&_23$$32, "phalcon/Mvc/Model.zep", 4031); ZEPHIR_MM_RESTORE(); return; } @@ -7272,7 +7277,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_28$$35, "Column '", &field, "' in '", &_27$$35, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, &_26$$35, "__construct", &_8, 33, &_28$$35); zephir_check_call_status(); - zephir_throw_exception_debug(&_26$$35, "phalcon/Mvc/Model.zep", 4037); + zephir_throw_exception_debug(&_26$$35, "phalcon/Mvc/Model.zep", 4044); ZEPHIR_MM_RESTORE(); return; } @@ -7298,7 +7303,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_31$$43, "Column '", &field, "' in '", &_30$$43, "' have not defined a data type"); ZEPHIR_CALL_METHOD(NULL, &_29$$43, "__construct", &_8, 33, &_31$$43); zephir_check_call_status(); - zephir_throw_exception_debug(&_29$$43, "phalcon/Mvc/Model.zep", 4067); + zephir_throw_exception_debug(&_29$$43, "phalcon/Mvc/Model.zep", 4074); ZEPHIR_MM_RESTORE(); return; } @@ -7346,9 +7351,9 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) } } if (changed) { - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4117); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4118); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4119); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4124); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4125); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4126); } zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); } else { @@ -7365,7 +7370,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) RETURN_MM_BOOL(1); } } else { - zephir_is_iterable(&nonPrimary, 0, "phalcon/Mvc/Model.zep", 4185); + zephir_is_iterable(&nonPrimary, 0, "phalcon/Mvc/Model.zep", 4192); if (Z_TYPE_P(&nonPrimary) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&nonPrimary), _39$$53) { @@ -7383,7 +7388,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_43$$57, "Column '", &field, "' in '", &_42$$57, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_41$$57, "__construct", &_8, 33, &_43$$57); zephir_check_call_status(); - zephir_throw_exception_debug(&_41$$57, "phalcon/Mvc/Model.zep", 4148); + zephir_throw_exception_debug(&_41$$57, "phalcon/Mvc/Model.zep", 4155); ZEPHIR_MM_RESTORE(); return; } @@ -7402,21 +7407,21 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_46$$60, "Column '", &field, "' in '", &_45$$60, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, &_44$$60, "__construct", &_8, 33, &_46$$60); zephir_check_call_status(); - zephir_throw_exception_debug(&_44$$60, "phalcon/Mvc/Model.zep", 4162); + zephir_throw_exception_debug(&_44$$60, "phalcon/Mvc/Model.zep", 4169); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_OBS_NVAR(&value); if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4173); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4174); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4175); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4180); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4181); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4182); zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); } else { zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4179); - zephir_array_append(&values, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4180); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4181); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4186); + zephir_array_append(&values, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4187); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4188); } } } ZEND_HASH_FOREACH_END(); @@ -7443,7 +7448,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_49$$66, "Column '", &field, "' in '", &_48$$66, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_47$$66, "__construct", &_8, 33, &_49$$66); zephir_check_call_status(); - zephir_throw_exception_debug(&_47$$66, "phalcon/Mvc/Model.zep", 4148); + zephir_throw_exception_debug(&_47$$66, "phalcon/Mvc/Model.zep", 4155); ZEPHIR_MM_RESTORE(); return; } @@ -7462,21 +7467,21 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_52$$69, "Column '", &field, "' in '", &_51$$69, "' have not defined a bind data type"); ZEPHIR_CALL_METHOD(NULL, &_50$$69, "__construct", &_8, 33, &_52$$69); zephir_check_call_status(); - zephir_throw_exception_debug(&_50$$69, "phalcon/Mvc/Model.zep", 4162); + zephir_throw_exception_debug(&_50$$69, "phalcon/Mvc/Model.zep", 4169); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_OBS_NVAR(&value); if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4173); - zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4174); - zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4175); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4180); + zephir_array_append(&values, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4181); + zephir_array_append(&bindTypes, &bindType, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4182); zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); } else { zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); - zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4179); - zephir_array_append(&values, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4180); - zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4181); + zephir_array_append(&fields, &field, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4186); + zephir_array_append(&values, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4187); + zephir_array_append(&bindTypes, &bindSkip, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4188); } } ZEPHIR_CALL_METHOD(NULL, &nonPrimary, "next", NULL, 0); @@ -7504,13 +7509,13 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVS(&_55$$74, "A primary key must be defined in the model in order to perform the operation in '", &_54$$74, "'"); ZEPHIR_CALL_METHOD(NULL, &_53$$74, "__construct", &_8, 33, &_55$$74); zephir_check_call_status(); - zephir_throw_exception_debug(&_53$$74, "phalcon/Mvc/Model.zep", 4208); + zephir_throw_exception_debug(&_53$$74, "phalcon/Mvc/Model.zep", 4215); ZEPHIR_MM_RESTORE(); return; } ZEPHIR_INIT_NVAR(&uniqueParams); array_init(&uniqueParams); - zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 4235); + zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 4242); if (Z_TYPE_P(&primaryKeys) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&primaryKeys), _56$$73) { @@ -7527,7 +7532,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_60$$77, "Column '", &field, "' in '", &_59$$77, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_58$$77, "__construct", &_8, 33, &_60$$77); zephir_check_call_status(); - zephir_throw_exception_debug(&_58$$77, "phalcon/Mvc/Model.zep", 4221); + zephir_throw_exception_debug(&_58$$77, "phalcon/Mvc/Model.zep", 4228); ZEPHIR_MM_RESTORE(); return; } @@ -7537,10 +7542,10 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_OBS_NVAR(&value); if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); - zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4229); + zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4236); } else { zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); - zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4232); + zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4239); } } ZEND_HASH_FOREACH_END(); } else { @@ -7565,7 +7570,7 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_CONCAT_SVSVS(&_63$$83, "Column '", &field, "' in '", &_62$$83, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_61$$83, "__construct", &_8, 33, &_63$$83); zephir_check_call_status(); - zephir_throw_exception_debug(&_61$$83, "phalcon/Mvc/Model.zep", 4221); + zephir_throw_exception_debug(&_61$$83, "phalcon/Mvc/Model.zep", 4228); ZEPHIR_MM_RESTORE(); return; } @@ -7575,10 +7580,10 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_OBS_NVAR(&value); if (zephir_fetch_property_zval(&value, this_ptr, &attributeField, PH_SILENT_CC)) { zephir_array_update_zval(&newSnapshot, &attributeField, &value, PH_COPY | PH_SEPARATE); - zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4229); + zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4236); } else { zephir_array_update_zval(&newSnapshot, &attributeField, &__$null, PH_COPY | PH_SEPARATE); - zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4232); + zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4239); } ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "next", NULL, 0); zephir_check_call_status(); @@ -7587,8 +7592,8 @@ PHP_METHOD(Phalcon_Mvc_Model, doLowUpdate) ZEPHIR_INIT_NVAR(&field); } if (Z_TYPE_P(table) == IS_ARRAY) { - zephir_array_fetch_long(&_64$$87, table, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4241); - zephir_array_fetch_long(&_65$$87, table, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4241); + zephir_array_fetch_long(&_64$$87, table, 0, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4248); + zephir_array_fetch_long(&_65$$87, table, 1, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4248); ZEPHIR_INIT_VAR(&_66$$87); ZEPHIR_CONCAT_VSV(&_66$$87, &_64$$87, ".", &_65$$87); ZEPHIR_CPY_WRT(table, &_66$$87); @@ -7724,7 +7729,7 @@ PHP_METHOD(Phalcon_Mvc_Model, has) array_init(&uniqueParams); ZEPHIR_INIT_NVAR(&uniqueTypes); array_init(&uniqueTypes); - zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 4365); + zephir_is_iterable(&primaryKeys, 0, "phalcon/Mvc/Model.zep", 4372); if (Z_TYPE_P(&primaryKeys) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&primaryKeys), _1$$3) { @@ -7741,7 +7746,7 @@ PHP_METHOD(Phalcon_Mvc_Model, has) ZEPHIR_CONCAT_SVSVS(&_5$$9, "Column '", &field, "' in '", &_4$$9, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_3$$9, "__construct", &_6, 33, &_5$$9); zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$9, "phalcon/Mvc/Model.zep", 4324); + zephir_throw_exception_debug(&_3$$9, "phalcon/Mvc/Model.zep", 4331); ZEPHIR_MM_RESTORE(); return; } @@ -7759,9 +7764,9 @@ PHP_METHOD(Phalcon_Mvc_Model, has) if (_7$$11) { numberEmpty++; } - zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4345); + zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4352); } else { - zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4347); + zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4354); numberEmpty++; } ZEPHIR_OBS_NVAR(&type); @@ -7774,16 +7779,16 @@ PHP_METHOD(Phalcon_Mvc_Model, has) ZEPHIR_CONCAT_SVSVS(&_10$$14, "Column '", &field, "' in '", &_9$$14, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, &_8$$14, "__construct", &_6, 33, &_10$$14); zephir_check_call_status(); - zephir_throw_exception_debug(&_8$$14, "phalcon/Mvc/Model.zep", 4354); + zephir_throw_exception_debug(&_8$$14, "phalcon/Mvc/Model.zep", 4361); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&uniqueTypes, &type, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4357); + zephir_array_append(&uniqueTypes, &type, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4364); ZEPHIR_CALL_METHOD(&_11$$7, connection, "escapeidentifier", &_12, 0, &field); zephir_check_call_status(); ZEPHIR_INIT_NVAR(&_13$$7); ZEPHIR_CONCAT_VS(&_13$$7, &_11$$7, " = ?"); - zephir_array_append(&wherePk, &_13$$7, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4358); + zephir_array_append(&wherePk, &_13$$7, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4365); } ZEND_HASH_FOREACH_END(); } else { ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "rewind", NULL, 0); @@ -7807,7 +7812,7 @@ PHP_METHOD(Phalcon_Mvc_Model, has) ZEPHIR_CONCAT_SVSVS(&_16$$17, "Column '", &field, "' in '", &_15$$17, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_14$$17, "__construct", &_6, 33, &_16$$17); zephir_check_call_status(); - zephir_throw_exception_debug(&_14$$17, "phalcon/Mvc/Model.zep", 4324); + zephir_throw_exception_debug(&_14$$17, "phalcon/Mvc/Model.zep", 4331); ZEPHIR_MM_RESTORE(); return; } @@ -7825,9 +7830,9 @@ PHP_METHOD(Phalcon_Mvc_Model, has) if (_17$$19) { numberEmpty++; } - zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4345); + zephir_array_append(&uniqueParams, &value, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4352); } else { - zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4347); + zephir_array_append(&uniqueParams, &__$null, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4354); numberEmpty++; } ZEPHIR_OBS_NVAR(&type); @@ -7840,16 +7845,16 @@ PHP_METHOD(Phalcon_Mvc_Model, has) ZEPHIR_CONCAT_SVSVS(&_20$$22, "Column '", &field, "' in '", &_19$$22, "' isn't part of the table columns"); ZEPHIR_CALL_METHOD(NULL, &_18$$22, "__construct", &_6, 33, &_20$$22); zephir_check_call_status(); - zephir_throw_exception_debug(&_18$$22, "phalcon/Mvc/Model.zep", 4354); + zephir_throw_exception_debug(&_18$$22, "phalcon/Mvc/Model.zep", 4361); ZEPHIR_MM_RESTORE(); return; } - zephir_array_append(&uniqueTypes, &type, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4357); + zephir_array_append(&uniqueTypes, &type, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4364); ZEPHIR_CALL_METHOD(&_21$$15, connection, "escapeidentifier", &_22, 0, &field); zephir_check_call_status(); ZEPHIR_INIT_NVAR(&_23$$15); ZEPHIR_CONCAT_VS(&_23$$15, &_21$$15, " = ?"); - zephir_array_append(&wherePk, &_23$$15, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4358); + zephir_array_append(&wherePk, &_23$$15, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4365); ZEPHIR_CALL_METHOD(NULL, &primaryKeys, "next", NULL, 0); zephir_check_call_status(); } @@ -7900,7 +7905,7 @@ PHP_METHOD(Phalcon_Mvc_Model, has) ZVAL_NULL(&_29); ZEPHIR_CALL_METHOD(&num, connection, "fetchone", NULL, 0, &_28, &_29, &uniqueParams, &uniqueTypes); zephir_check_call_status(); - zephir_array_fetch_string(&_30, &num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4419); + zephir_array_fetch_string(&_30, &num, SL("rowcount"), PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4426); if (zephir_is_true(&_30)) { ZVAL_UNDEF(&_31$$30); ZVAL_LONG(&_31$$30, 0); @@ -8100,7 +8105,7 @@ PHP_METHOD(Phalcon_Mvc_Model, groupResult) ZEPHIR_INIT_VAR(¶ms); array_init(¶ms); if (Z_TYPE_P(parameters) != IS_NULL) { - zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4524); + zephir_array_append(¶ms, parameters, PH_SEPARATE, "phalcon/Mvc/Model.zep", 4531); } } else { ZEPHIR_CPY_WRT(¶ms, parameters); @@ -8144,10 +8149,10 @@ PHP_METHOD(Phalcon_Mvc_Model, groupResult) } if (zephir_array_isset_string(¶ms, SL("bind"))) { ZEPHIR_OBS_NVAR(&bindParams); - zephir_array_fetch_string(&bindParams, ¶ms, SL("bind"), PH_NOISY, "phalcon/Mvc/Model.zep", 4567); + zephir_array_fetch_string(&bindParams, ¶ms, SL("bind"), PH_NOISY, "phalcon/Mvc/Model.zep", 4574); if (zephir_array_isset_string(¶ms, SL("bindTypes"))) { ZEPHIR_OBS_NVAR(&bindTypes); - zephir_array_fetch_string(&bindTypes, ¶ms, SL("bindTypes"), PH_NOISY, "phalcon/Mvc/Model.zep", 4570); + zephir_array_fetch_string(&bindTypes, ¶ms, SL("bindTypes"), PH_NOISY, "phalcon/Mvc/Model.zep", 4577); } } zephir_memory_observe(&cache); @@ -8252,7 +8257,7 @@ PHP_METHOD(Phalcon_Mvc_Model, invokeFinder) ZEPHIR_CONCAT_SVSVS(&_5$$7, "The static method '", &method, "' in '", &_4$$7, "' requires one argument"); ZEPHIR_CALL_METHOD(NULL, &_3$$7, "__construct", NULL, 33, &_5$$7); zephir_check_call_status(); - zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model.zep", 4649); + zephir_throw_exception_debug(&_3$$7, "phalcon/Mvc/Model.zep", 4656); ZEPHIR_MM_RESTORE(); return; } @@ -8286,7 +8291,7 @@ PHP_METHOD(Phalcon_Mvc_Model, invokeFinder) ZEPHIR_CONCAT_SVSVS(&_8$$13, "Cannot resolve attribute '", &extraMethod, "' in the model '", &_7$$13, "'"); ZEPHIR_CALL_METHOD(NULL, &_6$$13, "__construct", NULL, 33, &_8$$13); zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$13, "phalcon/Mvc/Model.zep", 4686); + zephir_throw_exception_debug(&_6$$13, "phalcon/Mvc/Model.zep", 4693); ZEPHIR_MM_RESTORE(); return; } @@ -8501,7 +8506,7 @@ PHP_METHOD(Phalcon_Mvc_Model, preSave) ZEPHIR_CALL_METHOD(&emptyStringValues, metaData, "getemptystringattributes", NULL, 0, this_ptr); zephir_check_call_status(); error = 0; - zephir_is_iterable(¬Null, 0, "phalcon/Mvc/Model.zep", 4927); + zephir_is_iterable(¬Null, 0, "phalcon/Mvc/Model.zep", 4934); if (Z_TYPE_P(¬Null) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(¬Null), _4$$11) { @@ -8519,7 +8524,7 @@ PHP_METHOD(Phalcon_Mvc_Model, preSave) ZEPHIR_CONCAT_SVSVS(&_8$$19, "Column '", &field, "' in '", &_7$$19, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_6$$19, "__construct", &_9, 33, &_8$$19); zephir_check_call_status(); - zephir_throw_exception_debug(&_6$$19, "phalcon/Mvc/Model.zep", 4847); + zephir_throw_exception_debug(&_6$$19, "phalcon/Mvc/Model.zep", 4854); ZEPHIR_MM_RESTORE(); return; } @@ -8544,7 +8549,7 @@ PHP_METHOD(Phalcon_Mvc_Model, preSave) if (_11$$27) { _12$$27 = !(zephir_array_isset(&defaultValues, &field)); if (!(_12$$27)) { - zephir_array_fetch(&_13$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4877); + zephir_array_fetch(&_13$$27, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4884); _12$$27 = !ZEPHIR_IS_IDENTICAL(&value, &_13$$27); } _11$$27 = _12$$27; @@ -8615,7 +8620,7 @@ PHP_METHOD(Phalcon_Mvc_Model, preSave) ZEPHIR_CONCAT_SVSVS(&_22$$39, "Column '", &field, "' in '", &_21$$39, "' isn't part of the column map"); ZEPHIR_CALL_METHOD(NULL, &_20$$39, "__construct", &_9, 33, &_22$$39); zephir_check_call_status(); - zephir_throw_exception_debug(&_20$$39, "phalcon/Mvc/Model.zep", 4847); + zephir_throw_exception_debug(&_20$$39, "phalcon/Mvc/Model.zep", 4854); ZEPHIR_MM_RESTORE(); return; } @@ -8640,7 +8645,7 @@ PHP_METHOD(Phalcon_Mvc_Model, preSave) if (_24$$47) { _25$$47 = !(zephir_array_isset(&defaultValues, &field)); if (!(_25$$47)) { - zephir_array_fetch(&_26$$47, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4877); + zephir_array_fetch(&_26$$47, &defaultValues, &field, PH_NOISY | PH_READONLY, "phalcon/Mvc/Model.zep", 4884); _25$$47 = !ZEPHIR_IS_IDENTICAL(&value, &_26$$47); } _24$$47 = _25$$47; @@ -8849,7 +8854,7 @@ PHP_METHOD(Phalcon_Mvc_Model, preSaveRelatedRecords) ZEPHIR_CALL_METHOD(&_1, this_ptr, "getmodelsmanager", NULL, 0); zephir_check_call_status(); ZEPHIR_CPY_WRT(&manager, &_1); - zephir_is_iterable(related, 0, "phalcon/Mvc/Model.zep", 5091); + zephir_is_iterable(related, 0, "phalcon/Mvc/Model.zep", 5098); if (Z_TYPE_P(related) == IS_ARRAY) { ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(related), _4, _5, _2) { @@ -8884,7 +8889,7 @@ PHP_METHOD(Phalcon_Mvc_Model, preSaveRelatedRecords) ZEPHIR_CONCAT_SVSV(&_12$$6, "Only objects can be stored as part of belongs-to relations in '", &_11$$6, "' Relation ", &name); ZEPHIR_CALL_METHOD(NULL, &_10$$6, "__construct", &_13, 33, &_12$$6); zephir_check_call_status(); - zephir_throw_exception_debug(&_10$$6, "phalcon/Mvc/Model.zep", 5049); + zephir_throw_exception_debug(&_10$$6, "phalcon/Mvc/Model.zep", 5056); ZEPHIR_MM_RESTORE(); return; } @@ -8908,7 +8913,7 @@ PHP_METHOD(Phalcon_Mvc_Model, preSaveRelatedRecords) ZEPHIR_CONCAT_SVSV(&_18$$7, "Not implemented in '", &_17$$7, "' Relation ", &name); ZEPHIR_CALL_METHOD(NULL, &_16$$7, "__construct", &_13, 33, &_18$$7); zephir_check_call_status(); - zephir_throw_exception_debug(&_16$$7, "phalcon/Mvc/Model.zep", 5060); + zephir_throw_exception_debug(&_16$$7, "phalcon/Mvc/Model.zep", 5067); ZEPHIR_MM_RESTORE(); return; } @@ -8973,7 +8978,7 @@ PHP_METHOD(Phalcon_Mvc_Model, preSaveRelatedRecords) ZEPHIR_CONCAT_SVSV(&_32$$12, "Only objects can be stored as part of belongs-to relations in '", &_31$$12, "' Relation ", &name); ZEPHIR_CALL_METHOD(NULL, &_30$$12, "__construct", &_13, 33, &_32$$12); zephir_check_call_status(); - zephir_throw_exception_debug(&_30$$12, "phalcon/Mvc/Model.zep", 5049); + zephir_throw_exception_debug(&_30$$12, "phalcon/Mvc/Model.zep", 5056); ZEPHIR_MM_RESTORE(); return; } @@ -8997,7 +9002,7 @@ PHP_METHOD(Phalcon_Mvc_Model, preSaveRelatedRecords) ZEPHIR_CONCAT_SVSV(&_37$$13, "Not implemented in '", &_36$$13, "' Relation ", &name); ZEPHIR_CALL_METHOD(NULL, &_35$$13, "__construct", &_13, 33, &_37$$13); zephir_check_call_status(); - zephir_throw_exception_debug(&_35$$13, "phalcon/Mvc/Model.zep", 5060); + zephir_throw_exception_debug(&_35$$13, "phalcon/Mvc/Model.zep", 5067); ZEPHIR_MM_RESTORE(); return; } @@ -9203,7 +9208,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) ZEPHIR_CALL_METHOD(&_0, this_ptr, "getmodelsmanager", NULL, 0); zephir_check_call_status(); ZEPHIR_CPY_WRT(&manager, &_0); - zephir_is_iterable(related, 0, "phalcon/Mvc/Model.zep", 5319); + zephir_is_iterable(related, 0, "phalcon/Mvc/Model.zep", 5326); if (Z_TYPE_P(related) == IS_ARRAY) { ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(related), _3, _4, _1) { @@ -9242,7 +9247,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) ZEPHIR_CONCAT_SVSV(&_12$$6, "Only objects/arrays can be stored as part of has-many/has-one/has-one-through/has-many-to-many relations on model ", &className, " on Relation ", &name); ZEPHIR_CALL_METHOD(NULL, &_11$$6, "__construct", &_13, 33, &_12$$6); zephir_check_call_status(); - zephir_throw_exception_debug(&_11$$6, "phalcon/Mvc/Model.zep", 5154); + zephir_throw_exception_debug(&_11$$6, "phalcon/Mvc/Model.zep", 5161); ZEPHIR_MM_RESTORE(); return; } @@ -9266,7 +9271,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) ZEPHIR_CONCAT_SVSV(&_17$$7, "Not implemented in '", &className, "' on Relation ", &name); ZEPHIR_CALL_METHOD(NULL, &_16$$7, "__construct", &_13, 33, &_17$$7); zephir_check_call_status(); - zephir_throw_exception_debug(&_16$$7, "phalcon/Mvc/Model.zep", 5164); + zephir_throw_exception_debug(&_16$$7, "phalcon/Mvc/Model.zep", 5171); ZEPHIR_MM_RESTORE(); return; } @@ -9292,7 +9297,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) ZEPHIR_CONCAT_SVSVS(&_21$$10, "The column '", &columns, "' needs to be present in the model '", &className, "'"); ZEPHIR_CALL_METHOD(NULL, &_20$$10, "__construct", &_13, 33, &_21$$10); zephir_check_call_status(); - zephir_throw_exception_debug(&_20$$10, "phalcon/Mvc/Model.zep", 5181); + zephir_throw_exception_debug(&_20$$10, "phalcon/Mvc/Model.zep", 5188); ZEPHIR_MM_RESTORE(); return; } @@ -9306,7 +9311,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) zephir_check_call_status(); ZEPHIR_CALL_METHOD(&intermediateReferencedFields, &relation, "getintermediatereferencedfields", NULL, 0); zephir_check_call_status(); - zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5280); + zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5287); if (Z_TYPE_P(&relatedRecords) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relatedRecords), _23$$11) { @@ -9440,7 +9445,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) } ZEPHIR_INIT_NVAR(&recordAfter); } else { - zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5304); + zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5311); if (Z_TYPE_P(&relatedRecords) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relatedRecords), _50$$22) { @@ -9511,7 +9516,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) ZEPHIR_CONCAT_SVSVS(&_61$$28, "There are no defined relations for the model '", &className, "' using alias '", &name, "'"); ZEPHIR_CALL_METHOD(NULL, &_60$$28, "__construct", &_13, 33, &_61$$28); zephir_check_call_status(); - zephir_throw_exception_debug(&_60$$28, "phalcon/Mvc/Model.zep", 5311); + zephir_throw_exception_debug(&_60$$28, "phalcon/Mvc/Model.zep", 5318); ZEPHIR_MM_RESTORE(); return; } @@ -9557,7 +9562,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) ZEPHIR_CONCAT_SVSV(&_69$$32, "Only objects/arrays can be stored as part of has-many/has-one/has-one-through/has-many-to-many relations on model ", &className, " on Relation ", &name); ZEPHIR_CALL_METHOD(NULL, &_68$$32, "__construct", &_13, 33, &_69$$32); zephir_check_call_status(); - zephir_throw_exception_debug(&_68$$32, "phalcon/Mvc/Model.zep", 5154); + zephir_throw_exception_debug(&_68$$32, "phalcon/Mvc/Model.zep", 5161); ZEPHIR_MM_RESTORE(); return; } @@ -9581,7 +9586,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) ZEPHIR_CONCAT_SVSV(&_73$$33, "Not implemented in '", &className, "' on Relation ", &name); ZEPHIR_CALL_METHOD(NULL, &_72$$33, "__construct", &_13, 33, &_73$$33); zephir_check_call_status(); - zephir_throw_exception_debug(&_72$$33, "phalcon/Mvc/Model.zep", 5164); + zephir_throw_exception_debug(&_72$$33, "phalcon/Mvc/Model.zep", 5171); ZEPHIR_MM_RESTORE(); return; } @@ -9608,7 +9613,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) ZEPHIR_CONCAT_SVSVS(&_78$$36, "The column '", &columns, "' needs to be present in the model '", &className, "'"); ZEPHIR_CALL_METHOD(NULL, &_77$$36, "__construct", &_13, 33, &_78$$36); zephir_check_call_status(); - zephir_throw_exception_debug(&_77$$36, "phalcon/Mvc/Model.zep", 5181); + zephir_throw_exception_debug(&_77$$36, "phalcon/Mvc/Model.zep", 5188); ZEPHIR_MM_RESTORE(); return; } @@ -9622,7 +9627,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) zephir_check_call_status(); ZEPHIR_CALL_METHOD(&intermediateReferencedFields, &relation, "getintermediatereferencedfields", NULL, 0); zephir_check_call_status(); - zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5280); + zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5287); if (Z_TYPE_P(&relatedRecords) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relatedRecords), _80$$37) { @@ -9756,7 +9761,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) } ZEPHIR_INIT_NVAR(&recordAfter); } else { - zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5304); + zephir_is_iterable(&relatedRecords, 0, "phalcon/Mvc/Model.zep", 5311); if (Z_TYPE_P(&relatedRecords) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&relatedRecords), _106$$48) { @@ -9827,7 +9832,7 @@ PHP_METHOD(Phalcon_Mvc_Model, postSaveRelatedRecords) ZEPHIR_CONCAT_SVSVS(&_117$$54, "There are no defined relations for the model '", &className, "' using alias '", &name, "'"); ZEPHIR_CALL_METHOD(NULL, &_116$$54, "__construct", &_13, 33, &_117$$54); zephir_check_call_status(); - zephir_throw_exception_debug(&_116$$54, "phalcon/Mvc/Model.zep", 5311); + zephir_throw_exception_debug(&_116$$54, "phalcon/Mvc/Model.zep", 5318); ZEPHIR_MM_RESTORE(); return; } @@ -9889,7 +9894,7 @@ PHP_METHOD(Phalcon_Mvc_Model, allowEmptyStringValues) ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); ZEPHIR_INIT_VAR(&keysAttributes); array_init(&keysAttributes); - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5352); + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5359); if (Z_TYPE_P(&attributes) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _0) { @@ -10703,7 +10708,7 @@ PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnCreate) ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); ZEPHIR_INIT_VAR(&keysAttributes); array_init(&keysAttributes); - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5811); + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5818); if (Z_TYPE_P(&attributes) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _0) { @@ -10776,7 +10781,7 @@ PHP_METHOD(Phalcon_Mvc_Model, skipAttributesOnUpdate) ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); ZEPHIR_INIT_VAR(&keysAttributes); array_init(&keysAttributes); - zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5846); + zephir_is_iterable(&attributes, 0, "phalcon/Mvc/Model.zep", 5853); if (Z_TYPE_P(&attributes) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&attributes), _0) { @@ -11007,7 +11012,7 @@ PHP_METHOD(Phalcon_Mvc_Model, caseInsensitiveColumnMap) zephir_fetch_params(1, 2, 0, &columnMap, &key); ZEPHIR_INIT_VAR(&_0); zephir_array_keys(&_0, columnMap); - zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model.zep", 5983); + zephir_is_iterable(&_0, 0, "phalcon/Mvc/Model.zep", 5990); if (Z_TYPE_P(&_0) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_0), _1) { @@ -11075,7 +11080,7 @@ PHP_METHOD(Phalcon_Mvc_Model, appendMessagesFrom) ZEPHIR_CALL_METHOD(&messages, model, "getmessages", NULL, 0); zephir_check_call_status(); if (0 == ZEPHIR_IS_EMPTY(&messages)) { - zephir_is_iterable(&messages, 0, "phalcon/Mvc/Model.zep", 6007); + zephir_is_iterable(&messages, 0, "phalcon/Mvc/Model.zep", 6014); if (Z_TYPE_P(&messages) == IS_ARRAY) { ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&messages), _0$$3) { From a71fa61764f13a12abf5258e798bc402e09e8d2e Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 10:30:53 -0600 Subject: [PATCH 06/42] fixing tests --- tests/database/Mvc/Model/CountCest.php | 106 +++++++++--------- .../Paginator/Adapter/Model/PaginateCest.php | 4 + 2 files changed, 57 insertions(+), 53 deletions(-) diff --git a/tests/database/Mvc/Model/CountCest.php b/tests/database/Mvc/Model/CountCest.php index a7d0746b60..a579c5157d 100644 --- a/tests/database/Mvc/Model/CountCest.php +++ b/tests/database/Mvc/Model/CountCest.php @@ -94,12 +94,25 @@ public function mvcModelCount(DatabaseTester $I): void ] ); $I->assertInstanceOf(Simple::class, $results); - $I->assertEquals(1, (int) $results[0]->inv_cst_id); - $I->assertEquals(20, (int) $results[0]->rowcount); - $I->assertEquals(2, (int) $results[1]->inv_cst_id); - $I->assertEquals(12, (int) $results[1]->rowcount); - $I->assertEquals(3, (int) $results[2]->inv_cst_id); - $I->assertEquals(1, (int) $results[2]->rowcount); + + if ('mysql' !== $I->getDriver()) { + $matrix = [ + 0 => [3, 1], + 1 => [2, 12], + 2 => [1, 20], + ]; + } else { + $matrix = [ + 0 => [1, 20], + 1 => [2, 12], + 2 => [3, 1], + ]; + } + + foreach ($matrix as $id => $expected) { + $I->assertSame($expected[0], (int) $results[$id]->inv_cst_id); + $I->assertSame($expected[1], (int) $results[$id]->rowcount); + } $results = Invoices::count( [ @@ -108,12 +121,11 @@ public function mvcModelCount(DatabaseTester $I): void ] ); $I->assertInstanceOf(Simple::class, $results); - $I->assertEquals(3, (int) $results[0]->inv_cst_id); - $I->assertEquals(1, (int) $results[0]->rowcount); - $I->assertEquals(2, (int) $results[1]->inv_cst_id); - $I->assertEquals(12, (int) $results[1]->rowcount); - $I->assertEquals(1, (int) $results[2]->inv_cst_id); - $I->assertEquals(20, (int) $results[2]->rowcount); + + foreach ($matrix as $id => $expected) { + $I->assertSame($expected[0], (int) $results[$id]->inv_cst_id); + $I->assertSame($expected[1], (int) $results[$id]->rowcount); + } /** * @issue https://github.com/phalcon/cphalcon/issues/15486 @@ -154,7 +166,8 @@ public function mvcModelCount(DatabaseTester $I): void * @param DatabaseTester $I * * @author Phalcon Team - * @since 2020-01-29 + * @since 2023-12-26 + * @issue https://github.com/phalcon/cphalcon/issues/16471 * * @group mysql * @group pgsql @@ -190,12 +203,29 @@ public function mvcModelCountColumnMap(DatabaseTester $I): void ] ); $I->assertInstanceOf(Simple::class, $results); - $I->assertEquals(1, (int) $results[0]->cst_id); - $I->assertEquals(20, (int) $results[0]->rowcount); - $I->assertEquals(2, (int) $results[1]->cst_id); - $I->assertEquals(12, (int) $results[1]->rowcount); - $I->assertEquals(3, (int) $results[2]->cst_id); - $I->assertEquals(1, (int) $results[2]->rowcount); + + /** + * This is here because each engine sorts their groupped results + * differently + */ + if ('mysql' !== $I->getDriver()) { + $matrix = [ + 0 => [3, 1], + 1 => [2, 12], + 2 => [1, 20], + ]; + } else { + $matrix = [ + 0 => [1, 20], + 1 => [2, 12], + 2 => [3, 1], + ]; + } + + foreach ($matrix as $id => $expected) { + $I->assertSame($expected[0], (int) $results[$id]->cst_id); + $I->assertSame($expected[1], (int) $results[$id]->rowcount); + } $results = InvoicesMap::count( [ @@ -204,41 +234,11 @@ public function mvcModelCountColumnMap(DatabaseTester $I): void ] ); $I->assertInstanceOf(Simple::class, $results); - $I->assertEquals(3, (int) $results[0]->cst_id); - $I->assertEquals(1, (int) $results[0]->rowcount); - $I->assertEquals(2, (int) $results[1]->cst_id); - $I->assertEquals(12, (int) $results[1]->rowcount); - $I->assertEquals(1, (int) $results[2]->cst_id); - $I->assertEquals(20, (int) $results[2]->rowcount); - } - - /** - * Tests Phalcon\Mvc\Model :: count() - with order - * - * @param DatabaseTester $I - * - * @author Phalcon Team - * @since 2023-12-26 - * @issue https://github.com/phalcon/cphalcon/issues/16471 - * - * @group mysql - * @group pgsql - */ - public function mvcModelCountWithOrder(DatabaseTester $I): void - { - $invId = 'default'; - $this->seed($invId); - $total = InvoicesMap::count(); - $I->assertEquals(33, $total); - - $total = InvoicesMap::count( - [ - 'distinct' => 'cst_id', - 'order' => 'cst_id', - ] - ); - $I->assertEquals(3, $total); + foreach ($matrix as $id => $expected) { + $I->assertSame($expected[0], (int) $results[$id]->cst_id); + $I->assertSame($expected[1], (int) $results[$id]->rowcount); + } } /** diff --git a/tests/database/Paginator/Adapter/Model/PaginateCest.php b/tests/database/Paginator/Adapter/Model/PaginateCest.php index 150b4cffb3..e253e8f02d 100644 --- a/tests/database/Paginator/Adapter/Model/PaginateCest.php +++ b/tests/database/Paginator/Adapter/Model/PaginateCest.php @@ -337,6 +337,10 @@ public function paginatorAdapterModelPaginateView(DatabaseTester $I): void /** * @param DatabaseTester $I * + * @author Phalcon Team + * @since 2023-12-26 + * @issue https://github.com/phalcon/cphalcon/issues/16471 + * * @group mysql * @group pgsql */ From 1f9f4cf6f689e532a839ebe6159202a28005407c Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 10:32:05 -0600 Subject: [PATCH 07/42] minor adjustment --- phalcon/Mvc/Model.zep | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/phalcon/Mvc/Model.zep b/phalcon/Mvc/Model.zep index b48585a1a8..ca11ac05c7 100644 --- a/phalcon/Mvc/Model.zep +++ b/phalcon/Mvc/Model.zep @@ -1182,16 +1182,18 @@ abstract class Model extends AbstractInjectionAware implements EntityInterface, */ public static function count(var parameters = null) -> int | { - var result; + var params, result; + + let params = parameters; /** * Removing `order by` for postgresql */ - if (isset(parameters["order"])) { - unset parameters["order"]; + if (isset(params["order"])) { + unset params["order"]; } - let result = self::groupResult("COUNT", "rowcount", parameters); + let result = self::groupResult("COUNT", "rowcount", params); if typeof result === "string" { return (int) result; From 54fd67f6562000d0df5cd6956ce0e3bd8c6686e1 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 11:07:01 -0600 Subject: [PATCH 08/42] sqlite test correction --- tests/database/Mvc/Model/CountCest.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/database/Mvc/Model/CountCest.php b/tests/database/Mvc/Model/CountCest.php index a579c5157d..93249e899f 100644 --- a/tests/database/Mvc/Model/CountCest.php +++ b/tests/database/Mvc/Model/CountCest.php @@ -95,17 +95,17 @@ public function mvcModelCount(DatabaseTester $I): void ); $I->assertInstanceOf(Simple::class, $results); - if ('mysql' !== $I->getDriver()) { + if ('mysql' === $I->getDriver()) { $matrix = [ - 0 => [3, 1], + 0 => [1, 20], 1 => [2, 12], - 2 => [1, 20], + 2 => [3, 1], ]; } else { $matrix = [ - 0 => [1, 20], + 0 => [3, 1], 1 => [2, 12], - 2 => [3, 1], + 2 => [1, 20], ]; } From aca7e220d19443f28ef69f2021662565da8601ec Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 11:36:31 -0600 Subject: [PATCH 09/42] trying to fix this test again --- tests/database/Mvc/Model/CountCest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/database/Mvc/Model/CountCest.php b/tests/database/Mvc/Model/CountCest.php index 93249e899f..1ba8bbbd6f 100644 --- a/tests/database/Mvc/Model/CountCest.php +++ b/tests/database/Mvc/Model/CountCest.php @@ -95,7 +95,7 @@ public function mvcModelCount(DatabaseTester $I): void ); $I->assertInstanceOf(Simple::class, $results); - if ('mysql' === $I->getDriver()) { + if ('pgsql' !== $I->getDriver()) { $matrix = [ 0 => [1, 20], 1 => [2, 12], From 458e4a941bd4c31a4253128ca11255130b0e50bc Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 11:50:41 -0600 Subject: [PATCH 10/42] trying to remove warnings from the run --- .github/actions/build-phalcon-win/action.yml | 4 ++-- .github/workflows/main.yml | 16 +++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/actions/build-phalcon-win/action.yml b/.github/actions/build-phalcon-win/action.yml index af8b8ff5c9..5ec1ed16fa 100644 --- a/.github/actions/build-phalcon-win/action.yml +++ b/.github/actions/build-phalcon-win/action.yml @@ -74,7 +74,7 @@ runs: cache_dir: ${{ env.CACHE_DIR }} - name: Configure Developer Command Prompt for MSVC compiler - uses: ilammy/msvc-dev-cmd@v1.10.0 + uses: ilammy/msvc-dev-cmd@v1.12.1 with: arch: ${{ inputs.arch }} @@ -82,7 +82,7 @@ runs: # PHP Warning: PHP Startup: Can't load module 'C:\tools\php\ext\php_zephir_parser.dll' # as it's linked with 14.29, but the core is linked with 14.16 in Unknown on line 0 - name: Configure Developer Command Prompt for MSVC compiler - uses: ilammy/msvc-dev-cmd@v1.10.0 + uses: ilammy/msvc-dev-cmd@v1.12.1 if: ${{ inputs.php_version }} == '7.4' with: arch: ${{ inputs.arch }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 01b074dfae..4988202eef 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -177,14 +177,15 @@ jobs: } else { $PhalconExtPath = "$(php-config --extension-dir)/phalcon.so" } - echo "::set-output name=extension-path::$PhalconExtPath" + echo "extension-path=$PhalconExtPath" >> $GITHUB_ENV +# echo "::set-output name=extension-path::$PhalconExtPath" # echo "extension-path=$PhalconExtPath" >> "$GITHUB_OUTPUT" - name: Creates build artifact with Phalcon extension uses: ./.github/actions/pack-phalcon-ext with: target-name: phalcon-php${{ matrix.php }}-${{ matrix.ts }}-${{ matrix.name }}-${{ matrix.arch }} - ext-path: ${{ steps.phalcon-ext-path.outputs.extension-path }} + ext-path: ${{ env.extension-path }} - name: "Validate composer" run: composer validate --no-check-all --no-check-publish @@ -284,7 +285,7 @@ jobs: COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Download Phalcon Pecl Package - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: phalcon-pecl path: ./phalcon-pecl @@ -386,12 +387,13 @@ jobs: - name: Get the release version id: get-version run: | - echo ::set-output name=version::${GITHUB_REF#refs/tags/} + echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV +# echo ::set-output name=version::${GITHUB_REF#refs/tags/} # echo "version=${GITHUB_REF#refs/tags/}" >> "$GITHUB_ENV" # This needs to be checked - name: Download Phalcon build artifacts id: download - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: path: ./build-artifacts @@ -407,8 +409,8 @@ jobs: uses: ncipollo/release-action@v1 with: token: ${{ secrets.GITHUB_TOKEN }} - name: ${{ steps.get-version.outputs.version }} - tag: ${{ steps.get-version.outputs.version }} + name: ${{ env.version }} + tag: ${{ env.version }} bodyFile: "./build-artifacts/release/release-notes.md" allowUpdates: true artifacts: "./build-artifacts/release/*.zip,./build-artifacts/release/*.tgz" From 93d302b201df9a7bf5576e117ccdecf363c263d0 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 12:00:28 -0600 Subject: [PATCH 11/42] trying a different approach for the path --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4988202eef..8dc5eebee3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -177,7 +177,7 @@ jobs: } else { $PhalconExtPath = "$(php-config --extension-dir)/phalcon.so" } - echo "extension-path=$PhalconExtPath" >> $GITHUB_ENV + echo "extensionPath=$PhalconExtPath" >> $GITHUB_OUTPUT # echo "::set-output name=extension-path::$PhalconExtPath" # echo "extension-path=$PhalconExtPath" >> "$GITHUB_OUTPUT" @@ -185,7 +185,7 @@ jobs: uses: ./.github/actions/pack-phalcon-ext with: target-name: phalcon-php${{ matrix.php }}-${{ matrix.ts }}-${{ matrix.name }}-${{ matrix.arch }} - ext-path: ${{ env.extension-path }} + ext-path: ${{ phalcon-ext-path.outputs.extensionPath }} - name: "Validate composer" run: composer validate --no-check-all --no-check-publish From 1214a2683eb3b6441b2d344526d45d522bbc4151 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 12:01:16 -0600 Subject: [PATCH 12/42] maybe this syntax? --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8dc5eebee3..95cd19e5ea 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -185,7 +185,7 @@ jobs: uses: ./.github/actions/pack-phalcon-ext with: target-name: phalcon-php${{ matrix.php }}-${{ matrix.ts }}-${{ matrix.name }}-${{ matrix.arch }} - ext-path: ${{ phalcon-ext-path.outputs.extensionPath }} + ext-path: ${{ needs.phalcon-ext-path.outputs.extensionPath }} - name: "Validate composer" run: composer validate --no-check-all --no-check-publish From 3281f928412be60cd208b8712ab74bd15f5d5729 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 12:08:49 -0600 Subject: [PATCH 13/42] changing inputs for actions --- .github/actions/pack-phalcon-ext/action.yml | 2 +- .github/workflows/main.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/pack-phalcon-ext/action.yml b/.github/actions/pack-phalcon-ext/action.yml index af7abc4da1..140ba5c361 100644 --- a/.github/actions/pack-phalcon-ext/action.yml +++ b/.github/actions/pack-phalcon-ext/action.yml @@ -19,7 +19,7 @@ runs: if (-not (Test-Path -Path $Destination -PathType Container)) { New-Item $Destination -ItemType Directory | Out-Null } - Copy-Item -Path "${{ inputs.ext-path }}" -Destination $Destination + Copy-Item -Path "${{ env.EXTENSION_PATH }}" -Destination $Destination Copy-Item -Path "./3rdparty/licenses/*.txt" -Destination $Destination Set-Location $Destination & 7z a "${{ inputs.target-name }}.zip" * diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 95cd19e5ea..520cd21c44 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -177,7 +177,7 @@ jobs: } else { $PhalconExtPath = "$(php-config --extension-dir)/phalcon.so" } - echo "extensionPath=$PhalconExtPath" >> $GITHUB_OUTPUT + echo "EXTENSION_PATH=$PhalconExtPath" >> $GITHUB_ENV # echo "::set-output name=extension-path::$PhalconExtPath" # echo "extension-path=$PhalconExtPath" >> "$GITHUB_OUTPUT" @@ -185,7 +185,7 @@ jobs: uses: ./.github/actions/pack-phalcon-ext with: target-name: phalcon-php${{ matrix.php }}-${{ matrix.ts }}-${{ matrix.name }}-${{ matrix.arch }} - ext-path: ${{ needs.phalcon-ext-path.outputs.extensionPath }} + ext-path: ${{ env.EXTENSION_PATH }} - name: "Validate composer" run: composer validate --no-check-all --no-check-publish From 53b6096fcef3e30686fa87ab2d3fca242a7d9385 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 12:27:23 -0600 Subject: [PATCH 14/42] another try --- .github/actions/pack-phalcon-ext/action.yml | 2 +- .github/workflows/main.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/pack-phalcon-ext/action.yml b/.github/actions/pack-phalcon-ext/action.yml index 140ba5c361..af7abc4da1 100644 --- a/.github/actions/pack-phalcon-ext/action.yml +++ b/.github/actions/pack-phalcon-ext/action.yml @@ -19,7 +19,7 @@ runs: if (-not (Test-Path -Path $Destination -PathType Container)) { New-Item $Destination -ItemType Directory | Out-Null } - Copy-Item -Path "${{ env.EXTENSION_PATH }}" -Destination $Destination + Copy-Item -Path "${{ inputs.ext-path }}" -Destination $Destination Copy-Item -Path "./3rdparty/licenses/*.txt" -Destination $Destination Set-Location $Destination & 7z a "${{ inputs.target-name }}.zip" * diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 520cd21c44..dbf0690cc1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -177,7 +177,7 @@ jobs: } else { $PhalconExtPath = "$(php-config --extension-dir)/phalcon.so" } - echo "EXTENSION_PATH=$PhalconExtPath" >> $GITHUB_ENV + echo "extension-path=$PhalconExtPath" >> $GITHUB_OUTPUT # echo "::set-output name=extension-path::$PhalconExtPath" # echo "extension-path=$PhalconExtPath" >> "$GITHUB_OUTPUT" @@ -185,7 +185,7 @@ jobs: uses: ./.github/actions/pack-phalcon-ext with: target-name: phalcon-php${{ matrix.php }}-${{ matrix.ts }}-${{ matrix.name }}-${{ matrix.arch }} - ext-path: ${{ env.EXTENSION_PATH }} + ext-path: ${{ steps.phalcon-ext-path.outputs.extension-path }} - name: "Validate composer" run: composer validate --no-check-all --no-check-publish From a8742796d503d1a917e01b683e5901324c09fb8c Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 13:27:40 -0600 Subject: [PATCH 15/42] reverting back --- .github/workflows/main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dbf0690cc1..a89ff5aad3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -177,8 +177,7 @@ jobs: } else { $PhalconExtPath = "$(php-config --extension-dir)/phalcon.so" } - echo "extension-path=$PhalconExtPath" >> $GITHUB_OUTPUT -# echo "::set-output name=extension-path::$PhalconExtPath" + echo "::set-output name=extension-path::$PhalconExtPath" # echo "extension-path=$PhalconExtPath" >> "$GITHUB_OUTPUT" - name: Creates build artifact with Phalcon extension From f22fc274ff713d58223a40c021f27d44691aae8d Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 13:47:23 -0600 Subject: [PATCH 16/42] removing local variable --- phalcon/Mvc/Model.zep | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/phalcon/Mvc/Model.zep b/phalcon/Mvc/Model.zep index ca11ac05c7..348db839ea 100644 --- a/phalcon/Mvc/Model.zep +++ b/phalcon/Mvc/Model.zep @@ -1182,15 +1182,13 @@ abstract class Model extends AbstractInjectionAware implements EntityInterface, */ public static function count(var parameters = null) -> int | { - var params, result; - - let params = parameters; + var result; /** * Removing `order by` for postgresql */ - if (isset(params["order"])) { - unset params["order"]; + if (isset(parameters["order"])) { + unset parameters["order"]; } let result = self::groupResult("COUNT", "rowcount", params); From 34e162087ff549656cc9f8468177179b85b08ea7 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 13:48:56 -0600 Subject: [PATCH 17/42] correcting variable name --- phalcon/Mvc/Model.zep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phalcon/Mvc/Model.zep b/phalcon/Mvc/Model.zep index 348db839ea..b48585a1a8 100644 --- a/phalcon/Mvc/Model.zep +++ b/phalcon/Mvc/Model.zep @@ -1191,7 +1191,7 @@ abstract class Model extends AbstractInjectionAware implements EntityInterface, unset parameters["order"]; } - let result = self::groupResult("COUNT", "rowcount", params); + let result = self::groupResult("COUNT", "rowcount", parameters); if typeof result === "string" { return (int) result; From f521a8f7ac1441e6c0e673367268f65784d49226 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 15:09:16 -0600 Subject: [PATCH 18/42] correcting links in readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fe9e00c063..69ddd3cc64 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ You can either download a binary package for the system of your choice or build ## Installation -For detailed installation instructions you can check our [installation](https://docs.phalcon.io/5.0/en/installation) page in the docs. +For detailed installation instructions you can check our [installation](https://docs.phalcon.io/5.0/installation) page in the docs. ## Generating API Documentation @@ -36,7 +36,7 @@ Steps: - Checkout the tag you would like to generate docs for. - Run `php tests/__config/generate-api-docs.php` - The files *.md files in nikos/api/ will contain the documentation -- For publishing to the Phalcon website this [repo](https://github.com/phalcon/docs/tree/5.0/en/api) is used. +- For publishing to the Phalcon website this [repo](https://github.com/phalcon/docs/tree/5.0/api) is used. ## Links From b6b0c8b5a143d73a2df405ff31d675a3128b9e9d Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 19:06:10 -0600 Subject: [PATCH 19/42] moved code to abstractadapter; set PDO stringify and emulate_prepares to true --- ext/phalcon/db/abstractdb.zep.c | 109 ----------------------- ext/phalcon/db/abstractdb.zep.h | 16 ---- phalcon/Db/AbstractDb.zep | 81 ----------------- phalcon/Db/Adapter/AbstractAdapter.zep | 70 ++++++++++++++- phalcon/Db/Adapter/Pdo/Mysql.zep | 28 +++--- tests/database/Mvc/Model/ToArrayCest.php | 38 ++++---- 6 files changed, 103 insertions(+), 239 deletions(-) delete mode 100644 ext/phalcon/db/abstractdb.zep.c delete mode 100644 ext/phalcon/db/abstractdb.zep.h delete mode 100644 phalcon/Db/AbstractDb.zep diff --git a/ext/phalcon/db/abstractdb.zep.c b/ext/phalcon/db/abstractdb.zep.c deleted file mode 100644 index 9700218abb..0000000000 --- a/ext/phalcon/db/abstractdb.zep.c +++ /dev/null @@ -1,109 +0,0 @@ - -#ifdef HAVE_CONFIG_H -#include "../../ext_config.h" -#endif - -#include -#include "../../php_ext.h" -#include "../../ext.h" - -#include -#include -#include - -#include "kernel/main.h" -#include "kernel/array.h" -#include "kernel/memory.h" -#include "ext/spl/spl_exceptions.h" -#include "kernel/exception.h" -#include "kernel/object.h" - - -/** - * This file is part of the Phalcon Framework. - * - * (c) Phalcon Team - * - * For the full copyright and license information, please view the LICENSE.txt - * file that was distributed with this source code. - */ -/** - * Phalcon\Db and its related classes provide a simple SQL database interface - * for Phalcon Framework. The Phalcon\Db is the basic class you use to connect - * your PHP application to an RDBMS. There is a different adapter class for each - * brand of RDBMS. - * - * This component is intended to lower level database operations. If you want to - * interact with databases using higher level of abstraction use - * Phalcon\Mvc\Model. - * - * Phalcon\Db\AbstractDb is an abstract class. You only can use it with a - * database adapter like Phalcon\Db\Adapter\Pdo - * - *```php - * use Phalcon\Db; - * use Phalcon\Db\Exception; - * use Phalcon\Db\Adapter\Pdo\Mysql as MysqlConnection; - * - * try { - * $connection = new MysqlConnection( - * [ - * "host" => "192.168.0.11", - * "username" => "sigma", - * "password" => "secret", - * "dbname" => "blog", - * "port" => "3306", - * ] - * ); - * - * $result = $connection->query( - * "SELECT * FROM robots LIMIT 5" - * ); - * - * $result->setFetchMode(Enum::FETCH_NUM); - * - * while ($robot = $result->fetch()) { - * print_r($robot); - * } - * } catch (Exception $e) { - * echo $e->getMessage(), PHP_EOL; - * } - * ``` - */ -ZEPHIR_INIT_CLASS(Phalcon_Db_AbstractDb) -{ - ZEPHIR_REGISTER_CLASS(Phalcon\\Db, AbstractDb, phalcon, db_abstractdb, phalcon_db_abstractdb_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); - - return SUCCESS; -} - -/** - * Enables/disables options in the Database component - */ -PHP_METHOD(Phalcon_Db_AbstractDb, setup) -{ - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *options_param = NULL, escapeIdentifiers, forceCasting; - zval options; - - ZVAL_UNDEF(&options); - ZVAL_UNDEF(&escapeIdentifiers); - ZVAL_UNDEF(&forceCasting); - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(options) - ZEND_PARSE_PARAMETERS_END(); - ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); - zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); - zephir_fetch_params(1, 1, 0, &options_param); - ZEPHIR_OBS_COPY_OR_DUP(&options, options_param); - zephir_memory_observe(&escapeIdentifiers); - if (zephir_array_isset_string_fetch(&escapeIdentifiers, &options, SL("escapeSqlIdentifiers"), 0)) { - ZEPHIR_GLOBAL(db).escape_identifiers = zend_is_true(&escapeIdentifiers); - } - zephir_memory_observe(&forceCasting); - if (zephir_array_isset_string_fetch(&forceCasting, &options, SL("forceCasting"), 0)) { - ZEPHIR_GLOBAL(db).force_casting = zend_is_true(&forceCasting); - } - ZEPHIR_MM_RESTORE(); -} - diff --git a/ext/phalcon/db/abstractdb.zep.h b/ext/phalcon/db/abstractdb.zep.h deleted file mode 100644 index 626b79d6cb..0000000000 --- a/ext/phalcon/db/abstractdb.zep.h +++ /dev/null @@ -1,16 +0,0 @@ - -extern zend_class_entry *phalcon_db_abstractdb_ce; - -ZEPHIR_INIT_CLASS(Phalcon_Db_AbstractDb); - -PHP_METHOD(Phalcon_Db_AbstractDb, setup); - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_phalcon_db_abstractdb_setup, 0, 1, IS_VOID, 0) - - ZEND_ARG_ARRAY_INFO(0, options, 0) -ZEND_END_ARG_INFO() - -ZEPHIR_INIT_FUNCS(phalcon_db_abstractdb_method_entry) { - PHP_ME(Phalcon_Db_AbstractDb, setup, arginfo_phalcon_db_abstractdb_setup, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) - PHP_FE_END -}; diff --git a/phalcon/Db/AbstractDb.zep b/phalcon/Db/AbstractDb.zep deleted file mode 100644 index 8bfa327e1f..0000000000 --- a/phalcon/Db/AbstractDb.zep +++ /dev/null @@ -1,81 +0,0 @@ - -/** - * This file is part of the Phalcon Framework. - * - * (c) Phalcon Team - * - * For the full copyright and license information, please view the LICENSE.txt - * file that was distributed with this source code. - */ - -namespace Phalcon\Db; - -use \PDO as Pdo; - -/** - * Phalcon\Db and its related classes provide a simple SQL database interface - * for Phalcon Framework. The Phalcon\Db is the basic class you use to connect - * your PHP application to an RDBMS. There is a different adapter class for each - * brand of RDBMS. - * - * This component is intended to lower level database operations. If you want to - * interact with databases using higher level of abstraction use - * Phalcon\Mvc\Model. - * - * Phalcon\Db\AbstractDb is an abstract class. You only can use it with a - * database adapter like Phalcon\Db\Adapter\Pdo - * - *```php - * use Phalcon\Db; - * use Phalcon\Db\Exception; - * use Phalcon\Db\Adapter\Pdo\Mysql as MysqlConnection; - * - * try { - * $connection = new MysqlConnection( - * [ - * "host" => "192.168.0.11", - * "username" => "sigma", - * "password" => "secret", - * "dbname" => "blog", - * "port" => "3306", - * ] - * ); - * - * $result = $connection->query( - * "SELECT * FROM robots LIMIT 5" - * ); - * - * $result->setFetchMode(Enum::FETCH_NUM); - * - * while ($robot = $result->fetch()) { - * print_r($robot); - * } - * } catch (Exception $e) { - * echo $e->getMessage(), PHP_EOL; - * } - * ``` - */ -abstract class AbstractDb -{ - /** - * Enables/disables options in the Database component - */ - public static function setup(array! options) -> void - { - var escapeIdentifiers, forceCasting; - - /** - * Enables/Disables globally the escaping of SQL identifiers - */ - if fetch escapeIdentifiers, options["escapeSqlIdentifiers"] { - globals_set("db.escape_identifiers", escapeIdentifiers); - } - - /** - * Force cast bound values in the PHP userland - */ - if fetch forceCasting, options["forceCasting"] { - globals_set("db.force_casting", forceCasting); - } - } -} diff --git a/phalcon/Db/Adapter/AbstractAdapter.zep b/phalcon/Db/Adapter/AbstractAdapter.zep index 4f4eec905c..14765376d7 100644 --- a/phalcon/Db/Adapter/AbstractAdapter.zep +++ b/phalcon/Db/Adapter/AbstractAdapter.zep @@ -23,7 +23,49 @@ use Phalcon\Events\EventsAwareInterface; use Phalcon\Events\ManagerInterface; /** - * Base class for Phalcon\Db\Adapter adapters + * Base class for Phalcon\Db\Adapter adapters. + * + * This class and its related classes provide a simple SQL database interface + * for Phalcon Framework. The Phalcon\Db is the basic class you use to connect + * your PHP application to an RDBMS. There is a different adapter class for each + * brand of RDBMS. + * + * This component is intended to lower level database operations. If you want to + * interact with databases using higher level of abstraction use + * Phalcon\Mvc\Model. + * + * Phalcon\Db\AbstractDb is an abstract class. You only can use it with a + * database adapter like Phalcon\Db\Adapter\Pdo + * + *```php + * use Phalcon\Db; + * use Phalcon\Db\Exception; + * use Phalcon\Db\Adapter\Pdo\Mysql as MysqlConnection; + * + * try { + * $connection = new MysqlConnection( + * [ + * "host" => "192.168.0.11", + * "username" => "sigma", + * "password" => "secret", + * "dbname" => "blog", + * "port" => "3306", + * ] + * ); + * + * $result = $connection->query( + * "SELECT * FROM co_invoices LIMIT 5" + * ); + * + * $result->setFetchMode(Enum::FETCH_NUM); + * + * while ($invoice = $result->fetch()) { + * print_r($invoice); + * } + * } catch (Exception $e) { + * echo $e->getMessage(), PHP_EOL; + * } + * ``` */ abstract class AbstractAdapter implements AdapterInterface, EventsAwareInterface { @@ -158,6 +200,10 @@ abstract class AbstractAdapter implements AdapterInterface, EventsAwareInterface } let this->descriptor = descriptor; + + if (isset (descriptor["options"]) && typeof descriptor["options"] === "array") { + self::setup(descriptor["options"]); + } } /** @@ -1101,6 +1147,28 @@ abstract class AbstractAdapter implements AdapterInterface, EventsAwareInterface return this; } + /** + * Enables/disables options in the Database component + */ + public static function setup(array! options) -> void + { + var escapeIdentifiers, forceCasting; + + /** + * Enables/Disables globally the escaping of SQL identifiers + */ + if fetch escapeIdentifiers, options["escapeSqlIdentifiers"] { + globals_set("db.escape_identifiers", escapeIdentifiers); + } + + /** + * Force cast bound values in the PHP userland + */ + if fetch forceCasting, options["forceCasting"] { + globals_set("db.force_casting", forceCasting); + } + } + /** * Returns a SQL modified with a LOCK IN SHARE MODE clause */ diff --git a/phalcon/Db/Adapter/Pdo/Mysql.zep b/phalcon/Db/Adapter/Pdo/Mysql.zep index 4a07dd5d4e..ff18bcd953 100644 --- a/phalcon/Db/Adapter/Pdo/Mysql.zep +++ b/phalcon/Db/Adapter/Pdo/Mysql.zep @@ -52,30 +52,30 @@ class Mysql extends PdoAdapter /** * Constructor for Phalcon\Db\Adapter\Pdo * - * @param array descriptor = [ - * 'host' => 'localhost', - * 'port' => '3306', - * 'dbname' => 'blog', - * 'username' => 'sigma' - * 'password' => 'secret' + * @param array $descriptor = [ + * 'host' => 'localhost', + * 'port' => '3306', + * 'dbname' => 'blog', + * 'username' => 'sigma' + * 'password' => 'secret' * 'dialectClass' => null, - * 'options' => [], - * 'dsn' => null, - * 'charset' => 'utf8mb4' + * 'options' => [], + * 'dsn' => null, + * 'charset' => 'utf8mb4', * ] */ public function __construct(array! descriptor) { /** - * Returning numbers as numbers and not strings. If the user already - * set this option in the descriptor["options"], we do not have to set - * anything + * Keeping `ATTR_EMULATE_PREPARES` set to `true` for performance + * reasons. If numbers need to be returned and not strings (default) + * then the user needs to set such options in the connection */ if (!isset(descriptor["options"][\PDO::ATTR_EMULATE_PREPARES])) { - let descriptor["options"][\PDO::ATTR_EMULATE_PREPARES] = false; + let descriptor["options"][\PDO::ATTR_EMULATE_PREPARES] = true; } if (!isset(descriptor["options"][\PDO::ATTR_STRINGIFY_FETCHES])) { - let descriptor["options"][\PDO::ATTR_STRINGIFY_FETCHES] = false; + let descriptor["options"][\PDO::ATTR_STRINGIFY_FETCHES] = true; } parent::__construct(descriptor); diff --git a/tests/database/Mvc/Model/ToArrayCest.php b/tests/database/Mvc/Model/ToArrayCest.php index ab65eac398..5be1a891fc 100644 --- a/tests/database/Mvc/Model/ToArrayCest.php +++ b/tests/database/Mvc/Model/ToArrayCest.php @@ -15,18 +15,17 @@ use DatabaseTester; use PDO; +use Phalcon\Db\Adapter\AbstractAdapter; +use Phalcon\Db\Adapter\PdoFactory; use Phalcon\Mvc\Model\Manager; use Phalcon\Tests\Fixtures\Migrations\InvoicesMigration; -use Phalcon\Tests\Fixtures\Migrations\SettersMigration; -use Phalcon\Tests\Fixtures\Migrations\SourcesMigration; use Phalcon\Tests\Fixtures\models\InvoicesGetters; -use Phalcon\Tests\Fixtures\models\SourcesGetters; use Phalcon\Tests\Fixtures\Traits\DiTrait; use Phalcon\Tests\Models\Invoices; use Phalcon\Tests\Models\InvoicesMap; -use Phalcon\Tests\Models\Sources; use function date; +use function getOptionsMysql; use function uniqid; class ToArrayCest @@ -216,12 +215,15 @@ public function mvcModelToArrayFindCastOnHydrateForceCasting(DatabaseTester $I) $migration->insert(4, 1, 0, $title, 111.26, $date); $migration->insert(5, 2, 1, $title, 222.19, $date); - Invoices::setup( - [ - 'forceCasting' => true, - 'castOnHydrate' => true, - ] - ); + $options = getOptionsMysql(); + $options['persistent'] = true; + $options['options'] = [ + PDO::ATTR_EMULATE_PREPARES => false, + PDO::ATTR_STRINGIFY_FETCHES => false, + ]; + + $db = (new PdoFactory())->newInstance('mysql', $options); + $this->container->set('db', $db); $invoices = Invoices::findFirst(); @@ -309,19 +311,19 @@ public function mvcModelToArrayExecuteColumnNotInColumnMap(DatabaseTester $I) $expected = [ [ - 'id' => 4, - 'cst_id' => 1, - 'status_flag' => 0, + 'id' => '4', + 'cst_id' => '1', + 'status_flag' => '0', 'title' => $title, - 'total' => 111.26, + 'total' => '111.26', 'created_at' => $date, ], [ - 'id' => 5, - 'cst_id' => 2, - 'status_flag' => 1, + 'id' => '5', + 'cst_id' => '2', + 'status_flag' => '1', 'title' => $title, - 'total' => 222.19, + 'total' => '222.19', 'created_at' => $date, ], ]; From 92f1fd7edc27a9caef0090095a0c188b1ae54971 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Tue, 26 Dec 2023 19:34:18 -0600 Subject: [PATCH 20/42] refreshing ext --- build/phalcon/phalcon.zep.c | 340309 ++++++++-------- build/phalcon/phalcon.zep.h | 2953 +- build/phalcon/php_phalcon.h | 4 +- ext/config.m4 | 1 - ext/config.w32 | 2 +- ext/phalcon.c | 2 - ext/phalcon.h | 1 - ext/phalcon/db/adapter/abstractadapter.zep.c | 322 +- ext/phalcon/db/adapter/abstractadapter.zep.h | 7 + ext/phalcon/db/adapter/pdo/mysql.zep.c | 26 +- 10 files changed, 162567 insertions(+), 181060 deletions(-) diff --git a/build/phalcon/phalcon.zep.c b/build/phalcon/phalcon.zep.c index a0f5a30cb9..456616de05 100644 --- a/build/phalcon/phalcon.zep.c +++ b/build/phalcon/phalcon.zep.c @@ -1919,11 +1919,6 @@ zend_string* i_self; #define PH_COPY 1024 #define PH_CTOR 4096 -/* Deprecated */ -#ifndef zend_uint - #define zend_uint uint32_t -#endif - #ifndef ZEND_ACC_FINAL_CLASS #define ZEND_ACC_FINAL_CLASS ZEND_ACC_FINAL #endif @@ -2073,7 +2068,6 @@ zend_string* i_self; #define RETURN_MM_ON_FAILURE(what) \ do { \ if (what == FAILURE) { \ - ZEPHIR_MM_RESTORE(); \ return; \ } \ } while (0) @@ -2164,7 +2158,7 @@ static int zephir_fetch_parameters(int num_args, int required_args, int optional zval _null; \ ZVAL_NULL(&_null); \ ZVAL_COPY(return_value, &_null); \ - zephir_ptr_dtor(&_null); \ + zval_ptr_dtor(&_null); \ } else { \ ZVAL_COPY(return_value, _constant_ptr); \ } \ @@ -2206,12 +2200,6 @@ static void zephir_module_init(); #define ZEPHIR_KERNEL_MEMORY_H -#if defined(__x86_64__) || defined(__LP64__) || defined(_LP64) || defined(_WIN64) - #define ZEPHIR_ENABLE_64BITS 1 -#endif - -#define ZEPHIR_NUM_PREALLOCATED_FRAMES 25 - /** Memory frame */ typedef struct _zephir_memory_entry { size_t pointer; @@ -2242,21 +2230,14 @@ typedef struct _zephir_method_globals { static void ZEPHIR_FASTCALL zephir_memory_grow_stack(zephir_method_globals *g, const char *func); static void ZEPHIR_FASTCALL zephir_memory_restore_stack(zephir_method_globals *g, const char *func); -#define ZEPHIR_MM_GROW() \ - ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); \ - zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); - #define ZEPHIR_MM_RESTORE() \ zephir_memory_restore_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); \ pefree(ZEPHIR_METHOD_GLOBALS_PTR, 0); \ ZEPHIR_METHOD_GLOBALS_PTR = NULL; static void zephir_initialize_memory(zend_zephir_globals_def *zephir_globals_ptr); -static int zephir_cleanup_fcache(void *pDest, int num_args, va_list args, zend_hash_key *hash_key); static void zephir_deinitialize_memory(); -#define zephir_ptr_dtor(x) zval_ptr_dtor(x) - static void ZEPHIR_FASTCALL zephir_do_memory_observe(zval *var, const zephir_method_globals *g); #define zephir_memory_observe(var) zephir_do_memory_observe(var, ZEPHIR_METHOD_GLOBALS_PTR); @@ -2267,14 +2248,11 @@ static void zephir_create_symbol_table(zephir_method_globals *g); #define ZEPHIR_CREATE_SYMBOL_TABLE() zephir_create_symbol_table(ZEPHIR_METHOD_GLOBALS_PTR); static int zephir_set_symbol(zval *key_name, zval *value); -static int zephir_set_symbol_str(char *key_name, unsigned int key_length, zval *value); #define ZEPHIR_INIT_VAR(z) \ zephir_memory_observe(z); \ ZVAL_NULL(z); -#define ZEPHIR_INIT_ZVAL_NREF(z) ZVAL_UNDEF(&z); - #define ZEPHIR_INIT_NVAR(z) \ do { \ if (Z_TYPE_P(z) == IS_UNDEF) { \ @@ -2289,14 +2267,11 @@ static int zephir_set_symbol_str(char *key_name, unsigned int key_length, zval * ZVAL_NULL(z); \ } while (0) -/* only removes the value body of the zval */ -#define ZEPHIR_INIT_LNVAR(z) ZEPHIR_INIT_NVAR(&z) - #define ZEPHIR_CPY_WRT(d, v) \ Z_TRY_ADDREF_P(v); \ if (Z_TYPE_P(d) > IS_UNDEF) { \ if (Z_REFCOUNTED_P(d) && Z_REFCOUNT_P(d) > 0) { \ - zephir_ptr_dtor(d); \ + zval_ptr_dtor(d); \ } \ } else { \ zephir_memory_observe(d); \ @@ -2306,24 +2281,16 @@ static int zephir_set_symbol_str(char *key_name, unsigned int key_length, zval * #define ZEPHIR_CPY_WRT_CTOR(d, v) \ if (d) { \ if (Z_REFCOUNTED_P(d) && Z_REFCOUNT_P(d) > 0) { \ - zephir_ptr_dtor(d); \ + zval_ptr_dtor(d); \ } \ - } else { \ - /*TODO: as above */ \ } \ ZVAL_DUP(d, v); -#define ZEPHIR_OBS_VAR(z) \ - zephir_memory_observe(z) - -#define ZEPHIR_OBS_VAR_ONCE(z) \ +#define ZEPHIR_OBS_COPY_OR_DUP(z, v) \ if (Z_TYPE_P(z) == IS_UNDEF) { \ zephir_memory_observe(z); \ - } - -#define ZEPHIR_OBS_COPY_OR_DUP(z, v) \ - ZEPHIR_OBS_VAR_ONCE(z); \ - ZVAL_COPY(z, v); + } \ + ZVAL_COPY(z, v); #define ZEPHIR_HASH_COPY(z, v) \ if (Z_TYPE_P(z) == IS_ARRAY && Z_TYPE_P(v) == IS_ARRAY) { \ @@ -2335,7 +2302,7 @@ static int zephir_set_symbol_str(char *key_name, unsigned int key_length, zval * if (Z_REFCOUNTED_P(z) && Z_REFCOUNT_P(z) > 1) { \ Z_DELREF_P(z); \ } else {\ - zephir_ptr_dtor(z); \ + zval_ptr_dtor(z); \ ZVAL_NULL(z); \ } \ } else { \ @@ -2350,7 +2317,7 @@ static int zephir_set_symbol_str(char *key_name, unsigned int key_length, zval * zval *tmp_ = (ppzv); \ if (tmp_ != NULL) { \ if (Z_TYPE_P(tmp_) != IS_UNDEF) { \ - zephir_ptr_dtor(tmp_); \ + zval_ptr_dtor(tmp_); \ } else { \ zephir_memory_observe(tmp_); \ } \ @@ -2358,13 +2325,10 @@ static int zephir_set_symbol_str(char *key_name, unsigned int key_length, zval * } \ } while (0) -#define ZEPHIR_SEPARATE(z) SEPARATE_ZVAL(z) - #define ZEPHIR_SEPARATE_PARAM(z) \ do { \ zval *orig_ptr = z; \ - ZEPHIR_SEPARATE(orig_ptr); \ - /*zephir_memory_observe(orig_ptr);*/ \ + SEPARATE_ZVAL(orig_ptr); \ } while (0) #endif @@ -2566,8 +2530,6 @@ static int zephir_method_exists_ex(zval *object, const char *method_name, unsign -#ifndef ZEPHIR_KERNEL_ARRAY_H -#define ZEPHIR_KERNEL_ARRAY_H #define ZEPHIR_MAX_ARRAY_LEVELS 16 @@ -2623,8 +2585,6 @@ static int zephir_fast_in_array(zval *needle, zval *haystack); zend_hash_next_index_insert(Z_ARRVAL_P(arr), value); \ } while (0) -#endif /* ZEPHIR_KERNEL_ARRAY_H */ - #ifndef ZEPHIR_KERNEL_STRING_H @@ -2845,19 +2805,11 @@ typedef enum _zephir_call_type { ZEPHIR_LAST_CALL_STATUS = zephir_return_call_class_method(return_value, Z_TYPE_P(object) == IS_OBJECT ? Z_OBJCE_P(object) : NULL, zephir_fcall_method, object, method, strlen(method), cache, cache_slot, ZEPHIR_CALL_NUM_PARAMS(params_), ZEPHIR_PASS_CALL_PARAMS(params_)); \ } while (0) -#if PHP_VERSION_ID >= 80000 #define ZEPHIR_RETURN_CALL_STATIC(method, cache, cache_slot, ...) \ do { \ zval *params_[] = {ZEPHIR_FETCH_VA_ARGS __VA_ARGS__}; \ ZEPHIR_LAST_CALL_STATUS = zephir_return_call_class_method(return_value, (getThis() ? Z_OBJCE_P(getThis()) : NULL), zephir_fcall_static, getThis(), method, strlen(method), cache, cache_slot, ZEPHIR_CALL_NUM_PARAMS(params_), ZEPHIR_PASS_CALL_PARAMS(params_)); \ } while (0) -#else -#define ZEPHIR_RETURN_CALL_STATIC(method, cache, cache_slot, ...) \ - do { \ - zval *params_[] = {ZEPHIR_FETCH_VA_ARGS __VA_ARGS__}; \ - ZEPHIR_LAST_CALL_STATUS = zephir_return_call_class_method(return_value, NULL, zephir_fcall_static, NULL, method, strlen(method), cache, cache_slot, ZEPHIR_CALL_NUM_PARAMS(params_), ZEPHIR_PASS_CALL_PARAMS(params_)); \ - } while (0) -#endif #define ZEPHIR_RETURN_CALL_PARENT(class_entry, this_ptr, method, cache, cache_slot, ...) \ do { \ @@ -2865,51 +2817,25 @@ typedef enum _zephir_call_type { ZEPHIR_LAST_CALL_STATUS = zephir_return_call_class_method(return_value, class_entry, zephir_fcall_parent, this_ptr, method, strlen(method), cache, cache_slot, ZEPHIR_CALL_NUM_PARAMS(params_), ZEPHIR_PASS_CALL_PARAMS(params_)); \ } while (0) -#if PHP_VERSION_ID >= 80000 #define ZEPHIR_CALL_SELF(return_value_ptr, method, cache, cache_slot, ...) \ do { \ zval *params_[] = {ZEPHIR_FETCH_VA_ARGS __VA_ARGS__}; \ ZEPHIR_OBSERVE_OR_NULLIFY_PPZV(return_value_ptr); \ ZEPHIR_LAST_CALL_STATUS = zephir_call_class_method_aparams(return_value_ptr, (getThis() ? Z_OBJCE_P(getThis()) : NULL), zephir_fcall_self, getThis(), method, strlen(method), cache, cache_slot, ZEPHIR_CALL_NUM_PARAMS(params_), ZEPHIR_PASS_CALL_PARAMS(params_)); \ } while (0) -#else -#define ZEPHIR_CALL_SELF(return_value_ptr, method, cache, cache_slot, ...) \ - do { \ - zval *params_[] = {ZEPHIR_FETCH_VA_ARGS __VA_ARGS__}; \ - ZEPHIR_OBSERVE_OR_NULLIFY_PPZV(return_value_ptr); \ - ZEPHIR_LAST_CALL_STATUS = zephir_call_class_method_aparams(return_value_ptr, NULL, zephir_fcall_self, NULL, method, strlen(method), cache, cache_slot, ZEPHIR_CALL_NUM_PARAMS(params_), ZEPHIR_PASS_CALL_PARAMS(params_)); \ - } while (0) -#endif -#if PHP_VERSION_ID >= 80000 #define ZEPHIR_RETURN_CALL_SELF(method, cache, cache_slot, ...) \ do { \ zval *params_[] = {ZEPHIR_FETCH_VA_ARGS __VA_ARGS__}; \ ZEPHIR_LAST_CALL_STATUS = zephir_return_call_class_method(return_value, (getThis() ? Z_OBJCE_P(getThis()) : NULL), zephir_fcall_self, getThis(), method, strlen(method), cache, cache_slot, ZEPHIR_CALL_NUM_PARAMS(params_), ZEPHIR_PASS_CALL_PARAMS(params_)); \ } while (0) -#else -#define ZEPHIR_RETURN_CALL_SELF(method, cache, cache_slot, ...) \ - do { \ - zval *params_[] = {ZEPHIR_FETCH_VA_ARGS __VA_ARGS__}; \ - ZEPHIR_LAST_CALL_STATUS = zephir_return_call_class_method(return_value, NULL, zephir_fcall_self, NULL, method, strlen(method), cache, cache_slot, ZEPHIR_CALL_NUM_PARAMS(params_), ZEPHIR_PASS_CALL_PARAMS(params_)); \ - } while (0) -#endif -#if PHP_VERSION_ID >= 80000 #define ZEPHIR_CALL_STATIC(return_value_ptr, method, cache, cache_slot, ...) \ do { \ zval *params_[] = {ZEPHIR_FETCH_VA_ARGS __VA_ARGS__}; \ ZEPHIR_OBSERVE_OR_NULLIFY_PPZV(return_value_ptr); \ ZEPHIR_LAST_CALL_STATUS = zephir_call_class_method_aparams(return_value_ptr, (getThis() ? Z_OBJCE_P(getThis()) : NULL), zephir_fcall_static, getThis(), method, strlen(method), cache, cache_slot, ZEPHIR_CALL_NUM_PARAMS(params_), ZEPHIR_PASS_CALL_PARAMS(params_)); \ } while (0) -#else -#define ZEPHIR_CALL_STATIC(return_value_ptr, method, cache, cache_slot, ...) \ - do { \ - zval *params_[] = {ZEPHIR_FETCH_VA_ARGS __VA_ARGS__}; \ - ZEPHIR_OBSERVE_OR_NULLIFY_PPZV(return_value_ptr); \ - ZEPHIR_LAST_CALL_STATUS = zephir_call_class_method_aparams(return_value_ptr, NULL, zephir_fcall_static, NULL, method, strlen(method), cache, cache_slot, ZEPHIR_CALL_NUM_PARAMS(params_), ZEPHIR_PASS_CALL_PARAMS(params_)); \ - } while (0) -#endif #define ZEPHIR_CALL_CE_STATIC(return_value_ptr, class_entry, method, cache, cache_slot, ...) \ do { \ @@ -3345,7 +3271,11 @@ long zephir_safe_mod_double_zval(double op1, zval *op2); #define zephir_get_boolval(z) (Z_TYPE_P(z) == IS_TRUE ? 1 : (Z_TYPE_P(z) == IS_FALSE ? 0 : zephir_get_boolval_ex(z))) #define zephir_get_charval(z) (Z_TYPE_P(z) == IS_LONG ? Z_LVAL_P(z) : zephir_get_charval_ex(z)) +#if PHP_VERSION_ID >= 80300 +#define zephir_add_function(result, left, right) add_function(result, left, right) +#else #define zephir_add_function(result, left, right) fast_add_function(result, left, right) +#endif #define zephir_sub_function(result, left, right) sub_function(result, left, right) #define zephir_pow_function(result, op1, op2) pow_function(result, op1, op2) #define zephir_increment(var) increment_function(var) @@ -3354,7 +3284,7 @@ long zephir_safe_mod_double_zval(double op1, zval *op2); #define ZEPHIR_ADD_ASSIGN(z, v) \ { \ zval tmp; \ - ZEPHIR_SEPARATE(z); \ + SEPARATE_ZVAL(z); \ add_function(&tmp, z, v); \ if (Z_TYPE(tmp) == IS_LONG) { \ Z_LVAL_P(z) = Z_LVAL(tmp); \ @@ -3368,7 +3298,7 @@ long zephir_safe_mod_double_zval(double op1, zval *op2); #define ZEPHIR_SUB_ASSIGN(z, v) \ { \ zval tmp; \ - ZEPHIR_SEPARATE(z); \ + SEPARATE_ZVAL(z); \ sub_function(&tmp, z, v); \ if (Z_TYPE(tmp) == IS_LONG) { \ Z_LVAL_P(z) = Z_LVAL(tmp); \ @@ -3382,7 +3312,7 @@ long zephir_safe_mod_double_zval(double op1, zval *op2); #define ZEPHIR_MUL_ASSIGN(z, v) \ { \ zval tmp; \ - ZEPHIR_SEPARATE(z); \ + SEPARATE_ZVAL(z); \ mul_function(&tmp, z, v); \ if (Z_TYPE(tmp) == IS_LONG) { \ Z_LVAL_P(z) = Z_LVAL(tmp); \ @@ -3932,26 +3862,17 @@ static void zephir_fast_count(zval *result, zval *value) } if (Z_TYPE_P(value) == IS_OBJECT) { - zval retval; if (Z_OBJ_HT_P(value)->count_elements) { ZVAL_LONG(result, 1); -#if PHP_VERSION_ID >= 80000 if (SUCCESS == Z_OBJ_HT(*value)->count_elements(Z_OBJ_P(value), &Z_LVAL_P(result))) { -#else - if (SUCCESS == Z_OBJ_HT(*value)->count_elements(value, &Z_LVAL_P(result))) { -#endif return; } } if (instanceof_function(Z_OBJCE_P(value), zend_ce_countable)) { -#if PHP_VERSION_ID >= 80000 zend_call_method_with_0_params(Z_OBJ_P(value), NULL, NULL, "count", &retval); -#else - zend_call_method_with_0_params(value, NULL, NULL, "count", &retval); -#endif if (Z_TYPE(retval) != IS_UNDEF) { convert_to_long_ex(&retval); ZVAL_LONG(result, Z_LVAL(retval)); @@ -3981,24 +3902,15 @@ static int zephir_fast_count_ev(zval *value) } if (Z_TYPE_P(value) == IS_OBJECT) { - zval retval; if (Z_OBJ_HT_P(value)->count_elements) { -#if PHP_VERSION_ID >= 80000 Z_OBJ_HT(*value)->count_elements(Z_OBJ_P(value), &count); -#else - Z_OBJ_HT(*value)->count_elements(value, &count); -#endif return (int) count > 0; } if (instanceof_function(Z_OBJCE_P(value), zend_ce_countable)) { -#if PHP_VERSION_ID >= 80000 zend_call_method_with_0_params(Z_OBJ_P(value), NULL, NULL, "count", &retval); -#else - zend_call_method_with_0_params(value, NULL, NULL, "count", &retval); -#endif if (Z_TYPE(retval) != IS_UNDEF) { convert_to_long_ex(&retval); count = Z_LVAL(retval); @@ -4030,20 +3942,12 @@ static int zephir_fast_count_int(zval *value) zval retval; if (Z_OBJ_HT_P(value)->count_elements) { -#if PHP_VERSION_ID >= 80000 Z_OBJ_HT(*value)->count_elements(Z_OBJ_P(value), &count); -#else - Z_OBJ_HT(*value)->count_elements(value, &count); -#endif return (int) count; } if (instanceof_function(Z_OBJCE_P(value), zend_ce_countable)) { -#if PHP_VERSION_ID >= 80000 zend_call_method_with_0_params(Z_OBJ_P(value), NULL, NULL, "count", &retval); -#else - zend_call_method_with_0_params(value, NULL, NULL, "count", &retval); -#endif if (Z_TYPE(retval) != IS_UNDEF) { convert_to_long_ex(&retval); count = Z_LVAL(retval); @@ -4065,7 +3969,7 @@ static int zephir_fast_count_int(zval *value) static int zephir_function_exists(const zval *function_name) { - if (zend_hash_str_exists(CG(function_table), Z_STRVAL_P(function_name), Z_STRLEN_P(function_name)) != NULL) { + if (zend_hash_str_exists(CG(function_table), Z_STRVAL_P(function_name), Z_STRLEN_P(function_name))) { return SUCCESS; } @@ -4173,7 +4077,6 @@ zend_class_entry* zephir_get_internal_ce(const char *class_name, unsigned int cl /* Declare constants */ static int zephir_declare_class_constant(zend_class_entry *ce, const char *name, size_t name_length, zval *value) { -#if PHP_VERSION_ID >= 80000 zend_string *key; if (ce->type == ZEND_INTERNAL_CLASS) { @@ -4189,24 +4092,6 @@ static int zephir_declare_class_constant(zend_class_entry *ce, const char *name, } return SUCCESS; -#else - int ret; - zend_string *key; - - if (ce->type == ZEND_INTERNAL_CLASS) { - key = zend_string_init_interned(name, name_length, 1); - } else { - key = zend_string_init(name, name_length, 0); - } - - ret = zend_declare_class_constant_ex(ce, key, value, ZEND_ACC_PUBLIC, NULL); - - if (ce->type != ZEND_INTERNAL_CLASS) { - zend_string_release(key); - } - - return ret; -#endif } static int zephir_declare_class_constant_null(zend_class_entry *ce, const char *name, size_t name_length) @@ -4377,144 +4262,144 @@ static void zephir_module_init() static zend_always_inline zend_execute_data* find_symbol_table(zend_execute_data* ex) { - while (ex && (!ex->func || !ZEND_USER_CODE(ex->func->common.type))) { - ex = ex->prev_execute_data; - } + while (ex && (!ex->func || !ZEND_USER_CODE(ex->func->common.type))) { + ex = ex->prev_execute_data; + } - return ex; + return ex; } static void ZEPHIR_FASTCALL zephir_memory_grow_stack(zephir_method_globals *g, const char *func) { - if (g->active_memory == NULL) { - zephir_memory_entry *active_memory; +if (g->active_memory == NULL) { + zephir_memory_entry *active_memory; - active_memory = (zephir_memory_entry *) pecalloc(1, sizeof(zephir_memory_entry), 0); + active_memory = (zephir_memory_entry *) pecalloc(1, sizeof(zephir_memory_entry), 0); - active_memory->addresses = pecalloc(24, sizeof(zval*), 0); - active_memory->capacity = 24; + active_memory->addresses = pecalloc(24, sizeof(zval*), 0); + active_memory->capacity = 24; - g->active_memory = active_memory; - } + g->active_memory = active_memory; +} - assert(g->active_memory != NULL); - assert(g->active_memory->pointer == 0); +assert(g->active_memory != NULL); +assert(g->active_memory->pointer == 0); #ifndef ZEPHIR_RELEASE - g->active_memory->func = func; +g->active_memory->func = func; #endif } static void ZEPHIR_FASTCALL zephir_memory_restore_stack(zephir_method_globals *g, const char *func) { - size_t i; - zephir_memory_entry *active_memory; - zephir_symbol_table *active_symbol_table; - zval *ptr; +size_t i; +zephir_memory_entry *active_memory; +zephir_symbol_table *active_symbol_table; +zval *ptr; #ifndef ZEPHIR_RELEASE - int show_backtrace = 0; +int show_backtrace = 0; #endif #ifndef ZEPHIR_RELEASE - if (UNEXPECTED(g->active_memory == NULL)) { - fprintf(stderr, "WARNING: calling zephir_memory_restore_stack() without an active memory frame!\n"); - fprintf(stderr, "The frame was created by %s\n", g->active_memory->func); - fprintf(stderr, "Calling function: %s\n", func); - zephir_print_backtrace(); - return; - } +if (UNEXPECTED(g->active_memory == NULL)) { + fprintf(stderr, "WARNING: calling zephir_memory_restore_stack() without an active memory frame!\n"); + fprintf(stderr, "The frame was created by %s\n", g->active_memory->func); + fprintf(stderr, "Calling function: %s\n", func); + zephir_print_backtrace(); + return; +} - if (UNEXPECTED(g->active_memory->func != func)) { - fprintf(stderr, "Trying to free someone else's memory frame!\n"); - fprintf(stderr, "The frame was created by %s\n", g->active_memory->func); - fprintf(stderr, "Calling function: %s\n", func); - zephir_print_backtrace(); - return; - } +if (UNEXPECTED(g->active_memory->func != func)) { + fprintf(stderr, "Trying to free someone else's memory frame!\n"); + fprintf(stderr, "The frame was created by %s\n", g->active_memory->func); + fprintf(stderr, "Calling function: %s\n", func); + zephir_print_backtrace(); + return; +} #endif - active_memory = g->active_memory; - assert(active_memory != NULL); +active_memory = g->active_memory; +assert(active_memory != NULL); - if (EXPECTED(!CG(unclean_shutdown))) { - /* Clean active symbol table */ - if (g->active_symbol_table) { - active_symbol_table = g->active_symbol_table; - while (active_symbol_table && active_symbol_table->scope == active_memory) { - zend_execute_data *ex = find_symbol_table(EG(current_execute_data)); +if (EXPECTED(!CG(unclean_shutdown))) { + /* Clean active symbol table */ + if (g->active_symbol_table) { + active_symbol_table = g->active_symbol_table; + while (active_symbol_table && active_symbol_table->scope == active_memory) { + zend_execute_data *ex = find_symbol_table(EG(current_execute_data)); #ifndef ZEPHIR_RELEASE - if (UNEXPECTED(!ex)) { - fprintf(stderr, "ERROR: unable to find a symbol table"); - zephir_print_backtrace(); - return; - } + if (UNEXPECTED(!ex)) { + fprintf(stderr, "ERROR: unable to find a symbol table"); + zephir_print_backtrace(); + return; + } #endif - zend_hash_destroy(ex->symbol_table); - efree(ex->symbol_table); - ex->symbol_table = active_symbol_table->symbol_table; - zend_attach_symbol_table(ex); - zend_rebuild_symbol_table(); + zend_hash_destroy(ex->symbol_table); + efree(ex->symbol_table); + ex->symbol_table = active_symbol_table->symbol_table; + zend_attach_symbol_table(ex); + zend_rebuild_symbol_table(); - g->active_symbol_table = active_symbol_table->prev; - efree(active_symbol_table); - active_symbol_table = g->active_symbol_table; - } + g->active_symbol_table = active_symbol_table->prev; + efree(active_symbol_table); + active_symbol_table = g->active_symbol_table; } + } #ifndef ZEPHIR_RELEASE - for (i = 0; i < active_memory->pointer; ++i) { - if (active_memory->addresses[i] != NULL) { - zval *var = active_memory->addresses[i]; - if (Z_TYPE_P(var) > IS_CALLABLE) { - fprintf(stderr, "%s: observed variable #%d (%p) has invalid type %u [%s]\n", __func__, (int)i, var, Z_TYPE_P(var), active_memory->func); - show_backtrace = 1; - } + for (i = 0; i < active_memory->pointer; ++i) { + if (active_memory->addresses[i] != NULL) { + zval *var = active_memory->addresses[i]; + if (Z_TYPE_P(var) > IS_CALLABLE) { + fprintf(stderr, "%s: observed variable #%d (%p) has invalid type %u [%s]\n", __func__, (int)i, var, Z_TYPE_P(var), active_memory->func); + show_backtrace = 1; + } - if (!Z_REFCOUNTED_P(var)) { - continue; - } + if (!Z_REFCOUNTED_P(var)) { + continue; + } - if (Z_REFCOUNT_P(var) == 0) { - fprintf(stderr, "%s: observed variable #%d (%p) has 0 references, type=%d [%s]\n", __func__, (int)i, var, Z_TYPE_P(var), active_memory->func); - show_backtrace = 1; - } - else if (Z_REFCOUNT_P(var) >= 1000000) { - fprintf(stderr, "%s: observed variable #%d (%p) has too many references (%u), type=%d [%s]\n", __func__, (int)i, var, Z_REFCOUNT_P(var), Z_TYPE_P(var), active_memory->func); - show_backtrace = 1; - } + if (Z_REFCOUNT_P(var) == 0) { + fprintf(stderr, "%s: observed variable #%d (%p) has 0 references, type=%d [%s]\n", __func__, (int)i, var, Z_TYPE_P(var), active_memory->func); + show_backtrace = 1; + } + else if (Z_REFCOUNT_P(var) >= 1000000) { + fprintf(stderr, "%s: observed variable #%d (%p) has too many references (%u), type=%d [%s]\n", __func__, (int)i, var, Z_REFCOUNT_P(var), Z_TYPE_P(var), active_memory->func); + show_backtrace = 1; } } + } #endif - /* Traverse all zvals allocated, reduce the reference counting or free them */ - for (i = 0; i < active_memory->pointer; ++i) { - ptr = active_memory->addresses[i]; - if (EXPECTED(ptr != NULL)) { - if (!Z_REFCOUNTED_P(ptr)) continue; - if (Z_REFCOUNT_P(ptr) == 1) { - zval_ptr_dtor(ptr); - } else { - Z_DELREF_P(ptr); - } + /* Traverse all zvals allocated, reduce the reference counting or free them */ + for (i = 0; i < active_memory->pointer; ++i) { + ptr = active_memory->addresses[i]; + if (EXPECTED(ptr != NULL)) { + if (!Z_REFCOUNTED_P(ptr)) continue; + if (Z_REFCOUNT_P(ptr) == 1) { + zval_ptr_dtor(ptr); + } else { + Z_DELREF_P(ptr); } } } +} #ifndef ZEPHIR_RELEASE - active_memory->func = NULL; +active_memory->func = NULL; #endif - if (active_memory->addresses != NULL) { - pefree(active_memory->addresses, 0); - } +if (active_memory->addresses != NULL) { + pefree(active_memory->addresses, 0); +} - pefree(g->active_memory, 0); - g->active_memory = NULL; +pefree(g->active_memory, 0); +g->active_memory = NULL; #ifndef ZEPHIR_RELEASE - if (show_backtrace == 1) { - zephir_print_backtrace(); - } +if (show_backtrace == 1) { + zephir_print_backtrace(); +} #endif } @@ -4598,44 +4483,6 @@ static int zephir_set_symbol(zval *key_name, zval *value) return SUCCESS; } -static int zephir_set_symbol_str(char *key_name, unsigned int key_length, zval *value) -{ - zend_array *symbol_table = zend_rebuild_symbol_table(); - - if (!symbol_table) { - php_error_docref(NULL, E_WARNING, "Cannot find a valid symbol_table"); - return FAILURE; - } - - Z_TRY_ADDREF_P(value); - zend_hash_str_update(symbol_table, key_name, key_length, value); - - return SUCCESS; -} - -static int zephir_cleanup_fcache(void *pDest, int num_args, va_list args, zend_hash_key *hash_key) -{ - zephir_fcall_cache_entry **entry = (zephir_fcall_cache_entry**) pDest; - zend_class_entry *scope; - size_t len = ZSTR_LEN(hash_key->key); - - assert(hash_key->key != NULL); - assert(len > 2 * sizeof(zend_class_entry**)); - - memcpy(&scope, &ZSTR_VAL(hash_key->key)[(len -1) - 2 * sizeof(zend_class_entry**)], sizeof(zend_class_entry*)); - - - if ((*entry)->type != ZEND_INTERNAL_FUNCTION || (scope && scope->type != ZEND_INTERNAL_CLASS)) { - return ZEND_HASH_APPLY_REMOVE; - } - - if (scope && scope->type == ZEND_INTERNAL_CLASS && scope->info.internal.module->type != MODULE_PERSISTENT) { - return ZEND_HASH_APPLY_REMOVE; - } - - return ZEND_HASH_APPLY_KEEP; -} - static void ZEPHIR_FASTCALL zephir_do_memory_observe(zval *var, const zephir_method_globals *g) { zephir_memory_entry *frame = g->active_memory; @@ -4693,7 +4540,8 @@ static void zephir_throw_exception_debug(zval *object, const char *file, uint32_ ZVAL_UNDEF(&curline); - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); if (Z_TYPE_P(object) != IS_OBJECT) { ZVAL_COPY_VALUE(&object_copy, object); @@ -4709,14 +4557,8 @@ static void zephir_throw_exception_debug(zval *object, const char *file, uint32_ zephir_check_call_status(); if (ZEPHIR_IS_LONG(&curline, 0)) { default_exception_ce = zend_exception_get_default(); - -#if PHP_VERSION_ID >= 80000 zend_update_property_string(default_exception_ce, Z_OBJ_P(object), SL("file"), file); zend_update_property_long(default_exception_ce, Z_OBJ_P(object), SL("line"), line); -#else - zend_update_property_string(default_exception_ce, object, SL("file"), file); - zend_update_property_long(default_exception_ce, object, SL("line"), line); -#endif } } @@ -4740,13 +4582,8 @@ static void zephir_throw_exception_string_debug(zend_class_entry *ce, const char if (line > 0) { default_exception_ce = zend_exception_get_default(); -#if PHP_VERSION_ID >= 80000 zend_update_property_string(default_exception_ce, Z_OBJ(object), "file", sizeof("file")-1, file); zend_update_property_long(default_exception_ce, Z_OBJ(object), "line", sizeof("line")-1, line); -#else - zend_update_property_string(default_exception_ce, &object, "file", sizeof("file")-1, file); - zend_update_property_long(default_exception_ce, &object, "line", sizeof("line")-1, line); -#endif } if (ZEPHIR_LAST_CALL_STATUS != FAILURE) { @@ -5159,11 +4996,7 @@ static int zephir_clone(zval *destination, zval *obj) status = FAILURE; } else { if (!EG(exception)) { -#if PHP_VERSION_ID >= 80000 ZVAL_OBJ(destination, clone_call(Z_OBJ_P(obj))); -#else - ZVAL_OBJ(destination, clone_call(obj)); -#endif if (EG(exception)) { zval_ptr_dtor(destination); } @@ -5181,19 +5014,11 @@ static int zephir_isset_property(zval *object, const char *property_name, unsign return 1; } -#if PHP_VERSION_ID >= 80000 return zend_hash_str_exists( Z_OBJ_HT_P(object)->get_properties(Z_OBJ_P(object)), property_name, property_length ); -#else - return zend_hash_str_exists( - Z_OBJ_HT_P(object)->get_properties(object), - property_name, - property_length - ); -#endif } return 0; @@ -5206,19 +5031,11 @@ static int zephir_isset_property_zval(zval *object, const zval *property) if (EXPECTED(zend_hash_str_exists(&Z_OBJCE_P(object)->properties_info, Z_STRVAL_P(property), Z_STRLEN_P(property)))) { return 1; } else { -#if PHP_VERSION_ID >= 80000 return zend_hash_str_exists( Z_OBJ_HT_P(object)->get_properties(Z_OBJ_P(object)), Z_STRVAL_P(property), Z_STRLEN_P(property) ); -#else - return zend_hash_str_exists( - Z_OBJ_HT_P(object)->get_properties(object), - Z_STRVAL_P(property), - Z_STRLEN_P(property) - ); -#endif } } } @@ -5326,15 +5143,9 @@ static int zephir_read_property( } ZVAL_STRINGL(&property, property_name, property_length); -#if PHP_VERSION_ID >= 80000 res = Z_OBJ_HT_P(object)->read_property(Z_OBJ_P(object), Z_STR(property), flags ? BP_VAR_IS : BP_VAR_R, NULL, &tmp); -#else - res = Z_OBJ_HT_P(object)->read_property(object, &property, - flags ? BP_VAR_IS : BP_VAR_R, - NULL, &tmp); -#endif if ((flags & PH_READONLY) == PH_READONLY) { ZVAL_COPY_VALUE(result, res); @@ -5459,11 +5270,7 @@ static int zephir_update_property_zval( /* write_property will add 1 to refcount, so no Z_TRY_ADDREF_P(value) is necessary */ -#if PHP_VERSION_ID >= 80000 Z_OBJ_HT_P(object)->write_property(Z_OBJ_P(object), Z_STR(property), &sep_value, 0); -#else - Z_OBJ_HT_P(object)->write_property(object, &property, &sep_value, 0); -#endif zval_ptr_dtor(&property); @@ -5549,7 +5356,7 @@ static int zephir_update_property_array(zval *object, const char *property, uint if (separated) { zephir_update_property_zval(object, property, property_length, &tmp); - zephir_ptr_dtor(&tmp); + zval_ptr_dtor(&tmp); } return SUCCESS; @@ -5623,7 +5430,7 @@ static int zephir_update_property_array_append(zval *object, char *property, uns if (separated) { zephir_update_property_zval(object, property, property_length, &tmp); - zephir_ptr_dtor(&tmp); + zval_ptr_dtor(&tmp); } return SUCCESS; @@ -5682,7 +5489,7 @@ static int zephir_update_property_array_multi(zval *object, const char *property if (separated) { zephir_update_property_zval(object, property, property_length, &tmp_arr); - zephir_ptr_dtor(&tmp_arr); + zval_ptr_dtor(&tmp_arr); } } @@ -5705,11 +5512,7 @@ static int zephir_unset_property(zval* object, const char* name) /* Use caller's scope */ zephir_set_scope(Z_OBJCE_P(object)); -#if PHP_VERSION_ID >= 80000 Z_OBJ_HT_P(object)->unset_property(Z_OBJ_P(object), Z_STR(member), 0); -#else - Z_OBJ_HT_P(object)->unset_property(object, &member, 0); -#endif /* Restore original scope */ zephir_set_scope(scope); @@ -6038,11 +5841,7 @@ static int zephir_create_instance(zval *return_value, const zval *class_name) fci.retval = 0; fci.param_count = 0; fci.params = 0; -#if PHP_VERSION_ID < 80000 - fci.no_separation = 1; -#else - fci.named_params = NULL; -#endif + fci.named_params = NULL; ZVAL_NULL(&fci.function_name); @@ -6097,11 +5896,8 @@ static int zephir_create_instance_params(zval *return_value, const zval *class_n fci.retval = 0; fci.param_count = 0; fci.params = 0; -#if PHP_VERSION_ID < 80000 - fci.no_separation = 1; -#else - fci.named_params = NULL; -#endif + fci.named_params = NULL; + ZVAL_NULL(&fci.function_name); fcc.object = obj; @@ -7513,11 +7309,8 @@ static void zephir_fast_join(zval *result, zval *glue, zval *pieces) zend_error(E_WARNING, "Invalid arguments supplied for join()"); return; } -#if PHP_VERSION_ID < 80000 - php_implode(Z_STR_P(glue), pieces, result); -#else + php_implode(Z_STR_P(glue), Z_ARRVAL_P(pieces), result); -#endif } static void zephir_fast_join_str(zval *return_value, char *glue, unsigned int glue_length, zval *pieces) @@ -8590,21 +8383,12 @@ static void populate_fcic(zend_fcall_info_cache* fcic, zephir_call_type type, ze } fcic->called_scope = called_scope; - -#if PHP_VERSION_ID >= 80000 calling_scope = zend_get_called_scope(EG(current_execute_data)); -#else - calling_scope = zend_get_executed_scope(); -#endif - fcic->object = this_ptr ? Z_OBJ_P(this_ptr) : NULL; switch (type) { case zephir_fcall_parent: - -#if PHP_VERSION_ID >= 80000 if (ce && Z_TYPE_P(func) == IS_STRING) { fcic->function_handler = zend_hash_find_ptr(&ce->parent->function_table, Z_STR_P(func)); - fcic->calling_scope = ce->parent; } else if (EXPECTED(calling_scope && calling_scope->parent)) { if (Z_TYPE_P(func) == IS_STRING) { @@ -8614,7 +8398,7 @@ static void populate_fcic(zend_fcall_info_cache* fcic, zephir_call_type type, ze } else { return; } -#endif + if (UNEXPECTED(!calling_scope || !calling_scope->parent)) { return; } @@ -8623,7 +8407,6 @@ static void populate_fcic(zend_fcall_info_cache* fcic, zephir_call_type type, ze break; case zephir_fcall_static: -#if PHP_VERSION_ID >= 80000 if (ce && Z_TYPE_P(func) == IS_STRING) { fcic->function_handler = zend_hash_find_ptr(&ce->function_table, Z_STR_P(func)); fcic->calling_scope = ce; @@ -8631,17 +8414,10 @@ static void populate_fcic(zend_fcall_info_cache* fcic, zephir_call_type type, ze fcic->function_handler = zend_hash_find_ptr(&calling_scope->function_table, Z_STR_P(func)); fcic->calling_scope = called_scope; } -#else - fcic->calling_scope = called_scope; - if (UNEXPECTED(!calling_scope)) { - return; - } -#endif break; case zephir_fcall_self: -#if PHP_VERSION_ID >= 80000 if (ce && Z_TYPE_P(func) == IS_STRING) { fcic->function_handler = zend_hash_find_ptr(&ce->function_table, Z_STR_P(func)); fcic->calling_scope = ce; @@ -8652,13 +8428,9 @@ static void populate_fcic(zend_fcall_info_cache* fcic, zephir_call_type type, ze //fcic->called_scope = zend_get_called_scope(EG(current_execute_data)); fcic->calling_scope = calling_scope; } -#else - fcic->calling_scope = calling_scope; -#endif break; case zephir_fcall_ce: -#if PHP_VERSION_ID >= 80000 if (ce && Z_TYPE_P(func) == IS_STRING) { fcic->function_handler = zend_hash_find_ptr(&ce->function_table, Z_STR_P(func)); @@ -8667,7 +8439,6 @@ static void populate_fcic(zend_fcall_info_cache* fcic, zephir_call_type type, ze fcic->function_handler = zend_hash_find_ptr(&calling_scope->function_table, Z_STR_P(func)); fcic->calling_scope = calling_scope; } -#endif // TODO: Check for PHP 7.4 and PHP 8.0, as it rewrite from above fcic->calling_scope = ce; fcic->called_scope = ce; @@ -8676,11 +8447,7 @@ static void populate_fcic(zend_fcall_info_cache* fcic, zephir_call_type type, ze case zephir_fcall_function: case zephir_fcall_method: if (Z_TYPE_P(func) == IS_OBJECT) { -#if PHP_VERSION_ID >= 80000 if (Z_OBJ_HANDLER_P(func, get_closure) && Z_OBJ_HANDLER_P(func, get_closure)(Z_OBJ_P(func), &fcic->calling_scope, &fcic->function_handler, &fcic->object, 0) == SUCCESS) { -#else - if (Z_OBJ_HANDLER_P(func, get_closure) && Z_OBJ_HANDLER_P(func, get_closure)(func, &fcic->calling_scope, &fcic->function_handler, &fcic->object) == SUCCESS) { -#endif fcic->called_scope = fcic->calling_scope; break; } @@ -8688,11 +8455,9 @@ static void populate_fcic(zend_fcall_info_cache* fcic, zephir_call_type type, ze return; } -#if PHP_VERSION_ID >= 80000 if (ce && Z_TYPE_P(func) == IS_STRING) { fcic->function_handler = zend_hash_find_ptr(&ce->function_table, Z_STR_P(func)); } -#endif fcic->calling_scope = this_ptr ? Z_OBJCE_P(this_ptr) : NULL; fcic->called_scope = fcic->calling_scope; break; @@ -8759,12 +8524,7 @@ static int zephir_call_user_function( ZVAL_COPY_VALUE(&fci.function_name, function_name); fci.retval = retval_ptr ? retval_ptr : &local_retval_ptr; fci.param_count = param_count; - -#if PHP_VERSION_ID < 80000 - fci.no_separation = 1; -#else fci.named_params = NULL; -#endif if (cache_entry && *cache_entry) { /* We have a cache record, initialize scope */ @@ -8778,22 +8538,18 @@ static int zephir_call_user_function( /* The caller is interested in caching OR we have the call cache enabled */ resolve_callable(&callable, type, (object_pp && type != zephir_fcall_ce ? Z_OBJCE_P(object_pp) : obj_ce), object_pp, function_name); -#if PHP_VERSION_ID >= 80000 - char *is_callable_error = NULL; - zend_execute_data *frame = EG(current_execute_data); + char *is_callable_error = NULL; + zend_execute_data *frame = EG(current_execute_data); if (obj_ce || !zend_is_callable_at_frame(&callable, fci.object, frame, 0, &fcic, &is_callable_error)) { - if (is_callable_error) { - zend_error(E_WARNING, "%s", is_callable_error); - efree(is_callable_error); + if (is_callable_error) { + zend_error(E_WARNING, "%s", is_callable_error); + efree(is_callable_error); - return FAILURE; - } + return FAILURE; + } populate_fcic(&fcic, type, obj_ce, object_pp, function_name, called_scope); } -#else - zend_is_callable_ex(&callable, fci.object, IS_CALLABLE_CHECK_SILENT, NULL, &fcic, NULL); -#endif } #ifdef _MSC_VER @@ -8808,12 +8564,9 @@ static int zephir_call_user_function( } fci.params = p; - -#if PHP_VERSION_ID >= 80000 if (!fcic.function_handler) { ZVAL_COPY_VALUE(&fci.function_name, &callable); } -#endif status = zend_call_function(&fci, &fcic); @@ -9002,29 +8755,6 @@ static int zephir_call_user_func_array_noex(zval *return_value, zval *handler, z return FAILURE; } -#if PHP_VERSION_ID < 80000 - zend_fcall_info_init(handler, 0, &fci, &fci_cache, NULL, &is_callable_error); - - if (is_callable_error) { - zend_error(E_WARNING, "%s", is_callable_error); - efree(is_callable_error); - } else { - status = SUCCESS; - } - - if (status == SUCCESS) { - zend_fcall_info_args(&fci, params); - - fci.retval = return_value; - zend_call_function(&fci, &fci_cache); - - zend_fcall_info_args_clear(&fci, 1); - } - - if (EG(exception)) { - status = SUCCESS; - } -#else zend_execute_data *frame = EG(current_execute_data); if (!zend_is_callable_at_frame(handler, NULL, frame, 0, &fci_cache, &is_callable_error)) { if (is_callable_error) { @@ -9046,7 +8776,6 @@ static int zephir_call_user_func_array_noex(zval *return_value, zval *handler, z zend_fcall_info_args(&fci, params); status = zend_call_function(&fci, &fci_cache); zend_fcall_info_args_clear(&fci, 1); -#endif return status; } @@ -9064,11 +8793,7 @@ static void zephir_eval_php(zval *str, zval *retval_ptr, char *context) #if PHP_VERSION_ID >= 80200 new_op_array = zend_compile_string(Z_STR_P(str), context, ZEND_COMPILE_POSITION_AFTER_OPEN_TAG); #else -#if PHP_VERSION_ID >= 80000 new_op_array = zend_compile_string(Z_STR_P(str), context); -#else - new_op_array = zend_compile_string(str, context); -#endif #endif CG(compiler_options) = original_compiler_options; @@ -13832,22 +13557,15 @@ static PHP_METHOD(phalcon_0__closure, __invoke) zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *element, element_sub, _0; - zval *this_ptr = getThis(); ZVAL_UNDEF(&element_sub); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(element) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, &element); - - ZEPHIR_CALL_FUNCTION(&_0, "mb_strtolower", NULL, 10, element); zephir_check_call_status(); zephir_ucfirst(return_value, &_0); @@ -13875,25 +13593,18 @@ static PHP_METHOD(phalcon_10__closure, __invoke) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *action, action_sub, _0; - zval *this_ptr = getThis(); ZVAL_UNDEF(&action_sub); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(action) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, &action); - - ZEPHIR_INIT_VAR(&_0); ZVAL_STRING(&_0, "-"); - zephir_uncamelize(return_value, action, &_0 ); + zephir_uncamelize(return_value, action, &_0); RETURN_MM(); } @@ -13917,27 +13628,19 @@ ZEPHIR_INIT_CLASS(phalcon_11__closure) static PHP_METHOD(phalcon_11__closure, __invoke) { zval *number, number_sub, *message, message_sub, *file, file_sub, *line, line_sub, __$true; - zval *this_ptr = getThis(); ZVAL_UNDEF(&number_sub); ZVAL_UNDEF(&message_sub); ZVAL_UNDEF(&file_sub); ZVAL_UNDEF(&line_sub); ZVAL_BOOL(&__$true, 1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(4, 4) Z_PARAM_ZVAL(number) Z_PARAM_ZVAL(message) Z_PARAM_ZVAL(file) Z_PARAM_ZVAL(line) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(4, 0, &number, &message, &file, &line); - - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$true); } @@ -13961,7 +13664,6 @@ ZEPHIR_INIT_CLASS(phalcon_12__closure) static PHP_METHOD(phalcon_12__closure, __invoke) { zval *number, number_sub, *message, message_sub, *file, file_sub, *line, line_sub, *context, context_sub, __$true; - zval *this_ptr = getThis(); ZVAL_UNDEF(&number_sub); ZVAL_UNDEF(&message_sub); @@ -13969,8 +13671,6 @@ static PHP_METHOD(phalcon_12__closure, __invoke) ZVAL_UNDEF(&line_sub); ZVAL_UNDEF(&context_sub); ZVAL_BOOL(&__$true, 1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(5, 5) Z_PARAM_ZVAL(number) Z_PARAM_ZVAL(message) @@ -13978,12 +13678,7 @@ static PHP_METHOD(phalcon_12__closure, __invoke) Z_PARAM_ZVAL(line) Z_PARAM_ZVAL(context) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(5, 0, &number, &message, &file, &line, &context); - - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$true); } @@ -14008,20 +13703,12 @@ static PHP_METHOD(phalcon_13__closure, __invoke) { zend_bool _0; zval *element, element_sub; - zval *this_ptr = getThis(); ZVAL_UNDEF(&element_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(element) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(1, 0, &element); - - _0 = Z_TYPE_P(element) == IS_LONG; if (!(_0)) { _0 = Z_TYPE_P(element) == IS_STRING; @@ -14050,20 +13737,12 @@ static PHP_METHOD(phalcon_14__closure, __invoke) { zend_bool _0; zval *element, element_sub; - zval *this_ptr = getThis(); ZVAL_UNDEF(&element_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(element) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(1, 0, &element); - - _0 = Z_TYPE_P(element) == IS_LONG; if (!(_0)) { _0 = Z_TYPE_P(element) == IS_STRING; @@ -14091,27 +13770,19 @@ ZEPHIR_INIT_CLASS(phalcon_1__closure) static PHP_METHOD(phalcon_1__closure, __invoke) { zval *number, number_sub, *message, message_sub, *file, file_sub, *line, line_sub, __$true; - zval *this_ptr = getThis(); ZVAL_UNDEF(&number_sub); ZVAL_UNDEF(&message_sub); ZVAL_UNDEF(&file_sub); ZVAL_UNDEF(&line_sub); ZVAL_BOOL(&__$true, 1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(4, 4) Z_PARAM_ZVAL(number) Z_PARAM_ZVAL(message) Z_PARAM_ZVAL(file) Z_PARAM_ZVAL(line) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(4, 0, &number, &message, &file, &line); - - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$true); } @@ -14135,7 +13806,6 @@ ZEPHIR_INIT_CLASS(phalcon_2__closure) static PHP_METHOD(phalcon_2__closure, __invoke) { zval *number, number_sub, *message, message_sub, *file, file_sub, *line, line_sub, *context, context_sub, __$true; - zval *this_ptr = getThis(); ZVAL_UNDEF(&number_sub); ZVAL_UNDEF(&message_sub); @@ -14143,8 +13813,6 @@ static PHP_METHOD(phalcon_2__closure, __invoke) ZVAL_UNDEF(&line_sub); ZVAL_UNDEF(&context_sub); ZVAL_BOOL(&__$true, 1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(5, 5) Z_PARAM_ZVAL(number) Z_PARAM_ZVAL(message) @@ -14152,12 +13820,7 @@ static PHP_METHOD(phalcon_2__closure, __invoke) Z_PARAM_ZVAL(line) Z_PARAM_ZVAL(context) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(5, 0, &number, &message, &file, &line, &context); - - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$true); } @@ -14181,27 +13844,19 @@ ZEPHIR_INIT_CLASS(phalcon_3__closure) static PHP_METHOD(phalcon_3__closure, __invoke) { zval *number, number_sub, *message, message_sub, *file, file_sub, *line, line_sub, __$true; - zval *this_ptr = getThis(); ZVAL_UNDEF(&number_sub); ZVAL_UNDEF(&message_sub); ZVAL_UNDEF(&file_sub); ZVAL_UNDEF(&line_sub); ZVAL_BOOL(&__$true, 1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(4, 4) Z_PARAM_ZVAL(number) Z_PARAM_ZVAL(message) Z_PARAM_ZVAL(file) Z_PARAM_ZVAL(line) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(4, 0, &number, &message, &file, &line); - - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$true); } @@ -14225,7 +13880,6 @@ ZEPHIR_INIT_CLASS(phalcon_4__closure) static PHP_METHOD(phalcon_4__closure, __invoke) { zval *number, number_sub, *message, message_sub, *file, file_sub, *line, line_sub, *context, context_sub, __$true; - zval *this_ptr = getThis(); ZVAL_UNDEF(&number_sub); ZVAL_UNDEF(&message_sub); @@ -14233,8 +13887,6 @@ static PHP_METHOD(phalcon_4__closure, __invoke) ZVAL_UNDEF(&line_sub); ZVAL_UNDEF(&context_sub); ZVAL_BOOL(&__$true, 1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(5, 5) Z_PARAM_ZVAL(number) Z_PARAM_ZVAL(message) @@ -14242,12 +13894,7 @@ static PHP_METHOD(phalcon_4__closure, __invoke) Z_PARAM_ZVAL(line) Z_PARAM_ZVAL(context) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(5, 0, &number, &message, &file, &line, &context); - - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$true); } @@ -14271,27 +13918,19 @@ ZEPHIR_INIT_CLASS(phalcon_5__closure) static PHP_METHOD(phalcon_5__closure, __invoke) { zval *number, number_sub, *message, message_sub, *file, file_sub, *line, line_sub, __$true; - zval *this_ptr = getThis(); ZVAL_UNDEF(&number_sub); ZVAL_UNDEF(&message_sub); ZVAL_UNDEF(&file_sub); ZVAL_UNDEF(&line_sub); ZVAL_BOOL(&__$true, 1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(4, 4) Z_PARAM_ZVAL(number) Z_PARAM_ZVAL(message) Z_PARAM_ZVAL(file) Z_PARAM_ZVAL(line) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(4, 0, &number, &message, &file, &line); - - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$true); } @@ -14315,7 +13954,6 @@ ZEPHIR_INIT_CLASS(phalcon_6__closure) static PHP_METHOD(phalcon_6__closure, __invoke) { zval *number, number_sub, *message, message_sub, *file, file_sub, *line, line_sub, *context, context_sub, __$true; - zval *this_ptr = getThis(); ZVAL_UNDEF(&number_sub); ZVAL_UNDEF(&message_sub); @@ -14323,8 +13961,6 @@ static PHP_METHOD(phalcon_6__closure, __invoke) ZVAL_UNDEF(&line_sub); ZVAL_UNDEF(&context_sub); ZVAL_BOOL(&__$true, 1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(5, 5) Z_PARAM_ZVAL(number) Z_PARAM_ZVAL(message) @@ -14332,12 +13968,7 @@ static PHP_METHOD(phalcon_6__closure, __invoke) Z_PARAM_ZVAL(line) Z_PARAM_ZVAL(context) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(5, 0, &number, &message, &file, &line, &context); - - ZEPHIR_GLOBAL(warning).enable = zend_is_true(&__$true); } @@ -14361,20 +13992,12 @@ ZEPHIR_INIT_CLASS(phalcon_7__closure) static PHP_METHOD(phalcon_7__closure, __invoke) { zval *file, file_sub; - zval *this_ptr = getThis(); ZVAL_UNDEF(&file_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(file) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(1, 0, &file); - - RETURN_BOOL(1); } @@ -14400,28 +14023,21 @@ static PHP_METHOD(phalcon_8__closure, __invoke) zend_bool _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *element, element_sub, _0, _2; - zval *this_ptr = getThis(); ZVAL_UNDEF(&element_sub); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(element) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, &element); - - - ZEPHIR_OBS_VAR(&_0); + zephir_memory_observe(&_0); zephir_array_fetch_long(&_0, element, 0, PH_NOISY, "phalcon/Filter/Validation.zep", 81); _1 = Z_TYPE_P(&_0) != IS_ARRAY; if (!(_1)) { - ZEPHIR_OBS_VAR(&_2); + zephir_memory_observe(&_2); zephir_array_fetch_long(&_2, element, 1, PH_NOISY, "phalcon/Filter/Validation.zep", 81); _1 = !(zephir_instance_of_ev(&_2, phalcon_filter_validation_abstractcombinedfieldsvalidator_ce)); } @@ -14450,28 +14066,21 @@ static PHP_METHOD(phalcon_9__closure, __invoke) zend_bool _1; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *element, element_sub, _0, _2; - zval *this_ptr = getThis(); ZVAL_UNDEF(&element_sub); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(element) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, &element); - - - ZEPHIR_OBS_VAR(&_0); + zephir_memory_observe(&_0); zephir_array_fetch_long(&_0, element, 0, PH_NOISY, "phalcon/Filter/Validation.zep", 88); _1 = Z_TYPE_P(&_0) == IS_ARRAY; if (_1) { - ZEPHIR_OBS_VAR(&_2); + zephir_memory_observe(&_2); zephir_array_fetch_long(&_2, element, 1, PH_NOISY, "phalcon/Filter/Validation.zep", 88); _1 = zephir_instance_of_ev(&_2, phalcon_filter_validation_abstractcombinedfieldsvalidator_ce); } @@ -14531,23 +14140,16 @@ static PHP_METHOD(Phalcon_Tag, appendTitle) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *title, title_sub, _0, _1$$3; - zval *this_ptr = getThis(); ZVAL_UNDEF(&title_sub); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(title) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, &title); - - zephir_read_static_property_ce(&_0, phalcon_tag_ce, SL("documentAppendTitle"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); @@ -14568,22 +14170,15 @@ static PHP_METHOD(Phalcon_Tag, checkField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "checkbox"); ZEPHIR_RETURN_CALL_SELF("inputfieldchecked", &_0, 0, &_1, parameters); @@ -14597,22 +14192,15 @@ static PHP_METHOD(Phalcon_Tag, colorField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "color"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -14626,22 +14214,15 @@ static PHP_METHOD(Phalcon_Tag, dateField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "date"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -14655,22 +14236,15 @@ static PHP_METHOD(Phalcon_Tag, dateTimeField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "datetime"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -14684,22 +14258,15 @@ static PHP_METHOD(Phalcon_Tag, dateTimeLocalField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "datetime-local"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -14713,20 +14280,15 @@ static PHP_METHOD(Phalcon_Tag, displayTo) zend_long ZEPHIR_LAST_CALL_STATUS; zval *id_param = NULL, *value, value_sub; zval id; - zval *this_ptr = getThis(); ZVAL_UNDEF(&id); ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) Z_PARAM_STR(id) Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 2, 0, &id_param, &value); if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); @@ -14737,8 +14299,6 @@ static PHP_METHOD(Phalcon_Tag, displayTo) } else { ZEPHIR_INIT_VAR(&id); } - - ZEPHIR_CALL_SELF(NULL, "setdefault", NULL, 0, &id, value); zephir_check_call_status(); ZEPHIR_MM_RESTORE(); @@ -14750,22 +14310,15 @@ static PHP_METHOD(Phalcon_Tag, emailField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "email"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -14775,9 +14328,6 @@ static PHP_METHOD(Phalcon_Tag, emailField) static PHP_METHOD(Phalcon_Tag, endForm) { - zval *this_ptr = getThis(); - - RETURN_STRING(""); } @@ -14788,22 +14338,15 @@ static PHP_METHOD(Phalcon_Tag, fileField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "file"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -14816,7 +14359,6 @@ static PHP_METHOD(Phalcon_Tag, formLegacy) zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *parameters = NULL, parameters_sub, params, paramsAction, action, code, _3, _0$$6, _1$$7, _2$$8; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(¶ms); @@ -14827,19 +14369,13 @@ static PHP_METHOD(Phalcon_Tag, formLegacy) ZVAL_UNDEF(&_0$$6); ZVAL_UNDEF(&_1$$7); ZVAL_UNDEF(&_2$$8); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); ZEPHIR_SEPARATE_PARAM(parameters); - - if (Z_TYPE_P(parameters) != IS_ARRAY) { ZEPHIR_INIT_VAR(¶ms); zephir_create_array(¶ms, 1, 0); @@ -14847,7 +14383,7 @@ static PHP_METHOD(Phalcon_Tag, formLegacy) } else { ZEPHIR_CPY_WRT(¶ms, parameters); } - ZEPHIR_OBS_VAR(¶msAction); + zephir_memory_observe(¶msAction); if (!(zephir_array_isset_long_fetch(¶msAction, ¶ms, 0, 0))) { ZEPHIR_OBS_NVAR(¶msAction); zephir_array_isset_string_fetch(¶msAction, ¶ms, SL("action"), 0); @@ -14889,7 +14425,6 @@ static PHP_METHOD(Phalcon_Tag, friendlyTitle) zend_bool lowercase; zval *text_param = NULL, *separator_param = NULL, *lowercase_param = NULL, *replace = NULL, replace_sub, __$null, ex, _2, _0$$3, _1$$3, _3$$4, _4$$4; zval text, separator; - zval *this_ptr = getThis(); ZVAL_UNDEF(&text); ZVAL_UNDEF(&separator); @@ -14901,7 +14436,6 @@ static PHP_METHOD(Phalcon_Tag, friendlyTitle) ZVAL_UNDEF(&_1$$3); ZVAL_UNDEF(&_3$$4); ZVAL_UNDEF(&_4$$4); -#if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 4) Z_PARAM_STR(text) @@ -14910,10 +14444,8 @@ static PHP_METHOD(Phalcon_Tag, friendlyTitle) Z_PARAM_BOOL(lowercase) Z_PARAM_ZVAL_OR_NULL(replace) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 3, &text_param, &separator_param, &lowercase_param, &replace); zephir_get_strval(&text, text_param); if (!separator_param) { @@ -14925,15 +14457,11 @@ static PHP_METHOD(Phalcon_Tag, friendlyTitle) if (!lowercase_param) { lowercase = 1; } else { - lowercase = zephir_get_boolval(lowercase_param); - } + } if (!replace) { replace = &replace_sub; replace = &__$null; } - - - /* try_start_1: */ ZEPHIR_INIT_VAR(&_0$$3); @@ -14965,7 +14493,7 @@ static PHP_METHOD(Phalcon_Tag, friendlyTitle) object_init_ex(&_3$$4, phalcon_tag_exception_ce); ZEPHIR_CALL_METHOD(&_4$$4, &ex, "getmessage", NULL, 0); zephir_check_call_status(); - ZEPHIR_CALL_METHOD(NULL, &_3$$4, "__construct", NULL, 32, &_4$$4); + ZEPHIR_CALL_METHOD(NULL, &_3$$4, "__construct", NULL, 33, &_4$$4); zephir_check_call_status(); zephir_throw_exception_debug(&_3$$4, "phalcon/Tag.zep", 308); ZEPHIR_MM_RESTORE(); @@ -14978,7 +14506,6 @@ static PHP_METHOD(Phalcon_Tag, getDocType) { zval _0, _1$$3, _2$$4, _3$$4, _4$$5, _5$$5, _6$$6, _7$$6, _8$$7, _9$$7, _10$$8, _11$$8, _12$$9, _13$$9, _14$$10, _15$$10, _16$$11, _17$$11, _18$$12; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$3); @@ -14999,9 +14526,8 @@ static PHP_METHOD(Phalcon_Tag, getDocType) ZVAL_UNDEF(&_16$$11); ZVAL_UNDEF(&_17$$11); ZVAL_UNDEF(&_18$$12); - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_read_static_property_ce(&_0, phalcon_tag_ce, SL("documentType"), PH_NOISY_CC | PH_READONLY); do { @@ -15092,24 +14618,17 @@ static PHP_METHOD(Phalcon_Tag, getEscaper) zend_long ZEPHIR_LAST_CALL_STATUS; zval *params_param = NULL, autoescape; zval params; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶ms); ZVAL_UNDEF(&autoescape); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ARRAY(params) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶ms_param); ZEPHIR_OBS_COPY_OR_DUP(¶ms, params_param); - - - ZEPHIR_OBS_VAR(&autoescape); + zephir_memory_observe(&autoescape); if (!(zephir_array_isset_string_fetch(&autoescape, ¶ms, SL("escape"), 0))) { ZEPHIR_OBS_NVAR(&autoescape); zephir_read_static_property_ce(&autoescape, phalcon_tag_ce, SL("autoEscape"), PH_NOISY_CC); @@ -15127,18 +14646,15 @@ static PHP_METHOD(Phalcon_Tag, getDI) zval di; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; - zval *this_ptr = getThis(); ZVAL_UNDEF(&di); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); - - ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&di); + zephir_memory_observe(&di); zephir_read_static_property_ce(&di, phalcon_tag_ce, SL("container"), PH_NOISY_CC); if (Z_TYPE_P(&di) == IS_NULL) { - ZEPHIR_CALL_CE_STATIC(&di, phalcon_di_di_ce, "getdefault", &_0, 0); + ZEPHIR_CALL_CE_STATIC(&di, phalcon_di_di_ce, "getdefault", NULL, 0); zephir_check_call_status(); } RETURN_CCTOR(&di); @@ -15149,17 +14665,15 @@ static PHP_METHOD(Phalcon_Tag, getEscaperService) zval escaper, container, _0$$3, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); ZVAL_UNDEF(&escaper); ZVAL_UNDEF(&container); ZVAL_UNDEF(&_0$$3); ZVAL_UNDEF(&_1$$3); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); - - ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&escaper); + zephir_memory_observe(&escaper); zephir_read_static_property_ce(&escaper, phalcon_tag_ce, SL("escaperService"), PH_NOISY_CC); if (Z_TYPE_P(&escaper) != IS_OBJECT) { ZEPHIR_CALL_SELF(&container, "getdi", NULL, 0); @@ -15186,7 +14700,6 @@ static PHP_METHOD(Phalcon_Tag, getTitle) zend_long ZEPHIR_LAST_CALL_STATUS; zval *prepend_param = NULL, *append_param = NULL, __$true, items, output, title, documentTitle, documentAppendTitle, documentPrependTitle, documentTitleSeparator, escaper, _0, _2, _3, _4$$3, _6$$3, _5$$4, tmp$$5, *_7$$5, _8$$5, _9$$6, _11$$7, _13$$9, _15$$9, _14$$10, *_16$$11, _17$$11, _18$$12, _20$$13; zend_bool prepend, append; - zval *this_ptr = getThis(); ZVAL_BOOL(&__$true, 1); ZVAL_UNDEF(&items); @@ -15214,30 +14727,22 @@ static PHP_METHOD(Phalcon_Tag, getTitle) ZVAL_UNDEF(&_18$$12); ZVAL_UNDEF(&_20$$13); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL Z_PARAM_BOOL(prepend) Z_PARAM_BOOL(append) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 0, 2, &prepend_param, &append_param); if (!prepend_param) { prepend = 1; } else { - prepend = zephir_get_boolval(prepend_param); - } + } if (!append_param) { append = 1; } else { - append = zephir_get_boolval(append_param); - } - - + } ZEPHIR_INIT_VAR(&_1); zephir_create_array(&_1, 1, 0); zephir_array_update_string(&_1, SL("escape"), &__$true, PH_COPY | PH_SEPARATE); @@ -15261,11 +14766,11 @@ static PHP_METHOD(Phalcon_Tag, getTitle) array_init(&_5$$4); zephir_update_static_property_ce(phalcon_tag_ce, ZEND_STRL("documentPrependTitle"), &_5$$4); } - ZEPHIR_OBS_VAR(&_6$$3); + zephir_memory_observe(&_6$$3); zephir_read_static_property_ce(&_6$$3, phalcon_tag_ce, SL("documentPrependTitle"), PH_NOISY_CC); ZEPHIR_CPY_WRT(&documentPrependTitle, &_6$$3); if (!(ZEPHIR_IS_EMPTY(&documentPrependTitle))) { - ZEPHIR_CALL_FUNCTION(&tmp$$5, "array_reverse", NULL, 295, &documentPrependTitle); + ZEPHIR_CALL_FUNCTION(&tmp$$5, "array_reverse", NULL, 297, &documentPrependTitle); zephir_check_call_status(); zephir_is_iterable(&tmp$$5, 0, "phalcon/Tag.zep", 443); if (Z_TYPE_P(&tmp$$5) == IS_ARRAY) { @@ -15308,7 +14813,7 @@ static PHP_METHOD(Phalcon_Tag, getTitle) array_init(&_14$$10); zephir_update_static_property_ce(phalcon_tag_ce, ZEND_STRL("documentAppendTitle"), &_14$$10); } - ZEPHIR_OBS_VAR(&_15$$9); + zephir_memory_observe(&_15$$9); zephir_read_static_property_ce(&_15$$9, phalcon_tag_ce, SL("documentAppendTitle"), PH_NOISY_CC); ZEPHIR_CPY_WRT(&documentAppendTitle, &_15$$9); if (!(ZEPHIR_IS_EMPTY(&documentAppendTitle))) { @@ -15357,12 +14862,8 @@ static PHP_METHOD(Phalcon_Tag, getTitle) static PHP_METHOD(Phalcon_Tag, getTitleSeparator) { zval _0; - zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); - - - zephir_read_static_property_ce(&_0, phalcon_tag_ce, SL("documentTitleSeparator"), PH_NOISY_CC | PH_READONLY); RETURN_CTORW(&_0); } @@ -15372,17 +14873,15 @@ static PHP_METHOD(Phalcon_Tag, getUrlService) zval url, container, _0$$3, _1$$3; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); ZVAL_UNDEF(&url); ZVAL_UNDEF(&container); ZVAL_UNDEF(&_0$$3); ZVAL_UNDEF(&_1$$3); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); - - ZEPHIR_MM_GROW(); - - ZEPHIR_OBS_VAR(&url); + zephir_memory_observe(&url); zephir_read_static_property_ce(&url, phalcon_tag_ce, SL("urlService"), PH_NOISY_CC); if (Z_TYPE_P(&url) != IS_OBJECT) { ZEPHIR_CALL_SELF(&container, "getdi", NULL, 0); @@ -15406,24 +14905,19 @@ static PHP_METHOD(Phalcon_Tag, getValue) zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval params; zval *name, name_sub, *params_param = NULL, _POST, value, _0$$3; - zval *this_ptr = getThis(); ZVAL_UNDEF(&name_sub); ZVAL_UNDEF(&_POST); ZVAL_UNDEF(&value); ZVAL_UNDEF(&_0$$3); ZVAL_UNDEF(¶ms); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) Z_PARAM_ZVAL(name) Z_PARAM_OPTIONAL Z_PARAM_ARRAY(params) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_get_global(&_POST, SL("_POST")); zephir_fetch_params(1, 1, 1, &name, ¶ms_param); if (!params_param) { @@ -15432,9 +14926,7 @@ static PHP_METHOD(Phalcon_Tag, getValue) } else { zephir_get_arrval(¶ms, params_param); } - - - ZEPHIR_OBS_VAR(&value); + zephir_memory_observe(&value); if (!(zephir_array_isset_string_fetch(&value, ¶ms, SL("value"), 0))) { ZEPHIR_OBS_NVAR(&value); zephir_read_static_property_ce(&_0$$3, phalcon_tag_ce, SL("displayValues"), PH_NOISY_CC | PH_READONLY); @@ -15452,23 +14944,15 @@ static PHP_METHOD(Phalcon_Tag, hasValue) { zend_bool _1; zval *name, name_sub, _POST, _0; - zval *this_ptr = getThis(); ZVAL_UNDEF(&name_sub); ZVAL_UNDEF(&_POST); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(name) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_get_global(&_POST, SL("_POST")); zephir_fetch_params_without_memory_grow(1, 0, &name); - - zephir_read_static_property_ce(&_0, phalcon_tag_ce, SL("displayValues"), PH_NOISY_CC | PH_READONLY); _1 = zephir_array_isset(&_0, name); if (!(_1)) { @@ -15483,22 +14967,15 @@ static PHP_METHOD(Phalcon_Tag, hiddenField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "hidden"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -15512,7 +14989,6 @@ static PHP_METHOD(Phalcon_Tag, image) zend_long ZEPHIR_LAST_CALL_STATUS; zend_bool local; zval *parameters = NULL, parameters_sub, *local_param = NULL, __$null, params, code, src, _5, _6, _0$$5, _1$$8, _2$$9, _3$$9, _4$$9; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_NULL(&__$null); @@ -15526,17 +15002,14 @@ static PHP_METHOD(Phalcon_Tag, image) ZVAL_UNDEF(&_2$$9); ZVAL_UNDEF(&_3$$9); ZVAL_UNDEF(&_4$$9); -#if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL Z_PARAM_ZVAL_OR_NULL(parameters) Z_PARAM_BOOL(local) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 0, 2, ¶meters, &local_param); if (!parameters) { parameters = ¶meters_sub; @@ -15545,10 +15018,7 @@ static PHP_METHOD(Phalcon_Tag, image) if (!local_param) { local = 1; } else { - local = zephir_get_boolval(local_param); - } - - + } if (Z_TYPE_P(parameters) != IS_ARRAY) { ZEPHIR_INIT_VAR(¶ms); zephir_create_array(¶ms, 1, 0); @@ -15556,13 +15026,13 @@ static PHP_METHOD(Phalcon_Tag, image) } else { ZEPHIR_CPY_WRT(¶ms, parameters); if (zephir_array_isset_long(¶ms, 1)) { - ZEPHIR_OBS_VAR(&_0$$5); + zephir_memory_observe(&_0$$5); zephir_array_fetch_long(&_0$$5, ¶ms, 1, PH_NOISY, "phalcon/Tag.zep", 581); local = zephir_get_boolval(&_0$$5); } } if (!(zephir_array_isset_string(¶ms, SL("src")))) { - ZEPHIR_OBS_VAR(&src); + zephir_memory_observe(&src); if (zephir_array_isset_long_fetch(&src, ¶ms, 0, 0)) { zephir_array_update_string(¶ms, SL("src"), &src, PH_COPY | PH_SEPARATE); } else { @@ -15598,23 +15068,16 @@ static PHP_METHOD(Phalcon_Tag, imageInput) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1, _2; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "image"); ZVAL_BOOL(&_2, 1); @@ -15629,7 +15092,6 @@ static PHP_METHOD(Phalcon_Tag, javascriptInclude) zend_long ZEPHIR_LAST_CALL_STATUS; zend_bool local, _3; zval *parameters = NULL, parameters_sub, *local_param = NULL, __$null, params, code, _4, _11, _12, _0$$3, _1$$5, _2$$7, _5$$8, _6$$10, _7$$11, _8$$12, _9$$12, _10$$12; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_NULL(&__$null); @@ -15647,17 +15109,14 @@ static PHP_METHOD(Phalcon_Tag, javascriptInclude) ZVAL_UNDEF(&_8$$12); ZVAL_UNDEF(&_9$$12); ZVAL_UNDEF(&_10$$12); -#if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL Z_PARAM_ZVAL_OR_NULL(parameters) Z_PARAM_BOOL(local) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 0, 2, ¶meters, &local_param); if (!parameters) { parameters = ¶meters_sub; @@ -15666,10 +15125,7 @@ static PHP_METHOD(Phalcon_Tag, javascriptInclude) if (!local_param) { local = 1; } else { - local = zephir_get_boolval(local_param); - } - - + } if (Z_TYPE_P(parameters) != IS_ARRAY) { ZEPHIR_INIT_VAR(¶ms); zephir_create_array(¶ms, 2, 0); @@ -15681,12 +15137,12 @@ static PHP_METHOD(Phalcon_Tag, javascriptInclude) ZEPHIR_CPY_WRT(¶ms, parameters); } if (zephir_array_isset_long(¶ms, 1)) { - ZEPHIR_OBS_VAR(&_1$$5); + zephir_memory_observe(&_1$$5); zephir_array_fetch_long(&_1$$5, ¶ms, 1, PH_NOISY, "phalcon/Tag.zep", 650); local = zephir_get_boolval(&_1$$5); } else { if (zephir_array_isset_string(¶ms, SL("local"))) { - ZEPHIR_OBS_VAR(&_2$$7); + zephir_memory_observe(&_2$$7); zephir_array_fetch_string(&_2$$7, ¶ms, SL("local"), PH_NOISY, "phalcon/Tag.zep", 653); local = zephir_get_boolval(&_2$$7); zephir_array_unset_string(¶ms, SL("local"), PH_SEPARATE); @@ -15737,7 +15193,6 @@ static PHP_METHOD(Phalcon_Tag, linkTo) zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *parameters, parameters_sub, *text = NULL, text_sub, *local = NULL, local_sub, __$null, __$true, params, action, query, url, code, _0, _1, _2; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&text_sub); @@ -15752,7 +15207,6 @@ static PHP_METHOD(Phalcon_Tag, linkTo) ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 3) Z_PARAM_ZVAL(parameters) @@ -15760,10 +15214,8 @@ static PHP_METHOD(Phalcon_Tag, linkTo) Z_PARAM_ZVAL_OR_NULL(text) Z_PARAM_ZVAL(local) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 2, ¶meters, &text, &local); if (!text) { text = &text_sub; @@ -15777,8 +15229,6 @@ static PHP_METHOD(Phalcon_Tag, linkTo) } else { ZEPHIR_SEPARATE_PARAM(local); } - - if (Z_TYPE_P(parameters) != IS_ARRAY) { ZEPHIR_INIT_VAR(¶ms); zephir_create_array(¶ms, 3, 0); @@ -15788,7 +15238,7 @@ static PHP_METHOD(Phalcon_Tag, linkTo) } else { ZEPHIR_CPY_WRT(¶ms, parameters); } - ZEPHIR_OBS_VAR(&action); + zephir_memory_observe(&action); if (!(zephir_array_isset_long_fetch(&action, ¶ms, 0, 0))) { ZEPHIR_OBS_NVAR(&action); if (!(zephir_array_isset_string_fetch(&action, ¶ms, SL("action"), 0))) { @@ -15818,7 +15268,7 @@ static PHP_METHOD(Phalcon_Tag, linkTo) zephir_array_unset_string(¶ms, SL("local"), PH_SEPARATE); } } - ZEPHIR_OBS_VAR(&query); + zephir_memory_observe(&query); if (zephir_array_isset_string_fetch(&query, ¶ms, SL("query"), 0)) { zephir_array_unset_string(¶ms, SL("query"), PH_SEPARATE); } else { @@ -15846,22 +15296,15 @@ static PHP_METHOD(Phalcon_Tag, monthField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "month"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -15875,22 +15318,15 @@ static PHP_METHOD(Phalcon_Tag, numericField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "number"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -15904,22 +15340,15 @@ static PHP_METHOD(Phalcon_Tag, passwordField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "password"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -15931,23 +15360,16 @@ static PHP_METHOD(Phalcon_Tag, prependTitle) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *title, title_sub, _0, _1$$3; - zval *this_ptr = getThis(); ZVAL_UNDEF(&title_sub); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(title) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, &title); - - zephir_read_static_property_ce(&_0, phalcon_tag_ce, SL("documentPrependTitle"), PH_NOISY_CC | PH_READONLY); if (Z_TYPE_P(&_0) == IS_NULL) { ZEPHIR_INIT_VAR(&_1$$3); @@ -15969,7 +15391,6 @@ static PHP_METHOD(Phalcon_Tag, preload) zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *parameters, parameters_sub, attributes, container, header, href, link, params, response, _2, _3, _0$$3, _4$$7, _5$$5, _6$$5, _7$$5, _8$$5, _9$$5; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&attributes); @@ -15989,18 +15410,12 @@ static PHP_METHOD(Phalcon_Tag, preload) ZVAL_UNDEF(&_8$$5); ZVAL_UNDEF(&_9$$5); ZVAL_UNDEF(&_10$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(¶ms); array_init(¶ms); if (Z_TYPE_P(parameters) != IS_ARRAY) { @@ -16011,7 +15426,7 @@ static PHP_METHOD(Phalcon_Tag, preload) } else { ZEPHIR_CPY_WRT(¶ms, parameters); } - ZEPHIR_OBS_VAR(&href); + zephir_memory_observe(&href); zephir_array_isset_long_fetch(&href, ¶ms, 0, 0); ZEPHIR_CALL_SELF(&container, "getdi", NULL, 0); zephir_check_call_status(); @@ -16025,7 +15440,7 @@ static PHP_METHOD(Phalcon_Tag, preload) } if (_1) { if (zephir_array_isset_long(¶ms, 1)) { - ZEPHIR_OBS_VAR(&attributes); + zephir_memory_observe(&attributes); zephir_array_fetch_long(&attributes, ¶ms, 1, PH_NOISY, "phalcon/Tag.zep", 840); } else { ZEPHIR_INIT_VAR(&_4$$7); @@ -16047,7 +15462,7 @@ static PHP_METHOD(Phalcon_Tag, preload) zephir_fast_str_replace(&_5$$5, &_6$$5, &_7$$5, &href); ZEPHIR_INIT_VAR(&_8$$5); ZVAL_STRING(&_8$$5, "preload"); - ZEPHIR_CALL_METHOD(NULL, &link, "__construct", NULL, 498, &_8$$5, &_5$$5, &attributes); + ZEPHIR_CALL_METHOD(NULL, &link, "__construct", NULL, 499, &_8$$5, &_5$$5, &attributes); zephir_check_call_status(); ZEPHIR_INIT_NVAR(&_8$$5); object_init_ex(&_8$$5, phalcon_html_link_serializer_header_ce); @@ -16059,7 +15474,7 @@ static PHP_METHOD(Phalcon_Tag, preload) ZEPHIR_INIT_VAR(&_10$$5); zephir_create_array(&_10$$5, 1, 0); zephir_array_fast_append(&_10$$5, &link); - ZEPHIR_CALL_METHOD(&_9$$5, &_8$$5, "serialize", NULL, 499, &_10$$5); + ZEPHIR_CALL_METHOD(&_9$$5, &_8$$5, "serialize", NULL, 500, &_10$$5); zephir_check_call_status(); ZEPHIR_INIT_VAR(&header); ZEPHIR_CONCAT_SV(&header, "Link: ", &_9$$5); @@ -16075,22 +15490,15 @@ static PHP_METHOD(Phalcon_Tag, radioField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "radio"); ZEPHIR_RETURN_CALL_SELF("inputfieldchecked", &_0, 0, &_1, parameters); @@ -16104,22 +15512,15 @@ static PHP_METHOD(Phalcon_Tag, rangeField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "range"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -16138,7 +15539,6 @@ static PHP_METHOD(Phalcon_Tag, renderAttributes) zval attributes; zval *code_param = NULL, *attributes_param = NULL, __$null, order, escaper, attrs, attribute, value, escaped, key, newCode, *_0, _1, *_4, _5, _8, *_9, _10, _20$$12, _15$$13, _16$$13, _17$$13, _27$$17, _23$$18, _24$$18, _25$$18; zval code; - zval *this_ptr = getThis(); ZVAL_UNDEF(&code); ZVAL_NULL(&__$null); @@ -16163,16 +15563,12 @@ static PHP_METHOD(Phalcon_Tag, renderAttributes) ZVAL_UNDEF(&_24$$18); ZVAL_UNDEF(&_25$$18); ZVAL_UNDEF(&attributes); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) Z_PARAM_STR(code) Z_PARAM_ARRAY(attributes) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 2, 0, &code_param, &attributes_param); if (UNEXPECTED(Z_TYPE_P(code_param) != IS_STRING && Z_TYPE_P(code_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'code' must be of the type string")); @@ -16184,8 +15580,6 @@ static PHP_METHOD(Phalcon_Tag, renderAttributes) ZEPHIR_INIT_VAR(&code); } ZEPHIR_OBS_COPY_OR_DUP(&attributes, attributes_param); - - ZEPHIR_INIT_VAR(&order); zephir_create_array(&order, 10, 0); zephir_array_update_string(&order, SL("rel"), &__$null, PH_COPY | PH_SEPARATE); @@ -16311,7 +15705,7 @@ static PHP_METHOD(Phalcon_Tag, renderAttributes) zephir_gettype(&_16$$13, &value); ZEPHIR_INIT_NVAR(&_17$$13); ZEPHIR_CONCAT_SVSVS(&_17$$13, "Value at index: '", &key, "' type: '", &_16$$13, "' cannot be rendered"); - ZEPHIR_CALL_METHOD(NULL, &_15$$13, "__construct", &_18, 32, &_17$$13); + ZEPHIR_CALL_METHOD(NULL, &_15$$13, "__construct", &_18, 33, &_17$$13); zephir_check_call_status(); zephir_throw_exception_debug(&_15$$13, "phalcon/Tag.zep", 952); ZEPHIR_MM_RESTORE(); @@ -16357,7 +15751,7 @@ static PHP_METHOD(Phalcon_Tag, renderAttributes) zephir_gettype(&_24$$18, &value); ZEPHIR_INIT_NVAR(&_25$$18); ZEPHIR_CONCAT_SVSVS(&_25$$18, "Value at index: '", &key, "' type: '", &_24$$18, "' cannot be rendered"); - ZEPHIR_CALL_METHOD(NULL, &_23$$18, "__construct", &_18, 32, &_25$$18); + ZEPHIR_CALL_METHOD(NULL, &_23$$18, "__construct", &_18, 33, &_25$$18); zephir_check_call_status(); zephir_throw_exception_debug(&_23$$18, "phalcon/Tag.zep", 952); ZEPHIR_MM_RESTORE(); @@ -16388,36 +15782,27 @@ static PHP_METHOD(Phalcon_Tag, renderTitle) zend_long ZEPHIR_LAST_CALL_STATUS; zval *prepend_param = NULL, *append_param = NULL, _0, _1, _2, _3; zend_bool prepend, append; - zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL Z_PARAM_BOOL(prepend) Z_PARAM_BOOL(append) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 0, 2, &prepend_param, &append_param); if (!prepend_param) { prepend = 1; } else { - prepend = zephir_get_boolval(prepend_param); - } + } if (!append_param) { append = 1; } else { - append = zephir_get_boolval(append_param); - } - - + } if (prepend) { ZVAL_BOOL(&_1, 1); } else { @@ -16440,15 +15825,13 @@ static PHP_METHOD(Phalcon_Tag, resetInput) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval __$null, _0, _1, _2; - zval *this_ptr = getThis(); ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); ZEPHIR_INIT_VAR(&_0); array_init(&_0); @@ -16470,22 +15853,15 @@ static PHP_METHOD(Phalcon_Tag, searchField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "search"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -16497,32 +15873,25 @@ static PHP_METHOD(Phalcon_Tag, select) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, *data = NULL, data_sub, __$null; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&data_sub); ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) Z_PARAM_ZVAL(parameters) Z_PARAM_OPTIONAL Z_PARAM_ZVAL_OR_NULL(data) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 1, ¶meters, &data); if (!data) { data = &data_sub; data = &__$null; } - - - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_select_ce, "selectfield", &_0, 0, parameters, data); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_select_ce, "selectfield", NULL, 0, parameters, data); zephir_check_call_status(); RETURN_MM(); } @@ -16531,32 +15900,25 @@ static PHP_METHOD(Phalcon_Tag, selectStatic) { zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, *data = NULL, data_sub, __$null; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&data_sub); ZVAL_NULL(&__$null); -#if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) Z_PARAM_ZVAL(parameters) Z_PARAM_OPTIONAL Z_PARAM_ZVAL_OR_NULL(data) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 1, ¶meters, &data); if (!data) { data = &data_sub; data = &__$null; } - - - ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_select_ce, "selectfield", &_0, 0, parameters, data); + ZEPHIR_RETURN_CALL_CE_STATIC(phalcon_tag_select_ce, "selectfield", NULL, 0, parameters, data); zephir_check_call_status(); RETURN_MM(); } @@ -16565,22 +15927,13 @@ static PHP_METHOD(Phalcon_Tag, setAutoescape) { zval *autoescape_param = NULL, _0; zend_bool autoescape; - zval *this_ptr = getThis(); ZVAL_UNDEF(&_0); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_BOOL(autoescape) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(1, 0, &autoescape_param); - autoescape = zephir_get_boolval(autoescape_param); - - - ZEPHIR_INIT_ZVAL_NREF(_0); + ZVAL_UNDEF(&_0); ZVAL_BOOL(&_0, autoescape); zephir_update_static_property_ce(phalcon_tag_ce, ZEND_STRL("autoEscape"), &_0); } @@ -16591,20 +15944,15 @@ static PHP_METHOD(Phalcon_Tag, setDefault) zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *id_param = NULL, *value, value_sub; zval id; - zval *this_ptr = getThis(); ZVAL_UNDEF(&id); ZVAL_UNDEF(&value_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) Z_PARAM_STR(id) Z_PARAM_ZVAL(value) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 2, 0, &id_param, &value); if (UNEXPECTED(Z_TYPE_P(id_param) != IS_STRING && Z_TYPE_P(id_param) != IS_NULL)) { zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'id' must be of the type string")); @@ -16615,8 +15963,6 @@ static PHP_METHOD(Phalcon_Tag, setDefault) } else { ZEPHIR_INIT_VAR(&id); } - - if (Z_TYPE_P(value) != IS_NULL) { _0$$3 = Z_TYPE_P(value) == IS_ARRAY; if (!(_0$$3)) { @@ -16637,35 +15983,27 @@ static PHP_METHOD(Phalcon_Tag, setDefaults) zend_bool merge, _0; zval *values_param = NULL, *merge_param = NULL, _1, _2$$3, _3$$3; zval values; - zval *this_ptr = getThis(); ZVAL_UNDEF(&values); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2$$3); ZVAL_UNDEF(&_3$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) Z_PARAM_ARRAY(values) Z_PARAM_OPTIONAL Z_PARAM_BOOL(merge) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 1, &values_param, &merge_param); ZEPHIR_OBS_COPY_OR_DUP(&values, values_param); if (!merge_param) { merge = 0; } else { - merge = zephir_get_boolval(merge_param); - } - - + } _0 = merge; if (_0) { - ZEPHIR_OBS_VAR(&_1); + zephir_memory_observe(&_1); zephir_read_static_property_ce(&_1, phalcon_tag_ce, SL("displayValues"), PH_NOISY_CC); _0 = Z_TYPE_P(&_1) == IS_ARRAY; } @@ -16683,20 +16021,12 @@ static PHP_METHOD(Phalcon_Tag, setDefaults) static PHP_METHOD(Phalcon_Tag, setDI) { zval *container, container_sub; - zval *this_ptr = getThis(); ZVAL_UNDEF(&container_sub); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_OBJECT_OF_CLASS(container, phalcon_di_diinterface_ce) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(1, 0, &container); - - zephir_update_static_property_ce(phalcon_tag_ce, ZEND_STRL("container"), container); } @@ -16705,32 +16035,23 @@ static PHP_METHOD(Phalcon_Tag, setDocType) zend_bool _0; zval *doctype_param = NULL, _1$$3, _2$$4; zend_long doctype; - zval *this_ptr = getThis(); ZVAL_UNDEF(&_1$$3); ZVAL_UNDEF(&_2$$4); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_LONG(doctype) ZEND_PARSE_PARAMETERS_END(); -#endif - - zephir_fetch_params_without_memory_grow(1, 0, &doctype_param); - doctype = zephir_get_intval(doctype_param); - - _0 = doctype < 1; if (!(_0)) { _0 = doctype > 11; } if (_0) { - ZEPHIR_INIT_ZVAL_NREF(_1$$3); + ZVAL_UNDEF(&_1$$3); ZVAL_LONG(&_1$$3, 5); zephir_update_static_property_ce(phalcon_tag_ce, ZEND_STRL("documentType"), &_1$$3); } else { - ZEPHIR_INIT_ZVAL_NREF(_2$$4); + ZVAL_UNDEF(&_2$$4); ZVAL_LONG(&_2$$4, doctype); zephir_update_static_property_ce(phalcon_tag_ce, ZEND_STRL("documentType"), &_2$$4); } @@ -16741,22 +16062,15 @@ static PHP_METHOD(Phalcon_Tag, setTitle) zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *title_param = NULL; zval title; - zval *this_ptr = getThis(); ZVAL_UNDEF(&title); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_STR(title) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, &title_param); zephir_get_strval(&title, title_param); - - zephir_update_static_property_ce(phalcon_tag_ce, ZEND_STRL("documentTitle"), &title); ZEPHIR_MM_RESTORE(); } @@ -16766,22 +16080,15 @@ static PHP_METHOD(Phalcon_Tag, setTitleSeparator) zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zval *titleSeparator_param = NULL; zval titleSeparator; - zval *this_ptr = getThis(); ZVAL_UNDEF(&titleSeparator); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_STR(titleSeparator) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, &titleSeparator_param); zephir_get_strval(&titleSeparator, titleSeparator_param); - - zephir_update_static_property_ce(phalcon_tag_ce, ZEND_STRL("documentTitleSeparator"), &titleSeparator); ZEPHIR_MM_RESTORE(); } @@ -16792,7 +16099,6 @@ static PHP_METHOD(Phalcon_Tag, stylesheetLink) zend_long ZEPHIR_LAST_CALL_STATUS; zend_bool local; zval *parameters = NULL, parameters_sub, *local_param = NULL, __$null, params, code, _10, _11, _0$$3, _1$$5, _2$$7, _3$$8, _4$$10, _5$$11, _6$$12, _7$$12, _8$$12, _9$$13, _12$$14, _13$$14, _14$$15, _15$$15; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_NULL(&__$null); @@ -16814,17 +16120,14 @@ static PHP_METHOD(Phalcon_Tag, stylesheetLink) ZVAL_UNDEF(&_13$$14); ZVAL_UNDEF(&_14$$15); ZVAL_UNDEF(&_15$$15); -#if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(0, 2) Z_PARAM_OPTIONAL Z_PARAM_ZVAL_OR_NULL(parameters) Z_PARAM_BOOL(local) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 0, 2, ¶meters, &local_param); if (!parameters) { parameters = ¶meters_sub; @@ -16833,10 +16136,7 @@ static PHP_METHOD(Phalcon_Tag, stylesheetLink) if (!local_param) { local = 1; } else { - local = zephir_get_boolval(local_param); - } - - + } if (Z_TYPE_P(parameters) != IS_ARRAY) { ZEPHIR_INIT_VAR(¶ms); zephir_create_array(¶ms, 2, 0); @@ -16848,12 +16148,12 @@ static PHP_METHOD(Phalcon_Tag, stylesheetLink) ZEPHIR_CPY_WRT(¶ms, parameters); } if (zephir_array_isset_long(¶ms, 1)) { - ZEPHIR_OBS_VAR(&_1$$5); + zephir_memory_observe(&_1$$5); zephir_array_fetch_long(&_1$$5, ¶ms, 1, PH_NOISY, "phalcon/Tag.zep", 1127); local = zephir_get_boolval(&_1$$5); } else { if (zephir_array_isset_string(¶ms, SL("local"))) { - ZEPHIR_OBS_VAR(&_2$$7); + zephir_memory_observe(&_2$$7); zephir_array_fetch_string(&_2$$7, ¶ms, SL("local"), PH_NOISY, "phalcon/Tag.zep", 1130); local = zephir_get_boolval(&_2$$7); zephir_array_unset_string(¶ms, SL("local"), PH_SEPARATE); @@ -16914,23 +16214,16 @@ static PHP_METHOD(Phalcon_Tag, submitButton) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1, _2; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_2); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "submit"); ZVAL_BOOL(&_2, 1); @@ -16946,7 +16239,6 @@ static PHP_METHOD(Phalcon_Tag, tagHtml) zend_bool selfClose, onlyStart, useEol; zval *tagName_param = NULL, *parameters = NULL, parameters_sub, *selfClose_param = NULL, *onlyStart_param = NULL, *useEol_param = NULL, __$null, params, localCode, _1, _3$$11; zval tagName, _0, _2$$10; - zval *this_ptr = getThis(); ZVAL_UNDEF(&tagName); ZVAL_UNDEF(&_0); @@ -16957,7 +16249,6 @@ static PHP_METHOD(Phalcon_Tag, tagHtml) ZVAL_UNDEF(&localCode); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_3$$11); -#if PHP_VERSION_ID >= 80000 bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 5) Z_PARAM_STR(tagName) @@ -16967,10 +16258,8 @@ static PHP_METHOD(Phalcon_Tag, tagHtml) Z_PARAM_BOOL(onlyStart) Z_PARAM_BOOL(useEol) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 4, &tagName_param, ¶meters, &selfClose_param, &onlyStart_param, &useEol_param); zephir_get_strval(&tagName, tagName_param); if (!parameters) { @@ -16980,20 +16269,15 @@ static PHP_METHOD(Phalcon_Tag, tagHtml) if (!selfClose_param) { selfClose = 0; } else { - selfClose = zephir_get_boolval(selfClose_param); - } + } if (!onlyStart_param) { onlyStart = 0; } else { - onlyStart = zephir_get_boolval(onlyStart_param); - } + } if (!useEol_param) { useEol = 0; } else { - useEol = zephir_get_boolval(useEol_param); - } - - + } if (Z_TYPE_P(parameters) != IS_ARRAY) { ZEPHIR_INIT_VAR(¶ms); zephir_create_array(¶ms, 1, 0); @@ -17035,30 +16319,22 @@ static PHP_METHOD(Phalcon_Tag, tagHtmlClose) zend_bool useEol; zval *tagName_param = NULL, *useEol_param = NULL, _0$$3; zval tagName; - zval *this_ptr = getThis(); ZVAL_UNDEF(&tagName); ZVAL_UNDEF(&_0$$3); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 2) Z_PARAM_STR(tagName) Z_PARAM_OPTIONAL Z_PARAM_BOOL(useEol) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 1, &tagName_param, &useEol_param); zephir_get_strval(&tagName, tagName_param); if (!useEol_param) { useEol = 0; } else { - useEol = zephir_get_boolval(useEol_param); - } - - + } if (useEol) { ZEPHIR_INIT_VAR(&_0$$3); ZEPHIR_GET_CONSTANT(&_0$$3, "PHP_EOL"); @@ -17075,22 +16351,15 @@ static PHP_METHOD(Phalcon_Tag, telField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "tel"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -17103,7 +16372,6 @@ static PHP_METHOD(Phalcon_Tag, textArea) zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *parameters, parameters_sub, params, id, name, content, code, _1, _2, _3, _0$$6; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(¶ms); @@ -17115,18 +16383,12 @@ static PHP_METHOD(Phalcon_Tag, textArea) ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_0$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - if (Z_TYPE_P(parameters) != IS_ARRAY) { ZEPHIR_INIT_VAR(¶ms); zephir_create_array(¶ms, 1, 0); @@ -17140,12 +16402,12 @@ static PHP_METHOD(Phalcon_Tag, textArea) zephir_array_update_long(¶ms, 0, &_0$$6, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); } } - ZEPHIR_OBS_VAR(&id); + zephir_memory_observe(&id); zephir_array_fetch_long(&id, ¶ms, 0, PH_NOISY, "phalcon/Tag.zep", 1281); if (!(zephir_array_isset_string(¶ms, SL("name")))) { zephir_array_update_string(¶ms, SL("name"), &id, PH_COPY | PH_SEPARATE); } else { - ZEPHIR_OBS_VAR(&name); + zephir_memory_observe(&name); zephir_array_fetch_string(&name, ¶ms, SL("name"), PH_NOISY, "phalcon/Tag.zep", 1286); if (ZEPHIR_IS_EMPTY(&name)) { zephir_array_update_string(¶ms, SL("name"), &id, PH_COPY | PH_SEPARATE); @@ -17155,7 +16417,7 @@ static PHP_METHOD(Phalcon_Tag, textArea) zephir_array_update_string(¶ms, SL("id"), &id, PH_COPY | PH_SEPARATE); } if (zephir_array_isset_string(¶ms, SL("value"))) { - ZEPHIR_OBS_VAR(&content); + zephir_memory_observe(&content); zephir_array_fetch_string(&content, ¶ms, SL("value"), PH_NOISY, "phalcon/Tag.zep", 1298); zephir_array_unset_string(¶ms, SL("value"), PH_SEPARATE); } else { @@ -17170,7 +16432,7 @@ static PHP_METHOD(Phalcon_Tag, textArea) ZVAL_STRING(&_1, "", &_2, ""); @@ -17184,22 +16446,15 @@ static PHP_METHOD(Phalcon_Tag, textField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "text"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -17213,22 +16468,15 @@ static PHP_METHOD(Phalcon_Tag, timeField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "time"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -17242,22 +16490,15 @@ static PHP_METHOD(Phalcon_Tag, urlField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "url"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -17271,22 +16512,15 @@ static PHP_METHOD(Phalcon_Tag, weekField) zend_long ZEPHIR_LAST_CALL_STATUS; zephir_fcall_cache_entry *_0 = NULL; zval *parameters, parameters_sub, _1; - zval *this_ptr = getThis(); ZVAL_UNDEF(¶meters_sub); ZVAL_UNDEF(&_1); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(1, 1) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 1, 0, ¶meters); - - ZEPHIR_INIT_VAR(&_1); ZVAL_STRING(&_1, "week"); ZEPHIR_RETURN_CALL_SELF("inputfield", &_0, 0, &_1, parameters); @@ -17301,7 +16535,6 @@ static PHP_METHOD(Phalcon_Tag, inputField) zend_bool asValue, _1$$10; zval *type_param = NULL, *parameters, parameters_sub, *asValue_param = NULL, params, id, value, code, name, _3, _4, _0$$6, _2$$5; zval type; - zval *this_ptr = getThis(); ZVAL_UNDEF(&type); ZVAL_UNDEF(¶meters_sub); @@ -17314,27 +16547,20 @@ static PHP_METHOD(Phalcon_Tag, inputField) ZVAL_UNDEF(&_4); ZVAL_UNDEF(&_0$$6); ZVAL_UNDEF(&_2$$5); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 3) Z_PARAM_STR(type) Z_PARAM_ZVAL(parameters) Z_PARAM_OPTIONAL Z_PARAM_BOOL(asValue) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 2, 1, &type_param, ¶meters, &asValue_param); zephir_get_strval(&type, type_param); if (!asValue_param) { asValue = 0; } else { - asValue = zephir_get_boolval(asValue_param); - } - - + } ZEPHIR_INIT_VAR(¶ms); array_init(¶ms); if (Z_TYPE_P(parameters) != IS_ARRAY) { @@ -17343,12 +16569,12 @@ static PHP_METHOD(Phalcon_Tag, inputField) ZEPHIR_CPY_WRT(¶ms, parameters); } if (asValue == 0) { - ZEPHIR_OBS_VAR(&id); + zephir_memory_observe(&id); if (!(zephir_array_isset_long_fetch(&id, ¶ms, 0, 0))) { zephir_array_fetch_string(&_0$$6, ¶ms, SL("id"), PH_NOISY | PH_READONLY, "phalcon/Tag.zep", 1403); zephir_array_update_long(¶ms, 0, &_0$$6, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); } - ZEPHIR_OBS_VAR(&name); + zephir_memory_observe(&name); if (zephir_array_isset_string_fetch(&name, ¶ms, SL("name"), 0)) { if (ZEPHIR_IS_EMPTY(&name)) { zephir_array_update_string(¶ms, SL("name"), &id, PH_COPY | PH_SEPARATE); @@ -17370,7 +16596,7 @@ static PHP_METHOD(Phalcon_Tag, inputField) zephir_array_update_string(¶ms, SL("value"), &_2$$5, PH_COPY | PH_SEPARATE); } else { if (!(zephir_array_isset_string(¶ms, SL("value")))) { - ZEPHIR_OBS_VAR(&value); + zephir_memory_observe(&value); if (zephir_array_isset_long_fetch(&value, ¶ms, 0, 0)) { zephir_array_update_string(¶ms, SL("value"), &value, PH_COPY | PH_SEPARATE); } @@ -17397,7 +16623,6 @@ static PHP_METHOD(Phalcon_Tag, inputFieldChecked) zend_long ZEPHIR_LAST_CALL_STATUS; zval *type_param = NULL, *parameters, parameters_sub, params, value, id, code, name, currentValue, _1, _2, _6, _7, _0$$5, _4$$12, _5$$14; zval type; - zval *this_ptr = getThis(); ZVAL_UNDEF(&type); ZVAL_UNDEF(¶meters_sub); @@ -17414,20 +16639,14 @@ static PHP_METHOD(Phalcon_Tag, inputFieldChecked) ZVAL_UNDEF(&_0$$5); ZVAL_UNDEF(&_4$$12); ZVAL_UNDEF(&_5$$14); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; ZEND_PARSE_PARAMETERS_START(2, 2) Z_PARAM_STR(type) Z_PARAM_ZVAL(parameters) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); zephir_fetch_params(1, 2, 0, &type_param, ¶meters); zephir_get_strval(&type, type_param); - - if (Z_TYPE_P(parameters) != IS_ARRAY) { ZEPHIR_INIT_VAR(¶ms); zephir_create_array(¶ms, 1, 0); @@ -17439,12 +16658,12 @@ static PHP_METHOD(Phalcon_Tag, inputFieldChecked) zephir_array_fetch_string(&_0$$5, ¶ms, SL("id"), PH_NOISY | PH_READONLY, "phalcon/Tag.zep", 1464); zephir_array_update_long(¶ms, 0, &_0$$5, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); } - ZEPHIR_OBS_VAR(&id); + zephir_memory_observe(&id); zephir_array_fetch_long(&id, ¶ms, 0, PH_NOISY, "phalcon/Tag.zep", 1467); if (!(zephir_array_isset_string(¶ms, SL("name")))) { zephir_array_update_string(¶ms, SL("name"), &id, PH_COPY | PH_SEPARATE); } else { - ZEPHIR_OBS_VAR(&name); + zephir_memory_observe(&name); zephir_array_fetch_string(&name, ¶ms, SL("name"), PH_NOISY, "phalcon/Tag.zep", 1472); if (ZEPHIR_IS_EMPTY(&name)) { zephir_array_update_string(¶ms, SL("name"), &id, PH_COPY | PH_SEPARATE); @@ -17459,7 +16678,7 @@ static PHP_METHOD(Phalcon_Tag, inputFieldChecked) zephir_array_update_string(¶ms, SL("id"), &id, PH_COPY | PH_SEPARATE); } } - ZEPHIR_OBS_VAR(¤tValue); + zephir_memory_observe(¤tValue); if (zephir_array_isset_string_fetch(¤tValue, ¶ms, SL("value"), 0)) { zephir_array_unset_string(¶ms, SL("value"), PH_SEPARATE); ZEPHIR_CALL_SELF(&value, "getvalue", NULL, 0, &id, ¶ms); @@ -17508,171 +16727,485 @@ static PHP_METHOD(Phalcon_Tag, inputFieldChecked) -ZEPHIR_INIT_CLASS(Phalcon_Html_Attributes) +ZEPHIR_INIT_CLASS(Phalcon_Tag_Exception) { - ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Html, Attributes, phalcon, html_attributes, phalcon_support_collection_ce, phalcon_html_attributes_method_entry, 0); + ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Tag, Exception, phalcon, tag_exception, zend_ce_exception, NULL, 0); - zend_class_implements(phalcon_html_attributes_ce, 1, phalcon_html_attributes_renderinterface_ce); return SUCCESS; } -static PHP_METHOD(Phalcon_Html_Attributes, render) -{ - zval _0; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); - ZVAL_UNDEF(&_0); - ZEPHIR_MM_GROW(); +#ifdef HAVE_CONFIG_H +#endif - ZEPHIR_CALL_METHOD(&_0, this_ptr, "toarray", NULL, 0); - zephir_check_call_status(); - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "renderattributes", NULL, 0, &_0); - zephir_check_call_status(); - RETURN_MM(); + + + + +ZEPHIR_INIT_CLASS(Phalcon_Tag_Select) +{ + ZEPHIR_REGISTER_CLASS(Phalcon\\Tag, Select, phalcon, tag_select, phalcon_tag_select_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + + return SUCCESS; } -static PHP_METHOD(Phalcon_Html_Attributes, __toString) +static PHP_METHOD(Phalcon_Tag_Select, selectField) { + zend_bool _1$$19; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; + zephir_fcall_cache_entry *_7 = NULL, *_11 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *this_ptr = getThis(); + zval *parameters, parameters_sub, *data = NULL, data_sub, __$null, params, name, id, value, useEmpty, code, emptyValue, emptyText, options, using, _2, _3, _0$$5, _4$$22, _5$$22, _6$$23, _8$$23, _9$$23, _10$$25, _12$$25, _13$$25; - - - ZEPHIR_MM_GROW(); - - ZEPHIR_RETURN_CALL_METHOD(this_ptr, "render", NULL, 0); + ZVAL_UNDEF(¶meters_sub); + ZVAL_UNDEF(&data_sub); + ZVAL_NULL(&__$null); + ZVAL_UNDEF(¶ms); + ZVAL_UNDEF(&name); + ZVAL_UNDEF(&id); + ZVAL_UNDEF(&value); + ZVAL_UNDEF(&useEmpty); + ZVAL_UNDEF(&code); + ZVAL_UNDEF(&emptyValue); + ZVAL_UNDEF(&emptyText); + ZVAL_UNDEF(&options); + ZVAL_UNDEF(&using); + ZVAL_UNDEF(&_2); + ZVAL_UNDEF(&_3); + ZVAL_UNDEF(&_0$$5); + ZVAL_UNDEF(&_4$$22); + ZVAL_UNDEF(&_5$$22); + ZVAL_UNDEF(&_6$$23); + ZVAL_UNDEF(&_8$$23); + ZVAL_UNDEF(&_9$$23); + ZVAL_UNDEF(&_10$$25); + ZVAL_UNDEF(&_12$$25); + ZVAL_UNDEF(&_13$$25); + bool is_null_true = 1; + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_ZVAL(parameters) + Z_PARAM_OPTIONAL + Z_PARAM_ZVAL_OR_NULL(data) + ZEND_PARSE_PARAMETERS_END(); + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); + zephir_fetch_params(1, 1, 1, ¶meters, &data); + if (!data) { + data = &data_sub; + data = &__$null; + } + if (Z_TYPE_P(parameters) != IS_ARRAY) { + ZEPHIR_INIT_VAR(¶ms); + zephir_create_array(¶ms, 2, 0); + zephir_array_fast_append(¶ms, parameters); + zephir_array_fast_append(¶ms, data); + } else { + ZEPHIR_CPY_WRT(¶ms, parameters); + } + zephir_memory_observe(&id); + if (!(zephir_array_isset_long_fetch(&id, ¶ms, 0, 0))) { + zephir_array_fetch_string(&_0$$5, ¶ms, SL("id"), PH_NOISY | PH_READONLY, "phalcon/Tag/Select.zep", 50); + zephir_array_update_long(¶ms, 0, &_0$$5, PH_COPY | PH_SEPARATE ZEPHIR_DEBUG_PARAMS_DUMMY); + } + if (!(zephir_memnstr_str(&id, SL("["), "phalcon/Tag/Select.zep", 56))) { + if (!(zephir_array_isset_string(¶ms, SL("id")))) { + zephir_array_update_string(¶ms, SL("id"), &id, PH_COPY | PH_SEPARATE); + } + } + zephir_memory_observe(&name); + if (!(zephir_array_isset_string_fetch(&name, ¶ms, SL("name"), 0))) { + zephir_array_update_string(¶ms, SL("name"), &id, PH_COPY | PH_SEPARATE); + } else { + if (!(zephir_is_true(&name))) { + zephir_array_update_string(¶ms, SL("name"), &id, PH_COPY | PH_SEPARATE); + } + } + zephir_memory_observe(&value); + if (!(zephir_array_isset_string_fetch(&value, ¶ms, SL("value"), 0))) { + ZEPHIR_CALL_CE_STATIC(&value, phalcon_tag_ce, "getvalue", NULL, 0, &id, ¶ms); + zephir_check_call_status(); + } else { + zephir_array_unset_string(¶ms, SL("value"), PH_SEPARATE); + } + zephir_memory_observe(&useEmpty); + if (zephir_array_isset_string_fetch(&useEmpty, ¶ms, SL("useEmpty"), 0)) { + zephir_memory_observe(&emptyValue); + if (!(zephir_array_isset_string_fetch(&emptyValue, ¶ms, SL("emptyValue"), 0))) { + ZEPHIR_INIT_NVAR(&emptyValue); + ZVAL_STRING(&emptyValue, ""); + } else { + zephir_array_unset_string(¶ms, SL("emptyValue"), PH_SEPARATE); + } + zephir_memory_observe(&emptyText); + if (!(zephir_array_isset_string_fetch(&emptyText, ¶ms, SL("emptyText"), 0))) { + ZEPHIR_INIT_NVAR(&emptyText); + ZVAL_STRING(&emptyText, "Choose..."); + } else { + zephir_array_unset_string(¶ms, SL("emptyText"), PH_SEPARATE); + } + zephir_array_unset_string(¶ms, SL("useEmpty"), PH_SEPARATE); + } + zephir_memory_observe(&options); + if (!(zephir_array_isset_long_fetch(&options, ¶ms, 1, 0))) { + ZEPHIR_CPY_WRT(&options, data); + } + if (Z_TYPE_P(&options) == IS_OBJECT) { + zephir_memory_observe(&using); + if (UNEXPECTED(!(zephir_array_isset_string_fetch(&using, ¶ms, SL("using"), 0)))) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_tag_exception_ce, "The 'using' parameter is required", "phalcon/Tag/Select.zep", 101); + return; + } + _1$$19 = Z_TYPE_P(&using) != IS_ARRAY; + if (_1$$19) { + _1$$19 = Z_TYPE_P(&using) != IS_OBJECT; + } + if (UNEXPECTED(_1$$19)) { + ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_tag_exception_ce, "The 'using' parameter should be an array", "phalcon/Tag/Select.zep", 107); + return; + } + } + zephir_array_unset_string(¶ms, SL("using"), PH_SEPARATE); + ZEPHIR_INIT_VAR(&_3); + ZVAL_STRING(&_3, "", &_3); + if (zephir_is_true(&useEmpty)) { + ZEPHIR_INIT_VAR(&_4$$22); + ZEPHIR_GET_CONSTANT(&_4$$22, "PHP_EOL"); + ZEPHIR_INIT_VAR(&_5$$22); + ZEPHIR_CONCAT_SVSVSV(&_5$$22, "\t", &_4$$22); + zephir_concat_self(&code, &_5$$22); + } + if (Z_TYPE_P(&options) == IS_OBJECT) { + ZEPHIR_INIT_VAR(&_8$$23); + ZEPHIR_GET_CONSTANT(&_8$$23, "PHP_EOL"); + ZEPHIR_INIT_VAR(&_9$$23); + ZEPHIR_CONCAT_SV(&_9$$23, "", &_8$$23); + ZEPHIR_CALL_SELF(&_6$$23, "optionsfromresultset", &_7, 0, &options, &using, &value, &_9$$23); + zephir_check_call_status(); + zephir_concat_self(&code, &_6$$23); + } else { + if (Z_TYPE_P(&options) == IS_ARRAY) { + ZEPHIR_INIT_VAR(&_12$$25); + ZEPHIR_GET_CONSTANT(&_12$$25, "PHP_EOL"); + ZEPHIR_INIT_VAR(&_13$$25); + ZEPHIR_CONCAT_SV(&_13$$25, "", &_12$$25); + ZEPHIR_CALL_SELF(&_10$$25, "optionsfromarray", &_11, 0, &options, &value, &_13$$25); + zephir_check_call_status(); + zephir_concat_self(&code, &_10$$25); + } + } + zephir_concat_self_str(&code, SL("")); + RETURN_CCTOR(&code); } -static PHP_METHOD(Phalcon_Html_Attributes, renderAttributes) +static PHP_METHOD(Phalcon_Tag_Select, optionsFromArray) { - zend_bool _4$$3, _10$$5; zend_string *_3; zend_ulong _2; zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_8 = NULL; + zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; - zval *attributes_param = NULL, __$null, __$true, intersect, key, result, results, value, *_0, _1, _5$$4, _6$$4, _7$$4, _9$$4, _11$$6, _12$$6, _13$$6, _14$$6; - zval attributes, order; - zval *this_ptr = getThis(); + zval closeOption, _12$$8, _13$$8, _22$$16, _23$$16; + zval *data_param = NULL, *value, value_sub, *closeOption_param = NULL, strValue, strOptionValue, code, optionValue, optionText, escaped, *_0, _1, _5$$4, _6$$4, _8$$4, _9$$4, _10$$6, _11$$7, _14$$9, _15$$10, _16$$12, _17$$12, _18$$12, _19$$12, _20$$14, _21$$15, _24$$17, _25$$18; + zval data; - ZVAL_UNDEF(&attributes); - ZVAL_UNDEF(&order); - ZVAL_NULL(&__$null); - ZVAL_BOOL(&__$true, 1); - ZVAL_UNDEF(&intersect); - ZVAL_UNDEF(&key); - ZVAL_UNDEF(&result); - ZVAL_UNDEF(&results); - ZVAL_UNDEF(&value); + ZVAL_UNDEF(&data); + ZVAL_UNDEF(&value_sub); + ZVAL_UNDEF(&strValue); + ZVAL_UNDEF(&strOptionValue); + ZVAL_UNDEF(&code); + ZVAL_UNDEF(&optionValue); + ZVAL_UNDEF(&optionText); + ZVAL_UNDEF(&escaped); ZVAL_UNDEF(&_1); ZVAL_UNDEF(&_5$$4); ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_7$$4); + ZVAL_UNDEF(&_8$$4); ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_11$$6); - ZVAL_UNDEF(&_12$$6); - ZVAL_UNDEF(&_13$$6); - ZVAL_UNDEF(&_14$$6); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(1, 1) - Z_PARAM_ARRAY(attributes) + ZVAL_UNDEF(&_10$$6); + ZVAL_UNDEF(&_11$$7); + ZVAL_UNDEF(&_14$$9); + ZVAL_UNDEF(&_15$$10); + ZVAL_UNDEF(&_16$$12); + ZVAL_UNDEF(&_17$$12); + ZVAL_UNDEF(&_18$$12); + ZVAL_UNDEF(&_19$$12); + ZVAL_UNDEF(&_20$$14); + ZVAL_UNDEF(&_21$$15); + ZVAL_UNDEF(&_24$$17); + ZVAL_UNDEF(&_25$$18); + ZVAL_UNDEF(&closeOption); + ZVAL_UNDEF(&_12$$8); + ZVAL_UNDEF(&_13$$8); + ZVAL_UNDEF(&_22$$16); + ZVAL_UNDEF(&_23$$16); + ZEND_PARSE_PARAMETERS_START(3, 3) + Z_PARAM_ARRAY(data) + Z_PARAM_ZVAL(value) + Z_PARAM_STR(closeOption) ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 1, 0, &attributes_param); - zephir_get_arrval(&attributes, attributes_param); - - - ZEPHIR_INIT_VAR(&order); - zephir_create_array(&order, 10, 0); - zephir_array_update_string(&order, SL("rel"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("type"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("for"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("src"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("href"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("action"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("id"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("name"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("value"), &__$null, PH_COPY | PH_SEPARATE); - zephir_array_update_string(&order, SL("class"), &__$null, PH_COPY | PH_SEPARATE); - ZEPHIR_CALL_FUNCTION(&intersect, "array_intersect_key", NULL, 2, &order, &attributes); - zephir_check_call_status(); - ZEPHIR_INIT_VAR(&results); - zephir_fast_array_merge(&results, &intersect, &attributes); - zephir_array_unset_string(&results, SL("escape"), PH_SEPARATE); - ZEPHIR_INIT_VAR(&result); - ZVAL_STRING(&result, ""); - zephir_is_iterable(&results, 0, "phalcon/Html/Attributes.zep", 76); - if (Z_TYPE_P(&results) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&results), _2, _3, _0) + ZEPHIR_METHOD_GLOBALS_PTR = pecalloc(1, sizeof(zephir_method_globals), 0); + zephir_memory_grow_stack(ZEPHIR_METHOD_GLOBALS_PTR, __func__); + zephir_fetch_params(1, 3, 0, &data_param, &value, &closeOption_param); + zephir_get_arrval(&data, data_param); + zephir_get_strval(&closeOption, closeOption_param); + ZEPHIR_INIT_VAR(&code); + ZVAL_STRING(&code, ""); + zephir_is_iterable(&data, 0, "phalcon/Tag/Select.zep", 186); + if (Z_TYPE_P(&data) == IS_ARRAY) { + ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2, _3, _0) { - ZEPHIR_INIT_NVAR(&key); + ZEPHIR_INIT_NVAR(&optionValue); if (_3 != NULL) { - ZVAL_STR_COPY(&key, _3); + ZVAL_STR_COPY(&optionValue, _3); } else { - ZVAL_LONG(&key, _2); - } - ZEPHIR_INIT_NVAR(&value); - ZVAL_COPY(&value, _0); - _4$$3 = Z_TYPE_P(&key) == IS_STRING; - if (_4$$3) { - _4$$3 = Z_TYPE_P(&value) != IS_NULL; + ZVAL_LONG(&optionValue, _2); } - if (_4$$3) { - ZVAL_LONG(&_5$$4, 3); - ZEPHIR_INIT_NVAR(&_6$$4); - ZVAL_STRING(&_6$$4, "utf-8"); - ZEPHIR_CALL_FUNCTION(&_7$$4, "htmlspecialchars", &_8, 285, &value, &_5$$4, &_6$$4, &__$true); + ZEPHIR_INIT_NVAR(&optionText); + ZVAL_COPY(&optionText, _0); + ZEPHIR_CALL_FUNCTION(&escaped, "htmlspecialchars", &_4, 286, &optionValue); + zephir_check_call_status(); + if (Z_TYPE_P(&optionText) == IS_ARRAY) { + ZEPHIR_INIT_NVAR(&_5$$4); + ZEPHIR_GET_CONSTANT(&_5$$4, "PHP_EOL"); + ZEPHIR_CALL_SELF(&_6$$4, "optionsfromarray", &_7, 0, &optionText, value, &closeOption); zephir_check_call_status(); + ZEPHIR_INIT_NVAR(&_8$$4); + ZEPHIR_GET_CONSTANT(&_8$$4, "PHP_EOL"); ZEPHIR_INIT_NVAR(&_9$$4); - ZEPHIR_CONCAT_VSVS(&_9$$4, &key, "=\"", &_7$$4, "\" "); - zephir_concat_self(&result, &_9$$4); + ZEPHIR_CONCAT_SVSVVSV(&_9$$4, "\t", &_5$$4, &_6$$4, "\t", &_8$$4); + zephir_concat_self(&code, &_9$$4); + continue; + } + if (Z_TYPE_P(value) == IS_ARRAY) { + if (zephir_fast_in_array(&optionValue, value)) { + ZEPHIR_INIT_NVAR(&_10$$6); + ZEPHIR_CONCAT_SVSVV(&_10$$6, "\t", &_16$$12, &_17$$12, "\t", &_18$$12); + zephir_concat_self(&code, &_19$$12); + continue; } - if (_10$$5) { - ZVAL_LONG(&_11$$6, 3); - ZEPHIR_INIT_NVAR(&_12$$6); - ZVAL_STRING(&_12$$6, "utf-8"); - ZEPHIR_CALL_FUNCTION(&_13$$6, "htmlspecialchars", &_8, 285, &value, &_11$$6, &_12$$6, &__$true); + if (Z_TYPE_P(value) == IS_ARRAY) { + if (zephir_fast_in_array(&optionValue, value)) { + ZEPHIR_INIT_NVAR(&_20$$14); + ZEPHIR_CONCAT_SVSVV(&_20$$14, "\t", &_10$$23); - ZEPHIR_CALL_SELF(&_8$$23, "optionsfromresultset", &_9, 0, &options, &using, &value, &_11$$23); - zephir_check_call_status(); - zephir_concat_self(&code, &_8$$23); - } else { - if (Z_TYPE_P(&options) == IS_ARRAY) { - ZEPHIR_INIT_VAR(&_14$$25); - ZEPHIR_GET_CONSTANT(&_14$$25, "PHP_EOL"); - ZEPHIR_INIT_VAR(&_15$$25); - ZEPHIR_CONCAT_SV(&_15$$25, "", &_14$$25); - ZEPHIR_CALL_SELF(&_12$$25, "optionsfromarray", &_13, 0, &options, &value, &_15$$25); - zephir_check_call_status(); - zephir_concat_self(&code, &_12$$25); +vv258: + vvch = *++VVCURSOR; + switch (vvch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '\\': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto vv53; + default: goto vv259; + } +vv259: + { + s->statement_position++; + token->opcode = PHVOLT_T_CACHE; + return 0; } - } - zephir_concat_self_str(&code, SL("")); - RETURN_CCTOR(&code); -} - -static PHP_METHOD(Phalcon_Tag_Select, optionsFromArray) -{ - zend_string *_3; - zend_ulong _2; - zephir_method_globals *ZEPHIR_METHOD_GLOBALS_PTR = NULL; - zephir_fcall_cache_entry *_4 = NULL, *_7 = NULL; - zend_long ZEPHIR_LAST_CALL_STATUS; - zval closeOption, _12$$8, _13$$8, _22$$16, _23$$16; - zval *data_param = NULL, *value, value_sub, *closeOption_param = NULL, strValue, strOptionValue, code, optionValue, optionText, escaped, *_0, _1, _5$$4, _6$$4, _8$$4, _9$$4, _10$$6, _11$$7, _14$$9, _15$$10, _16$$12, _17$$12, _18$$12, _19$$12, _20$$14, _21$$15, _24$$17, _25$$18; - zval data; - zval *this_ptr = getThis(); - - ZVAL_UNDEF(&data); - ZVAL_UNDEF(&value_sub); - ZVAL_UNDEF(&strValue); - ZVAL_UNDEF(&strOptionValue); - ZVAL_UNDEF(&code); - ZVAL_UNDEF(&optionValue); - ZVAL_UNDEF(&optionText); - ZVAL_UNDEF(&escaped); - ZVAL_UNDEF(&_1); - ZVAL_UNDEF(&_5$$4); - ZVAL_UNDEF(&_6$$4); - ZVAL_UNDEF(&_8$$4); - ZVAL_UNDEF(&_9$$4); - ZVAL_UNDEF(&_10$$6); - ZVAL_UNDEF(&_11$$7); - ZVAL_UNDEF(&_14$$9); - ZVAL_UNDEF(&_15$$10); - ZVAL_UNDEF(&_16$$12); - ZVAL_UNDEF(&_17$$12); - ZVAL_UNDEF(&_18$$12); - ZVAL_UNDEF(&_19$$12); - ZVAL_UNDEF(&_20$$14); - ZVAL_UNDEF(&_21$$15); - ZVAL_UNDEF(&_24$$17); - ZVAL_UNDEF(&_25$$18); - ZVAL_UNDEF(&closeOption); - ZVAL_UNDEF(&_12$$8); - ZVAL_UNDEF(&_13$$8); - ZVAL_UNDEF(&_22$$16); - ZVAL_UNDEF(&_23$$16); -#if PHP_VERSION_ID >= 80000 - bool is_null_true = 1; - ZEND_PARSE_PARAMETERS_START(3, 3) - Z_PARAM_ARRAY(data) - Z_PARAM_ZVAL(value) - Z_PARAM_STR(closeOption) - ZEND_PARSE_PARAMETERS_END(); -#endif - - - ZEPHIR_MM_GROW(); - zephir_fetch_params(1, 3, 0, &data_param, &value, &closeOption_param); - zephir_get_arrval(&data, data_param); - zephir_get_strval(&closeOption, closeOption_param); - - - ZEPHIR_INIT_VAR(&code); - ZVAL_STRING(&code, ""); - zephir_is_iterable(&data, 0, "phalcon/Tag/Select.zep", 186); - if (Z_TYPE_P(&data) == IS_ARRAY) { - ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(&data), _2, _3, _0) - { - ZEPHIR_INIT_NVAR(&optionValue); - if (_3 != NULL) { - ZVAL_STR_COPY(&optionValue, _3); - } else { - ZVAL_LONG(&optionValue, _2); +vv260: + vvch = *++VVCURSOR; + switch (vvch) { + case 'N': + case 'n': goto vv290; + default: goto vv54; } - ZEPHIR_INIT_NVAR(&optionText); - ZVAL_COPY(&optionText, _0); - ZEPHIR_CALL_FUNCTION(&escaped, "htmlspecialchars", &_4, 285, &optionValue); - zephir_check_call_status(); - if (Z_TYPE_P(&optionText) == IS_ARRAY) { - ZEPHIR_INIT_NVAR(&_5$$4); - ZEPHIR_GET_CONSTANT(&_5$$4, "PHP_EOL"); - ZEPHIR_CALL_SELF(&_6$$4, "optionsfromarray", &_7, 0, &optionText, value, &closeOption); - zephir_check_call_status(); - ZEPHIR_INIT_NVAR(&_8$$4); - ZEPHIR_GET_CONSTANT(&_8$$4, "PHP_EOL"); - ZEPHIR_INIT_NVAR(&_9$$4); - ZEPHIR_CONCAT_SVSVVSV(&_9$$4, "\t", &_5$$4, &_6$$4, "\t", &_8$$4); - zephir_concat_self(&code, &_9$$4); - continue; +vv261: + vvch = *++VVCURSOR; + switch (vvch) { + case 'L': + case 'l': goto vv291; + default: goto vv54; } - if (Z_TYPE_P(value) == IS_ARRAY) { - if (zephir_fast_in_array(&optionValue, value)) { - ZEPHIR_INIT_NVAR(&_10$$6); - ZEPHIR_CONCAT_SVSVV(&_10$$6, "\t", &_16$$12, &_17$$12, "\t", &_18$$12); - zephir_concat_self(&code, &_19$$12); - continue; - } - if (Z_TYPE_P(value) == IS_ARRAY) { - if (zephir_fast_in_array(&optionValue, value)) { - ZEPHIR_INIT_NVAR(&_20$$14); - ZEPHIR_CONCAT_SVSVV(&_20$$14, "\t