LCOV - code coverage report
Current view: top level - src/backend/snowball/libstemmer - api.c (source / functions) Hit Total Coverage
Test: PostgreSQL 17devel Lines: 14 31 45.2 %
Date: 2024-04-19 18:11:10 Functions: 2 3 66.7 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : #include "header.h"
       2             : 
       3          38 : extern struct SN_env * SN_create_env(int S_size, int I_size)
       4             : {
       5          38 :     struct SN_env * z = (struct SN_env *) calloc(1, sizeof(struct SN_env));
       6          38 :     if (z == NULL) return NULL;
       7          38 :     z->p = create_s();
       8          38 :     if (z->p == NULL) goto error;
       9          38 :     if (S_size)
      10             :     {
      11             :         int i;
      12           0 :         z->S = (symbol * *) calloc(S_size, sizeof(symbol *));
      13           0 :         if (z->S == NULL) goto error;
      14             : 
      15           0 :         for (i = 0; i < S_size; i++)
      16             :         {
      17           0 :             z->S[i] = create_s();
      18           0 :             if (z->S[i] == NULL) goto error;
      19             :         }
      20             :     }
      21             : 
      22          38 :     if (I_size)
      23             :     {
      24          38 :         z->I = (int *) calloc(I_size, sizeof(int));
      25          38 :         if (z->I == NULL) goto error;
      26             :     }
      27             : 
      28          38 :     return z;
      29           0 : error:
      30           0 :     SN_close_env(z, S_size);
      31           0 :     return NULL;
      32             : }
      33             : 
      34           0 : extern void SN_close_env(struct SN_env * z, int S_size)
      35             : {
      36           0 :     if (z == NULL) return;
      37           0 :     if (S_size)
      38             :     {
      39             :         int i;
      40           0 :         for (i = 0; i < S_size; i++)
      41             :         {
      42           0 :             lose_s(z->S[i]);
      43             :         }
      44           0 :         free(z->S);
      45             :     }
      46           0 :     free(z->I);
      47           0 :     if (z->p) lose_s(z->p);
      48           0 :     free(z);
      49             : }
      50             : 
      51        6802 : extern int SN_set_current(struct SN_env * z, int size, const symbol * s)
      52             : {
      53        6802 :     int err = replace_s(z, 0, z->l, size, s, NULL);
      54        6802 :     z->c = 0;
      55        6802 :     return err;
      56             : }

Generated by: LCOV version 1.14