summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0f16925652b49bdefaa0ae2264446a845a5bb109.patch223
-rw-r--r--95120639f0bfb6d4a6fe076ddf1b3016eda5e664.patch40
-rw-r--r--PHPINFO2
-rw-r--r--REFLECTION2
-rw-r--r--php-componere.spec13
5 files changed, 7 insertions, 273 deletions
diff --git a/0f16925652b49bdefaa0ae2264446a845a5bb109.patch b/0f16925652b49bdefaa0ae2264446a845a5bb109.patch
deleted file mode 100644
index c89b304..0000000
--- a/0f16925652b49bdefaa0ae2264446a845a5bb109.patch
+++ /dev/null
@@ -1,223 +0,0 @@
-From 0f16925652b49bdefaa0ae2264446a845a5bb109 Mon Sep 17 00:00:00 2001
-From: Joe Watkins <krakjoe@php.net>
-Date: Thu, 22 Aug 2019 07:38:29 +0200
-Subject: [PATCH] fixes for 7.4
-
----
- src/definition.c | 79 ++++++++++++++++++++++++++++++++++++++----------
- src/definition.h | 5 +++
- src/patch.c | 12 ++++++++
- tests/086.phpt | 5 +--
- 4 files changed, 81 insertions(+), 20 deletions(-)
-
-diff --git a/src/definition.c b/src/definition.c
-index a569af3..ae362d2 100644
---- a/src/definition.c
-+++ b/src/definition.c
-@@ -372,15 +372,17 @@ static zend_always_inline void php_componere_relink_objects(zend_objects_store *
- } else if (instanceof_function(object->ce, zend_ce_closure)) {
- zend_closure_t *closure = (zend_closure_t*) object;
-
-+ if (closure->func.type == ZEND_USER_FUNCTION) {
- #if PHP_VERSION_ID >= 70400
-- if (RUN_TIME_CACHE(&closure->func.op_array)) {
-- memset(RUN_TIME_CACHE(&closure->func.op_array), 0, closure->func.op_array.cache_size);
-- }
-+ if (RUN_TIME_CACHE(&closure->func.op_array)) {
-+ memset(RUN_TIME_CACHE(&closure->func.op_array), 0, closure->func.op_array.cache_size);
-+ }
- #else
-- if (closure->func.op_array.run_time_cache) {
-- memset(closure->func.op_array.run_time_cache, 0, closure->func.op_array.cache_size);
-- }
-+ if (closure->func.op_array.run_time_cache) {
-+ memset(closure->func.op_array.run_time_cache, 0, closure->func.op_array.cache_size);
-+ }
- #endif
-+ }
-
- if (closure->called_scope == parent) {
- closure->called_scope = def;
-@@ -553,9 +555,7 @@ PHP_METHOD(Definition, __construct)
- break;
- }
-
-- if (!instanceof_function(o->ce, ce)) {
-- zend_do_implement_interface(o->ce, ce);
-- }
-+ zend_do_implement_interface(o->ce, ce);
- }
- } ZEND_HASH_FOREACH_END();
-
-@@ -565,8 +565,52 @@ PHP_METHOD(Definition, __construct)
- if (!o->ce->info.user.filename) {
- o->ce->info.user.filename = name;
- }
-+
-+#if PHP_VERSION_ID >= 70400
-+ o->ce->ce_flags |= ZEND_ACC_RESOLVED_INTERFACES;
-+#endif
- }
-
-+#if PHP_VERSION_ID >= 70400
-+void php_componere_definition_properties_table_rebuild(zend_class_entry *ce)
-+{
-+ zend_property_info **table, *prop;
-+ size_t size;
-+ if (ce->default_properties_count == 0 || ce->properties_info_table) {
-+ return;
-+ }
-+
-+ size = sizeof(zend_property_info *) * ce->default_properties_count;
-+ if (ce->type == ZEND_USER_CLASS) {
-+ ce->properties_info_table = table = zend_arena_alloc(&CG(arena), size);
-+ } else {
-+ ce->properties_info_table = table = pemalloc(size, 1);
-+ }
-+
-+ /* Dead slots may be left behind during inheritance. Make sure these are NULLed out. */
-+ memset(table, 0, size);
-+
-+ if (ce->parent && ce->parent->default_properties_count != 0) {
-+ zend_property_info **parent_table = ce->parent->properties_info_table;
-+ memcpy(
-+ table, parent_table,
-+ sizeof(zend_property_info *) * ce->parent->default_properties_count
-+ );
-+
-+ /* Child did not add any new properties, we are done */
-+ if (ce->default_properties_count == ce->parent->default_properties_count) {
-+ return;
-+ }
-+ }
-+
-+ ZEND_HASH_FOREACH_PTR(&ce->properties_info, prop) {
-+ if (prop->ce == ce && (prop->flags & ZEND_ACC_STATIC) == 0) {
-+ table[OBJ_PROP_TO_NUM(prop->offset)] = prop;
-+ }
-+ } ZEND_HASH_FOREACH_END();
-+}
-+#endif
-+
- PHP_METHOD(Definition, register)
- {
- php_componere_definition_t *o =
-@@ -626,6 +670,10 @@ PHP_METHOD(Definition, register)
- o->registered = 1;
-
- zend_string_release(name);
-+
-+#if PHP_VERSION_ID >= 70400
-+ php_componere_definition_properties_table_rebuild(o->ce);
-+#endif
- }
-
- ZEND_BEGIN_ARG_INFO_EX(php_componere_definition_method, 0, 0, 2)
-@@ -750,7 +798,7 @@ PHP_METHOD(Definition, addTrait)
-
- o->ce->ce_flags |= ZEND_ACC_IMPLEMENT_TRAITS;
-
-- zend_do_link_class(o->ce);
-+ zend_do_link_class(o->ce, NULL);
-
- o->ce->num_traits = num_traits + 1;
- o->ce->trait_names -= num_traits;
-@@ -788,6 +836,10 @@ PHP_METHOD(Definition, addInterface)
- zend_do_implement_interface(o->ce, interface);
- }
-
-+#if PHP_VERSION_ID >= 70400
-+ o->ce->ce_flags |= ZEND_ACC_RESOLVED_INTERFACES;
-+#endif
-+
- RETURN_ZVAL(getThis(), 1, 0);
- }
-
-@@ -858,7 +910,7 @@ PHP_METHOD(Definition, addProperty)
- php_componere_value_addref(value);
-
- #if PHP_VERSION_ID >= 70400
-- zend_do_link_class(o->ce);
-+ zend_do_link_class(o->ce, NULL);
- #endif
- }
-
-@@ -909,16 +961,11 @@ PHP_METHOD(Definition, addConstant)
- return;
- }
-
--
- zend_declare_class_constant_ex(
- o->ce, name,
- php_componere_value_default(value),
- php_componere_value_access(value), NULL);
-
--#if PHP_VERSION_ID >= 70400
-- zend_do_link_class(o->ce);
--#endif
--
- RETURN_ZVAL(getThis(), 1, 0);
- }
-
-diff --git a/src/definition.h b/src/definition.h
-index cfa306c..c30da51 100644
---- a/src/definition.h
-+++ b/src/definition.h
-@@ -39,4 +39,9 @@ typedef struct _php_componere_definition_t {
- extern void php_componere_definition_inherit(zend_class_entry *ce, zend_class_entry *parent);
- extern void php_componere_definition_copy(zend_class_entry *ce, zend_class_entry *parent);
- extern void php_componere_definition_parent(zend_class_entry *ce, zend_class_entry *parent);
-+
-+#if PHP_VERSION_ID >= 70400
-+extern void php_componere_definition_properties_table_rebuild(zend_class_entry *ce);
-+#endif
-+
- #endif
-diff --git a/src/patch.c b/src/patch.c
-index 84772d6..79f2dce 100644
---- a/src/patch.c
-+++ b/src/patch.c
-@@ -146,6 +146,10 @@ PHP_METHOD(Patch, __construct)
-
- o->ce->ce_flags &= ~ZEND_ACC_IMPLICIT_ABSTRACT_CLASS;
- }
-+
-+#if PHP_VERSION_ID >= 70400
-+ o->ce->ce_flags |= ZEND_ACC_RESOLVED_INTERFACES;
-+#endif
- }
-
- PHP_METHOD(Patch, apply)
-@@ -270,6 +274,14 @@ PHP_METHOD(Patch, derive)
- r->saved->refcount++;
-
- ZVAL_COPY(&r->instance, instance);
-+
-+#if PHP_VERSION_ID >= 70400
-+ r->ce->ce_flags |= ZEND_ACC_RESOLVED_INTERFACES;
-+#endif
-+
-+#if PHP_VERSION_ID >= 70400
-+ php_componere_definition_properties_table_rebuild(r->ce);
-+#endif
- }
-
- static zend_function_entry php_componere_patch_methods[] = {
-diff --git a/tests/086.phpt b/tests/086.phpt
-index 70c8786..a47e857 100644
---- a/tests/086.phpt
-+++ b/tests/086.phpt
-@@ -37,12 +37,9 @@ echo "\n";
- $first->revert();
-
- printf("first=%d second=%d ", $first->isApplied(), $second->isApplied());
--echo (string) $instance;
--echo "\n";
- ?>
- --EXPECTF--
- first=1 second=0 ok
- first=0 second=1 ko
- first=1 second=0 ok
--first=0 second=0
--%s fatal error: Object of class DateTime could not be converted to string in %s on line 37
-+first=0 second=0
diff --git a/95120639f0bfb6d4a6fe076ddf1b3016eda5e664.patch b/95120639f0bfb6d4a6fe076ddf1b3016eda5e664.patch
deleted file mode 100644
index cff7ace..0000000
--- a/95120639f0bfb6d4a6fe076ddf1b3016eda5e664.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 95120639f0bfb6d4a6fe076ddf1b3016eda5e664 Mon Sep 17 00:00:00 2001
-From: Joe Watkins <krakjoe@php.net>
-Date: Sun, 16 Jun 2019 08:34:10 +0200
-Subject: [PATCH] fix 7.4 build
-
----
- src/definition.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/definition.c b/src/definition.c
-index 2655a7f..659e65b 100644
---- a/src/definition.c
-+++ b/src/definition.c
-@@ -751,7 +751,7 @@ PHP_METHOD(Definition, addTrait)
-
- o->ce->ce_flags |= ZEND_ACC_IMPLEMENT_TRAITS;
-
-- zend_do_link_class(o->ce, NULL);
-+ zend_do_link_class(o->ce);
-
- o->ce->num_traits = num_traits + 1;
- o->ce->trait_names -= num_traits;
-@@ -859,7 +859,7 @@ PHP_METHOD(Definition, addProperty)
- php_componere_value_addref(value);
-
- #if PHP_VERSION_ID >= 70400
-- zend_do_link_class(o->ce, NULL);
-+ zend_do_link_class(o->ce);
- #endif
- }
-
-@@ -917,7 +917,7 @@ PHP_METHOD(Definition, addConstant)
- php_componere_value_access(value), NULL);
-
- #if PHP_VERSION_ID >= 70400
-- zend_do_link_class(o->ce, NULL);
-+ zend_do_link_class(o->ce);
- #endif
-
- RETURN_ZVAL(getThis(), 1, 0);
diff --git a/PHPINFO b/PHPINFO
index d9a5828..5004c5b 100644
--- a/PHPINFO
+++ b/PHPINFO
@@ -2,4 +2,4 @@
componere
componere support => enabled
-componere version => 3.1.0
+componere version => 3.1.1
diff --git a/REFLECTION b/REFLECTION
index 20b4da7..ca3b676 100644
--- a/REFLECTION
+++ b/REFLECTION
@@ -1,4 +1,4 @@
-Extension [ <persistent> extension #84 componere version 3.1.0 ] {
+Extension [ <persistent> extension #82 componere version 3.1.1 ] {
- Dependencies {
Dependency [ reflection (Required) ]
diff --git a/php-componere.spec b/php-componere.spec
index d75d5f9..bfd1231 100644
--- a/php-componere.spec
+++ b/php-componere.spec
@@ -18,15 +18,12 @@
Summary: Composing PHP classes at runtime
Name: %{?scl_prefix}php-componere
-Version: 3.1.0
-Release: 4%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Version: 3.1.1
+Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
License: PHP
URL: https://github.com/%{gh_owner}/%{gh_project}
Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
-Patch0: https://github.com/krakjoe/componere/commit/95120639f0bfb6d4a6fe076ddf1b3016eda5e664.patch
-Patch1: https://github.com/krakjoe/componere/commit/0f16925652b49bdefaa0ae2264446a845a5bb109.patch
-
BuildRequires: %{?dtsprefix}gcc
BuildRequires: %{?scl_prefix}php-devel > 7.1
BuildRequires: %{?scl_prefix}php-pear
@@ -98,9 +95,6 @@ sed -e 's/role="test"/role="src"/' \
-i package.xml
cd NTS
-%patch0 -p1 -b .up1
-%patch1 -p1 -b .up2
-
# Sanity check, really often broken
extver=$(sed -n '/define PHP_COMPONERE_VERSION/{s/.* "//;s/".*$//;p}' php_componere.h)
if test "x${extver}" != "x%{version}"; then
@@ -208,6 +202,9 @@ REPORT_EXIT_STATUS=1 \
%changelog
+* Wed Sep 18 2019 Remi Collet <remi@remirepo.net> - 3.1.1-1
+- update to 3.1.1
+
* Fri Sep 6 2019 Remi Collet <remi@remirepo.net> - 3.1.0-4
- add upstream patches for 7.4.0RC1