LTP GCOV extension - code coverage report
Current view: directory - ext/pcre/pcrelib - pcre_refcount.c
Test: PHP Code Coverage
Date: 2007-04-10 Instrumented lines: 5
Code covered: 0.0 % Executed lines: 0
Legend: not executed executed

       1                 : /*************************************************
       2                 : *      Perl-Compatible Regular Expressions       *
       3                 : *************************************************/
       4                 : 
       5                 : /* PCRE is a library of functions to support regular expressions whose syntax
       6                 : and semantics are as close as possible to those of the Perl 5 language.
       7                 : 
       8                 :                        Written by Philip Hazel
       9                 :            Copyright (c) 1997-2006 University of Cambridge
      10                 : 
      11                 : -----------------------------------------------------------------------------
      12                 : Redistribution and use in source and binary forms, with or without
      13                 : modification, are permitted provided that the following conditions are met:
      14                 : 
      15                 :     * Redistributions of source code must retain the above copyright notice,
      16                 :       this list of conditions and the following disclaimer.
      17                 : 
      18                 :     * Redistributions in binary form must reproduce the above copyright
      19                 :       notice, this list of conditions and the following disclaimer in the
      20                 :       documentation and/or other materials provided with the distribution.
      21                 : 
      22                 :     * Neither the name of the University of Cambridge nor the names of its
      23                 :       contributors may be used to endorse or promote products derived from
      24                 :       this software without specific prior written permission.
      25                 : 
      26                 : THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
      27                 : AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
      28                 : IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
      29                 : ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
      30                 : LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
      31                 : CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
      32                 : SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
      33                 : INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
      34                 : CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
      35                 : ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
      36                 : POSSIBILITY OF SUCH DAMAGE.
      37                 : -----------------------------------------------------------------------------
      38                 : */
      39                 : 
      40                 : 
      41                 : /* This module contains the external function pcre_refcount(), which is an
      42                 : auxiliary function that can be used to maintain a reference count in a compiled
      43                 : pattern data block. This might be helpful in applications where the block is
      44                 : shared by different users. */
      45                 : 
      46                 : #include "pcre_internal.h"
      47                 : 
      48                 : 
      49                 : /*************************************************
      50                 : *           Maintain reference count             *
      51                 : *************************************************/
      52                 : 
      53                 : /* The reference count is a 16-bit field, initialized to zero. It is not
      54                 : possible to transfer a non-zero count from one host to a different host that
      55                 : has a different byte order - though I can't see why anyone in their right mind
      56                 : would ever want to do that!
      57                 : 
      58                 : Arguments:
      59                 :   argument_re   points to compiled code
      60                 :   adjust        value to add to the count
      61                 : 
      62                 : Returns:        the (possibly updated) count value (a non-negative number), or
      63                 :                 a negative error number
      64                 : */
      65                 : 
      66                 : PCRE_DATA_SCOPE int
      67                 : pcre_refcount(pcre *argument_re, int adjust)
      68               0 : {
      69               0 : real_pcre *re = (real_pcre *)argument_re;
      70               0 : if (re == NULL) return PCRE_ERROR_NULL;
      71               0 : re->ref_count = (-adjust > re->ref_count)? 0 :
      72                 :                 (adjust + re->ref_count > 65535)? 65535 :
      73                 :                 re->ref_count + adjust;
      74               0 : return re->ref_count;
      75                 : }
      76                 : 
      77                 : /* End of pcre_refcount.c */

Generated by: LTP GCOV extension version 1.5