LCOV - code coverage report
Current view: top level - Objects/stringlib - count.h (source / functions) Hit Total Coverage
Test: CPython 3.12 LCOV report [commit acb105a7c1f] Lines: 9 9 100.0 %
Date: 2022-07-20 13:12:14 Functions: 5 5 100.0 %
Branches: 8 8 100.0 %

           Branch data     Line data    Source code
       1                 :            : /* stringlib: count implementation */
       2                 :            : 
       3                 :            : #ifndef STRINGLIB_FASTSEARCH_H
       4                 :            : #error must include "stringlib/fastsearch.h" before including this module
       5                 :            : #endif
       6                 :            : 
       7                 :            : Py_LOCAL_INLINE(Py_ssize_t)
       8                 :    3024355 : STRINGLIB(count)(const STRINGLIB_CHAR* str, Py_ssize_t str_len,
       9                 :            :                 const STRINGLIB_CHAR* sub, Py_ssize_t sub_len,
      10                 :            :                 Py_ssize_t maxcount)
      11                 :            : {
      12                 :            :     Py_ssize_t count;
      13                 :            : 
      14         [ +  + ]:    3024355 :     if (str_len < 0)
      15                 :         12 :         return 0; /* start > len(str) */
      16         [ +  + ]:    3024343 :     if (sub_len == 0)
      17         [ +  + ]:       1068 :         return (str_len < maxcount) ? str_len + 1 : maxcount;
      18                 :            : 
      19                 :    3023275 :     count = FASTSEARCH(str, str_len, sub, sub_len, maxcount, FAST_COUNT);
      20                 :            : 
      21         [ +  + ]:    3023275 :     if (count < 0)
      22                 :      43190 :         return 0; /* no match */
      23                 :            : 
      24                 :    2980085 :     return count;
      25                 :            : }
      26                 :            : 
      27                 :            : 

Generated by: LCOV version 1.14