diff options
Diffstat (limited to 'dev-php/pecl-xrange')
-rw-r--r-- | dev-php/pecl-xrange/Manifest | 4 | ||||
-rw-r--r-- | dev-php/pecl-xrange/files/1.3.2-fixes.patch | 133 | ||||
-rw-r--r-- | dev-php/pecl-xrange/metadata.xml | 8 | ||||
-rw-r--r-- | dev-php/pecl-xrange/pecl-xrange-1.3.2-r2.ebuild | 24 |
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(¤tValue); /* 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(¤tValue); /* 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=() |