summaryrefslogtreecommitdiff
path: root/dev-php/pecl-xrange
diff options
context:
space:
mode:
Diffstat (limited to 'dev-php/pecl-xrange')
-rw-r--r--dev-php/pecl-xrange/Manifest4
-rw-r--r--dev-php/pecl-xrange/files/1.3.2-fixes.patch133
-rw-r--r--dev-php/pecl-xrange/metadata.xml8
-rw-r--r--dev-php/pecl-xrange/pecl-xrange-1.3.2-r2.ebuild24
4 files changed, 169 insertions, 0 deletions
diff --git a/dev-php/pecl-xrange/Manifest b/dev-php/pecl-xrange/Manifest
new file mode 100644
index 000000000000..44ae5f37982c
--- /dev/null
+++ b/dev-php/pecl-xrange/Manifest
@@ -0,0 +1,4 @@
+AUX 1.3.2-fixes.patch 4474 BLAKE2B 026720c5f485a7bdc279988bd25b02809b213c7d5e220defaa4c9e2bb6c666bf6c7df102a9593c18404c20e4add493814550d3f8828cbbc1ba666c9b8a5e565a SHA512 66b110209dbdeb3ea8f79d98eb2549ace61d2272130472f75daf435c92ae3bd3ff354f3eb4ff96e374559521f45cedfbb0c1c3c5d189e5138a1765e695dbae05
+DIST xrange-1.3.2.tgz 8767 BLAKE2B bc68954f4bb81e10e71583d58d0d513fbfc8f591469fa520232b13ee46d472a3f757911ce3f3e8d8cd0b24be92fd18869fab5bc2bb5d1ea1421cd0949f45ff96 SHA512 76b43867d1225249347e489dd24a0d278b45288e26f90b0678b657ac21e0d45c5c90496ca13b534f581643d865b266dabc2cad41fec0214951a4630e98efa5e4
+EBUILD pecl-xrange-1.3.2-r2.ebuild 424 BLAKE2B 0846710e35fbfd04e0f54068b2834fbb674ee4316d621531112baa8d2e2bdd02abfd9977c3b6daf9a2a6143f5106451e4f969ec699f74ee45ff356efa48505e5 SHA512 c68d85e1d88219617955a6748037470632ffe6fec3854e3d5fcefeff980df4e8a0d6b623638c9a3eff2b75c380691d11f6838e0d18e0620da8941832caec49ef
+MISC metadata.xml 239 BLAKE2B 9b7c5dcb74289073481cf07031b7a92f32496cc1097becb074d74a8fbb8133de429ce1baf284e446e44132943c8b32e6b824570f15828588e42ea49ef5661f00 SHA512 2181b874bfe8cd31e7730d8207e26cfd2f272eaf2d1b57ae0faff126347a5298fa1c506d9107e1da9736c8a0ed9c8c339e4d9509a8726b79dbe86e073c12dee0
diff --git a/dev-php/pecl-xrange/files/1.3.2-fixes.patch b/dev-php/pecl-xrange/files/1.3.2-fixes.patch
new file mode 100644
index 000000000000..4664a5d1feb2
--- /dev/null
+++ b/dev-php/pecl-xrange/files/1.3.2-fixes.patch
@@ -0,0 +1,133 @@
+--- a/xrange.c 2012/07/28 23:20:09 326859
++++ b/xrange.c 2013/10/06 11:48:38 331707
+@@ -175,21 +175,21 @@
+ zend_class_implements(php_xrange_xri_entry TSRMLS_CC, 1, spl_ce_Countable);
+
+ /* Register Class: OddFilterIterator */
+- memset(&ce, sizeof(ce), '\0');
++ memset(&ce, 0, sizeof(ce));
+ INIT_CLASS_ENTRY(ce, PHP_XRANGE_ODDFILTERITERATOR_NAME, php_xrange_OddFilterIterator_functions);
+ ce.name_length = strlen(PHP_XRANGE_ODDFILTERITERATOR_NAME);
+ php_xrange_OddFilterIterator_entry =
+ zend_register_internal_class_ex(&ce, spl_ce_FilterIterator, NULL TSRMLS_CC);
+
+ /* Register Class: EvenFilterIterator */
+- memset(&ce, sizeof(ce), '\0');
++ memset(&ce, 0, sizeof(ce));
+ INIT_CLASS_ENTRY(ce, PHP_XRANGE_EVENFILTERITERATOR_NAME, php_xrange_EvenFilterIterator_functions);
+ ce.name_length = strlen(PHP_XRANGE_EVENFILTERITERATOR_NAME);
+ php_xrange_EvenFilterIterator_entry =
+ zend_register_internal_class_ex(&ce, spl_ce_FilterIterator, NULL TSRMLS_CC);
+
+ /* Register Class: NumericFilterIterator */
+- memset(&ce, sizeof(ce), '\0');
++ memset(&ce, 0, sizeof(ce));
+ INIT_CLASS_ENTRY(ce, PHP_XRANGE_NUMERICFILTERITERATOR_NAME, php_xrange_NumericFilterIterator_functions);
+ ce.name_length = strlen(PHP_XRANGE_NUMERICFILTERITERATOR_NAME);
+ php_xrange_NumericFilterIterator_entry =
+@@ -225,13 +225,16 @@
+ {
+ if (return_value_used) {
+ int param_count = ZEND_NUM_ARGS();
++ zval ***params;
++ zval *retval = NULL;
++ zval methodName;
+
+ /* because I'm passing the arguments as an array, I'll need to manually
+ check arg length. */
+ if (param_count != 2 && param_count != 3) WRONG_PARAM_COUNT;
+
+ /* retrieve the function's argument list */
+- zval ***params = (zval ***) safe_emalloc(param_count, sizeof(zval*), 0);
++ params = (zval ***) safe_emalloc(param_count, sizeof(zval*), 0);
+ if (zend_get_parameters_array_ex(param_count, params) == FAILURE) {
+ efree(params);
+ WRONG_PARAM_COUNT;
+@@ -244,8 +247,6 @@
+ );
+
+ /* setup call to XRangeIterator's constructor (must do manually) */
+- zval *retval = NULL;
+- zval methodName;
+ ZVAL_STRING(&methodName, "__construct", 0);
+
+ /* pass all arguments through to the XRangeIterator constructor */
+@@ -286,6 +287,9 @@
+ Return a configured range iterator / generator */
+ PHP_METHOD(PHP_XRANGE_XRI_NAME, __construct)
+ {
++ xrange_module_storage *internalStorage;
++ double iterations;
++
+ if (!getThis()) {
+ php_error_docref(
+ NULL TSRMLS_CC, E_WARNING, "Don't call the constructor statically"
+@@ -293,7 +297,7 @@
+ RETURN_FALSE;
+ }
+
+- xrange_module_storage *internalStorage = PHP_XRANGE_ZOS_GET;
++ internalStorage = PHP_XRANGE_ZOS_GET;
+
+ /* parse argument list */
+ internalStorage->step = 1.0; /* default */
+@@ -322,7 +326,7 @@
+ ) internalStorage->step *= -1;
+
+ /* calculate the total number of iterations before completion */
+- double iterations = fabs(
++ iterations = fabs(
+ (internalStorage->high - internalStorage->low) / internalStorage->step
+ );
+
+@@ -453,6 +457,7 @@
+ PHP_METHOD(PHP_XRANGE_ODDFILTERITERATOR_NAME, accept)
+ {
+ zval *currentValue;
++ int isOdd;
+
+ // method A: bypass getInnerIterator() call
+ spl_dual_it_object *intern =
+@@ -464,7 +469,7 @@
+ // TODO: method B - use getInnerIterator() w/ compilation option
+
+ if (Z_TYPE_P(currentValue) != IS_LONG) convert_to_long(currentValue);
+- int isOdd = Z_LVAL_P(currentValue) & 1;
++ isOdd = Z_LVAL_P(currentValue) & 1;
+
+ zval_ptr_dtor(&currentValue); /* clean-up */
+ RETURN_BOOL(isOdd);
+@@ -476,6 +481,7 @@
+ PHP_METHOD(PHP_XRANGE_EVENFILTERITERATOR_NAME, accept)
+ {
+ zval *currentValue;
++ int isEven;
+
+ /* method A: bypass getInnerIterator() call */
+ spl_dual_it_object *intern =
+@@ -487,7 +493,7 @@
+ /* TODO: method B - use getInnerIterator() w/ compilation option */
+
+ if (Z_TYPE_P(currentValue) != IS_LONG) convert_to_long(currentValue);
+- int isEven = !(Z_LVAL_P(currentValue) & 1);
++ isEven = !(Z_LVAL_P(currentValue) & 1);
+
+ zval_ptr_dtor(&currentValue); /* clean-up */
+ RETURN_BOOL(isEven);
+@@ -499,6 +505,7 @@
+ PHP_METHOD(PHP_XRANGE_NUMERICFILTERITERATOR_NAME, accept)
+ {
+ zval *currentValue;
++ int isNumeric;
+
+ /* method A: bypass getInnerIterator() call */
+ spl_dual_it_object *intern =
+@@ -509,8 +516,6 @@
+ );
+ /* TODO: method B - use getInnerIterator() w/ compilation option */
+
+- int isNumeric;
+-
+ /* this code comes from is_numeric() the implementation. it's here to
+ * to eliminate the overhead of a PHP function call. */
+ switch (Z_TYPE_P(currentValue)) {
diff --git a/dev-php/pecl-xrange/metadata.xml b/dev-php/pecl-xrange/metadata.xml
new file mode 100644
index 000000000000..b86acf66c756
--- /dev/null
+++ b/dev-php/pecl-xrange/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>php-bugs@gentoo.org</email>
+ <name>PHP</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-php/pecl-xrange/pecl-xrange-1.3.2-r2.ebuild b/dev-php/pecl-xrange/pecl-xrange-1.3.2-r2.ebuild
new file mode 100644
index 000000000000..bc6d23e24b29
--- /dev/null
+++ b/dev-php/pecl-xrange/pecl-xrange-1.3.2-r2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PHP_EXT_NAME="xrange"
+PHP_EXT_INI="yes"
+PHP_EXT_ZENDEXT="no"
+
+USE_PHP="php5-6"
+
+inherit php-ext-pecl-r3
+
+KEYWORDS="~amd64 ~x86"
+
+DESCRIPTION="Implementation of weak references"
+LICENSE="PHP-3"
+SLOT="0"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}"
+PATCHES=( "${FILESDIR}/1.3.2-fixes.patch" )
+PHP_EXT_ECONF_ARGS=()