root/ext/spl/spl_engine.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. spl_instantiate
  2. spl_offset_convert_to_long

   1 /*
   2    +----------------------------------------------------------------------+
   3    | PHP Version 5                                                        |
   4    +----------------------------------------------------------------------+
   5    | Copyright (c) 1997-2016 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                 return (long)Z_DVAL_P(offset);
  54         case IS_RESOURCE:
  55         case IS_BOOL:
  56         case IS_LONG:
  57                 return Z_LVAL_P(offset);
  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  */

/* [<][>][^][v][top][bottom][index][help] */