PHP  
 PHP: Test and Code Coverage Analysis
downloads | QA | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
 

LCOV - code coverage report
Current view: top level - ext/filter - callback_filter.c (source / functions) Hit Total Coverage
Test: PHP Code Coverage Lines: 17 17 100.0 %
Date: 2014-07-25 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :   +----------------------------------------------------------------------+
       3             :   | PHP Version 5                                                        |
       4             :   +----------------------------------------------------------------------+
       5             :   | Copyright (c) 1997-2014 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: Derick Rethans <derick@php.net>                             |
      16             :   +----------------------------------------------------------------------+
      17             : */
      18             : 
      19             : /* $Id$ */
      20             : 
      21             : #include "php_filter.h"
      22             : 
      23          39 : void php_filter_callback(PHP_INPUT_FILTER_PARAM_DECL)
      24             : {
      25             :         zval *retval_ptr;
      26             :         zval ***args;
      27             :         int status;
      28             : 
      29          39 :         if (!option_array || !zend_is_callable(option_array, IS_CALLABLE_CHECK_NO_ACCESS, NULL TSRMLS_CC)) {
      30           3 :                 php_error_docref(NULL TSRMLS_CC, E_WARNING, "First argument is expected to be a valid callback");
      31           3 :                 zval_dtor(value);
      32           3 :                 Z_TYPE_P(value) = IS_NULL;
      33           3 :                 return;
      34             :         }
      35             : 
      36          36 :         args = safe_emalloc(sizeof(zval **), 1, 0);
      37          36 :         args[0] = &value;
      38             :         
      39          36 :         status = call_user_function_ex(EG(function_table), NULL, option_array, &retval_ptr, 1, args, 0, NULL TSRMLS_CC);
      40             : 
      41          71 :         if (status == SUCCESS && retval_ptr != NULL) {
      42          35 :                 if (retval_ptr != value) {
      43          33 :                         zval_dtor(value);
      44          99 :                         COPY_PZVAL_TO_ZVAL(*value, retval_ptr);
      45             :                 } else {
      46           2 :                         zval_ptr_dtor(&retval_ptr);
      47             :                 }
      48             :         } else {
      49           1 :                 zval_dtor(value);
      50           1 :                 Z_TYPE_P(value) = IS_NULL;
      51             :         }
      52             : 
      53          36 :         efree(args);
      54             : }
      55             : 
      56             : /*
      57             :  * Local variables:
      58             :  * tab-width: 4
      59             :  * c-basic-offset: 4
      60             :  * End:
      61             :  * vim600: noet sw=4 ts=4 fdm=marker
      62             :  * vim<600: noet sw=4 ts=4
      63             :  */

Generated by: LCOV version 1.10

Generated at Fri, 25 Jul 2014 16:54:20 +0000 (3 days ago)

Copyright © 2005-2014 The PHP Group
All rights reserved.