Annotation of embedaddon/php/ext/spl/spl_engine.c, revision 1.1.1.2

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: {
1.1.1.2 ! misho      48:        switch (Z_TYPE_P(offset)) {
1.1       misho      49:        case IS_STRING:
                     50:                ZEND_HANDLE_NUMERIC(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, idx);
                     51:                break;
                     52:        case IS_DOUBLE:
1.1.1.2 ! misho      53:                return (long)Z_DVAL_P(offset);
1.1       misho      54:        case IS_RESOURCE:
                     55:        case IS_BOOL:
                     56:        case IS_LONG:
1.1.1.2 ! misho      57:                return Z_LVAL_P(offset);
1.1       misho      58:        }
                     59:        return -1;
                     60: } 
                     61: /* }}} */
                     62: 
                     63: /*
                     64:  * Local variables:
                     65:  * tab-width: 4
                     66:  * c-basic-offset: 4
                     67:  * End:
                     68:  * vim600: fdm=marker
                     69:  * vim: noet sw=4 ts=4
                     70:  */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>