Annotation of embedaddon/php/ext/spl/spl_engine.c, revision 1.1.1.1
1.1 misho 1: /*
2: +----------------------------------------------------------------------+
3: | PHP Version 5 |
4: +----------------------------------------------------------------------+
5: | Copyright (c) 1997-2012 The PHP Group |
6: +----------------------------------------------------------------------+
7: | This source file is subject to version 3.01 of the PHP license, |
8: | that is bundled with this package in the file LICENSE, and is |
9: | available through the world-wide-web at the following url: |
10: | http://www.php.net/license/3_01.txt |
11: | If you did not receive a copy of the PHP license and are unable to |
12: | obtain it through the world-wide-web, please send a note to |
13: | license@php.net so we can mail you a copy immediately. |
14: +----------------------------------------------------------------------+
15: | Authors: Marcus Boerger <helly@php.net> |
16: +----------------------------------------------------------------------+
17: */
18:
19: #ifdef HAVE_CONFIG_H
20: # include "config.h"
21: #endif
22:
23: #include "php.h"
24: #include "php_ini.h"
25: #include "ext/standard/info.h"
26: #include "zend_interfaces.h"
27:
28: #include "php_spl.h"
29: #include "spl_functions.h"
30: #include "spl_engine.h"
31:
32: #include "spl_array.h"
33:
34: /* {{{ spl_instantiate */
35: PHPAPI void spl_instantiate(zend_class_entry *pce, zval **object, int alloc TSRMLS_DC)
36: {
37: if (alloc) {
38: ALLOC_ZVAL(*object);
39: }
40: object_init_ex(*object, pce);
41: Z_SET_REFCOUNT_PP(object, 1);
42: Z_SET_ISREF_PP(object); /* check if this can be hold always */
43: }
44: /* }}} */
45:
46: PHPAPI long spl_offset_convert_to_long(zval *offset TSRMLS_DC) /* {{{ */
47: {
48: switch(Z_TYPE_P(offset)) {
49: case IS_STRING:
50: ZEND_HANDLE_NUMERIC(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, idx);
51: break;
52: case IS_DOUBLE:
53: case IS_RESOURCE:
54: case IS_BOOL:
55: case IS_LONG:
56: if (Z_TYPE_P(offset) == IS_DOUBLE) {
57: return (long)Z_DVAL_P(offset);
58: } else {
59: return Z_LVAL_P(offset);
60: }
61: }
62: return -1;
63: }
64: /* }}} */
65:
66: /*
67: * Local variables:
68: * tab-width: 4
69: * c-basic-offset: 4
70: * End:
71: * vim600: fdm=marker
72: * vim: noet sw=4 ts=4
73: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>