From b5eaa1005a79aa0163bd7f3372f2ae371ddb9684 Mon Sep 17 00:00:00 2001 From: Etienne Kneuss Date: Fri, 6 Jun 2008 23:53:43 +0000 Subject: MFH: Implements C arrays wrapper --- ext/spl/spl_engine.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'ext/spl/spl_engine.c') diff --git a/ext/spl/spl_engine.c b/ext/spl/spl_engine.c index 72dd6a71bf..4ca8ba646d 100755 --- a/ext/spl/spl_engine.c +++ b/ext/spl/spl_engine.c @@ -43,6 +43,26 @@ PHPAPI void spl_instantiate(zend_class_entry *pce, zval **object, int alloc TSRM } /* }}} */ +PHPAPI long spl_offset_convert_to_long(zval *offset TSRMLS_DC) /* {{{ */ +{ + switch(Z_TYPE_P(offset)) { + case IS_STRING: + ZEND_HANDLE_NUMERIC(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, idx); + break; + case IS_DOUBLE: + case IS_RESOURCE: + case IS_BOOL: + case IS_LONG: + if (Z_TYPE_P(offset) == IS_DOUBLE) { + return (long)Z_DVAL_P(offset); + } else { + return Z_LVAL_P(offset); + } + } + return -1; +} +/* }}} */ + /* * Local variables: * tab-width: 4 -- cgit v1.2.1