Coverage Report

Created: 2025-08-26 06:57

/src/aspell/common/error.cpp
Line
Count
Source (jump to first uncovered line)
1
// This file is part of The New Aspell
2
// Copyright (C) 2001 by Kevin Atkinson under the GNU LGPL license
3
// version 2.0 or 2.1.  You should have received a copy of the LGPL
4
// license along with this library if you did not you can find
5
// it at http://www.gnu.org/.
6
7
#include <string.h>
8
#include <stdlib.h>
9
10
#include "error.hpp"
11
12
namespace acommon {
13
14
  bool Error::is_a(ErrorInfo const * to_find) const 
15
1.96k
  {
16
1.96k
    const ErrorInfo * e = err;
17
1.96k
    while (e) {
18
1.96k
      if (e == to_find) return true;
19
0
      e = e->isa;
20
0
    }
21
0
    return false;
22
1.96k
  }
23
24
  Error::Error(const Error & other)
25
0
  {
26
0
    if (other.mesg) {
27
0
      mesg = (char *)malloc(strlen(other.mesg) + 1);
28
0
      strcpy(const_cast<char *>(mesg), other.mesg);
29
0
    }
30
0
    err = other.err;
31
0
  }
32
33
  Error & Error::operator=(const Error & other)
34
0
  {
35
0
    if (mesg)
36
0
      free(const_cast<char *>(mesg));
37
0
    if (other.mesg) {
38
0
      unsigned int len = strlen(other.mesg) + 1;
39
0
      mesg = (char *)malloc(len);
40
0
      memcpy(const_cast<char *>(mesg), other.mesg, len);
41
0
    }
42
0
    err = other.err;
43
0
    return *this;
44
0
  }
45
46
  Error::~Error()
47
27.6k
  {
48
27.6k
    if (mesg)
49
27.6k
      free(const_cast<char *>(mesg));
50
27.6k
  }
51
52
}