Coverage Report

Created: 2026-01-10 06:07

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/aspell/common/posib_err.hpp
Line
Count
Source
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
#ifndef PCOMMON_POSIB_ERR__HPP
8
#define PCOMMON_POSIB_ERR__HPP
9
10
#include "string.hpp"
11
#include "error.hpp"
12
13
#include "errors.hpp"
14
15
#include "ndebug.hpp"
16
17
namespace acommon {
18
19
  // PosibErr<type> is a special Error handling device that will make
20
  // sure that an error is properly handled.  It is expected to be
21
  // used as the return type of the function It will automatically
22
  // convert to the "normal" return type however if the normal
23
  // returned type is accessed and there is an "unhandled" error
24
  // condition it will abort It will also abort if the object is
25
  // destroyed with an "unhandled" error condition.  This includes
26
  // ignoring the return type of a function returning an error
27
  // condition.  An error condition is handled by simply checking for
28
  // the presence of an error, calling ignore, or taking ownership of
29
  // the error.
30
31
  enum WhichErr { PrimErr, SecErr };
32
33
  extern "C" const ErrorInfo * const perror_bad_file_format;
34
35
  template <typename Ret> class PosibErr;
36
  
37
  class PosibErrBase {
38
  private:
39
    struct ErrPtr {
40
      const Error * err;
41
#ifndef NDEBUG
42
      bool handled;
43
#endif
44
      int refcount;
45
36.9k
      ErrPtr(const Error * e) : err(e), 
46
#ifndef NDEBUG
47
36.9k
                                handled(false), 
48
#endif
49
36.9k
                                refcount(1) {}
50
    };
51
    ErrPtr * err_;
52
53
  protected:
54
55
359k
    void posib_handle_err() const {
56
359k
#ifndef NDEBUG
57
359k
      if (err_ && !err_->handled)
58
0
  handle_err();
59
359k
#endif
60
359k
    }
61
62
1.87M
    void copy(const PosibErrBase & other) {
63
1.87M
      err_ = other.err_;
64
1.87M
      if (err_) {
65
168k
  ++ err_->refcount;
66
168k
      }
67
1.87M
    }
68
3.01M
    void destroy() {
69
3.01M
      if (err_ == 0) return;
70
190k
      -- err_->refcount;
71
190k
      if (err_->refcount == 0) {
72
21.9k
#ifndef NDEBUG
73
21.9k
  if (!err_->handled)
74
0
    handle_err();
75
21.9k
#endif
76
21.9k
  del();
77
21.9k
      }
78
190k
    }
79
80
  public:
81
    PosibErrBase() 
82
1.13M
      : err_(0) {}
83
    PosibErrBase(const PosibErrBase & other) 
84
1.85M
    {
85
1.85M
      copy(other);
86
1.85M
    }
87
1.56k
    PosibErrBase& operator= (const PosibErrBase & other) {
88
1.56k
      destroy();
89
1.56k
      copy(other);
90
1.56k
      return *this;
91
1.56k
    }
92
2.99M
    ~PosibErrBase() {
93
2.99M
      destroy();
94
2.99M
    }
95
96
39.3k
    Error * release_err() {
97
39.3k
      if (err_ == 0)
98
24.4k
  return 0;
99
14.9k
      else
100
14.9k
  return release();
101
39.3k
    }
102
10.4k
    void ignore_err() {
103
10.4k
#ifndef NDEBUG
104
10.4k
      if (err_ != 0)
105
6.68k
  err_->handled = true;
106
10.4k
#endif
107
10.4k
    }
108
41.9k
    const Error * get_err() const {
109
41.9k
      if (err_ == 0) {
110
30.6k
  return 0;
111
30.6k
      } else {
112
11.2k
#ifndef NDEBUG
113
11.2k
  err_->handled = true;
114
11.2k
#endif
115
11.2k
  return err_->err;
116
11.2k
      }
117
41.9k
    }
118
1
    const Error * prvw_err() const {
119
1
      if (err_ == 0)
120
0
  return 0;
121
1
      else
122
1
  return err_->err;
123
1
    }
124
1.15M
    bool has_err() const {
125
1.15M
      return err_ != 0;
126
1.15M
    }
127
4.94k
    bool has_err(const ErrorInfo * e) const {
128
4.94k
      if (err_ == 0) {
129
955
  return false;
130
3.99k
      } else {
131
3.99k
  if (err_->err->is_a(e)) {
132
3.99k
#ifndef NDEBUG
133
3.99k
    err_->handled = true;
134
3.99k
#endif
135
3.99k
    return true;
136
3.99k
  } else {
137
0
    return false;
138
0
  }
139
3.99k
      }
140
4.94k
    }
141
    PosibErrBase & prim_err(const ErrorInfo * inf, ParmString p1 = 0,
142
          ParmString p2 = 0, ParmString p3 = 0, 
143
          ParmString p4 = 0)
144
36.9k
    {
145
36.9k
      return set(inf, p1, p2, p3, p4);
146
36.9k
    }
147
148
    // These should only be called _after_ set is called
149
    PosibErrBase & with_file(ParmString fn, int lineno = 0);
150
    PosibErrBase & with_key(ParmString prefix, ParmString key);
151
    
152
    PosibErrBase & set(const ErrorInfo *, 
153
           ParmString, ParmString, ParmString, ParmString);
154
155
  private:
156
157
#ifndef NDEBUG
158
    void handle_err() const;
159
#endif
160
    Error * release();
161
    void del();
162
  };
163
164
  template <>
165
  class PosibErr<void> : public PosibErrBase
166
  {
167
  public:
168
    PosibErr(const PosibErrBase & other) 
169
38.8k
      : PosibErrBase(other) {}
170
171
1.56k
    PosibErr() {}
172
  };
173
174
  template <typename Ret>
175
  class PosibErr : public PosibErrBase
176
  {
177
  public:
178
22.1k
    PosibErr() : data() {}
acommon::PosibErr<acommon::KeyInfo const*>::PosibErr()
Line
Count
Source
178
11.0k
    PosibErr() : data() {}
acommon::PosibErr<bool>::PosibErr()
Line
Count
Source
178
9.25k
    PosibErr() : data() {}
acommon::PosibErr<acommon::Convert*>::PosibErr()
Line
Count
Source
178
951
    PosibErr() : data() {}
acommon::PosibErr<aspeller::Suggest*>::PosibErr()
Line
Count
Source
178
931
    PosibErr() : data() {}
179
180
    PosibErr(const PosibErrBase & other) 
181
38.1k
      : PosibErrBase(other), data() {}
acommon::PosibErr<acommon::DocumentChecker*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
8
      : PosibErrBase(other), data() {}
Unexecuted instantiation: acommon::PosibErr<acommon::String>::PosibErr(acommon::PosibErrBase const&)
Unexecuted instantiation: acommon::PosibErr<acommon::Config::Value>::PosibErr(acommon::PosibErrBase const&)
acommon::PosibErr<bool>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
53
      : PosibErrBase(other), data() {}
acommon::PosibErr<int>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
15.8k
      : PosibErrBase(other), data() {}
acommon::PosibErr<acommon::KeyInfo const*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
12.1k
      : PosibErrBase(other), data() {}
Unexecuted instantiation: acommon::PosibErr<acommon::NormTable<acommon::FromUniNormEntry>*>::PosibErr(acommon::PosibErrBase const&)
Unexecuted instantiation: acommon::PosibErr<acommon::NormTable<acommon::ToUniNormEntry>*>::PosibErr(acommon::PosibErrBase const&)
Unexecuted instantiation: acommon::PosibErr<acommon::NormTables*>::PosibErr(acommon::PosibErrBase const&)
acommon::PosibErr<acommon::Convert*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
21
      : PosibErrBase(other), data() {}
acommon::PosibErr<acommon::Decode*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
20
      : PosibErrBase(other), data() {}
Unexecuted instantiation: acommon::PosibErr<acommon::Encode*>::PosibErr(acommon::PosibErrBase const&)
acommon::PosibErr<acommon::ConfigModule const*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
4.88k
      : PosibErrBase(other), data() {}
acommon::PosibErr<acommon::ConfigFilterModule*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
4.88k
      : PosibErrBase(other), data() {}
Unexecuted instantiation: acommon::PosibErr<acommon::FilterModeList*>::PosibErr(acommon::PosibErrBase const&)
Unexecuted instantiation: acommon::PosibErr<acommon::StringPairEnumeration*>::PosibErr(acommon::PosibErrBase const&)
acommon::PosibErr<acommon::Config*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
87
      : PosibErrBase(other), data() {}
acommon::PosibErr<acommon::Speller*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
139
      : PosibErrBase(other), data() {}
acommon::PosibErr<char const*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
8
      : PosibErrBase(other), data() {}
acommon::PosibErr<acommon::MDInfoListAll const*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
6
      : PosibErrBase(other), data() {}
acommon::PosibErr<acommon::ModuleInfoList const*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
6
      : PosibErrBase(other), data() {}
Unexecuted instantiation: acommon::PosibErr<acommon::DictInfoList const*>::PosibErr(acommon::PosibErrBase const&)
Unexecuted instantiation: acommon::PosibErr<acommon::StringMap const*>::PosibErr(acommon::PosibErrBase const&)
Unexecuted instantiation: acommon::PosibErr<acommon::WordList const*>::PosibErr(acommon::PosibErrBase const&)
acommon::PosibErr<aspeller::Language*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
1
      : PosibErrBase(other), data() {}
Unexecuted instantiation: acommon::PosibErr<aspeller::AffixMgr*>::PosibErr(acommon::PosibErrBase const&)
acommon::PosibErr<aspeller::Suggest*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
12
      : PosibErrBase(other), data() {}
acommon::PosibErr<aspeller::Dictionary*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
16
      : PosibErrBase(other), data() {}
Unexecuted instantiation: acommon::PosibErr<aspeller::Soundslike*>::PosibErr(acommon::PosibErrBase const&)
Unexecuted instantiation: acommon::PosibErr<aspeller::PhonetParms*>::PosibErr(acommon::PosibErrBase const&)
Unexecuted instantiation: acommon::PosibErr<char*>::PosibErr(acommon::PosibErrBase const&)
acommon::PosibErr<aspeller::TypoEditDistanceInfo*>::PosibErr(acommon::PosibErrBase const&)
Line
Count
Source
181
5
      : PosibErrBase(other), data() {}
182
183
    template <typename T>
184
    PosibErr(const PosibErr<T> & other)
185
0
      : PosibErrBase(other), data(other.data) {}
Unexecuted instantiation: acommon::PosibErr<unsigned int>::PosibErr<int>(acommon::PosibErr<int> const&)
Unexecuted instantiation: acommon::PosibErr<bool>::PosibErr<char const*>(acommon::PosibErr<char const*> const&)
186
187
    PosibErr(const PosibErr<void> & other)
188
0
      : PosibErrBase(other), data() {}
Unexecuted instantiation: acommon::PosibErr<int>::PosibErr(acommon::PosibErr<void> const&)
Unexecuted instantiation: acommon::PosibErr<bool>::PosibErr(acommon::PosibErr<void> const&)
189
190
15.0k
    PosibErr& operator= (const PosibErr & other) {
191
15.0k
      data = other.data;
192
15.0k
      PosibErrBase::destroy();
193
15.0k
      PosibErrBase::copy(other);
194
15.0k
      return *this;
195
15.0k
    }
acommon::PosibErr<acommon::KeyInfo const*>::operator=(acommon::PosibErr<acommon::KeyInfo const*> const&)
Line
Count
Source
190
1.06k
    PosibErr& operator= (const PosibErr & other) {
191
1.06k
      data = other.data;
192
1.06k
      PosibErrBase::destroy();
193
1.06k
      PosibErrBase::copy(other);
194
1.06k
      return *this;
195
1.06k
    }
acommon::PosibErr<bool>::operator=(acommon::PosibErr<bool> const&)
Line
Count
Source
190
9.25k
    PosibErr& operator= (const PosibErr & other) {
191
9.25k
      data = other.data;
192
9.25k
      PosibErrBase::destroy();
193
9.25k
      PosibErrBase::copy(other);
194
9.25k
      return *this;
195
9.25k
    }
acommon::PosibErr<acommon::String>::operator=(acommon::PosibErr<acommon::String> const&)
Line
Count
Source
190
1.00k
    PosibErr& operator= (const PosibErr & other) {
191
1.00k
      data = other.data;
192
1.00k
      PosibErrBase::destroy();
193
1.00k
      PosibErrBase::copy(other);
194
1.00k
      return *this;
195
1.00k
    }
acommon::PosibErr<acommon::Convert*>::operator=(acommon::PosibErr<acommon::Convert*> const&)
Line
Count
Source
190
1.88k
    PosibErr& operator= (const PosibErr & other) {
191
1.88k
      data = other.data;
192
1.88k
      PosibErrBase::destroy();
193
1.88k
      PosibErrBase::copy(other);
194
1.88k
      return *this;
195
1.88k
    }
acommon::PosibErr<aspeller::Suggest*>::operator=(acommon::PosibErr<aspeller::Suggest*> const&)
Line
Count
Source
190
1.85k
    PosibErr& operator= (const PosibErr & other) {
191
1.85k
      data = other.data;
192
1.85k
      PosibErrBase::destroy();
193
1.85k
      PosibErrBase::copy(other);
194
1.85k
      return *this;
195
1.85k
    }
196
1.08M
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::String>::PosibErr(acommon::String const&)
Line
Count
Source
196
79.4k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::Config::Value>::PosibErr(acommon::Config::Value const&)
Line
Count
Source
196
1.90k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<int>::PosibErr(int const&)
Line
Count
Source
196
130k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::DocumentChecker*>::PosibErr(acommon::DocumentChecker* const&)
Line
Count
Source
196
905
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<bool>::PosibErr(bool const&)
Line
Count
Source
196
428k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::KeyInfo const*>::PosibErr(acommon::KeyInfo const* const&)
Line
Count
Source
196
295k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::NormTable<acommon::FromUniNormEntry>*>::PosibErr(acommon::NormTable<acommon::FromUniNormEntry>* const&)
Line
Count
Source
196
30.6k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::NormTable<acommon::ToUniNormEntry>*>::PosibErr(acommon::NormTable<acommon::ToUniNormEntry>* const&)
Line
Count
Source
196
1.80k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::NormTables*>::PosibErr(acommon::NormTables* const&)
Line
Count
Source
196
11.6k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::Convert*>::PosibErr(acommon::Convert* const&)
Line
Count
Source
196
18.9k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::Decode*>::PosibErr(acommon::Decode* const&)
Line
Count
Source
196
5.25k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::Encode*>::PosibErr(acommon::Encode* const&)
Line
Count
Source
196
10.6k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::Tokenizer*>::PosibErr(acommon::Tokenizer* const&)
Line
Count
Source
196
913
    PosibErr(const Ret & d) : data(d) {}
Unexecuted instantiation: acommon::PosibErr<acommon::ConfigModule const*>::PosibErr(acommon::ConfigModule const* const&)
Unexecuted instantiation: acommon::PosibErr<acommon::ConfigFilterModule*>::PosibErr(acommon::ConfigFilterModule* const&)
Unexecuted instantiation: acommon::PosibErr<acommon::StringPairEnumeration*>::PosibErr(acommon::StringPairEnumeration* const&)
acommon::PosibErr<acommon::FilterModeList*>::PosibErr(acommon::FilterModeList* const&)
Line
Count
Source
196
7.70k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::Speller*>::PosibErr(acommon::Speller* const&)
Line
Count
Source
196
1.87k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::Config*>::PosibErr(acommon::Config* const&)
Line
Count
Source
196
965
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<char const*>::PosibErr(char const* const&)
Line
Count
Source
196
2.85k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::MDInfoListAll const*>::PosibErr(acommon::MDInfoListAll const* const&)
Line
Count
Source
196
2.98k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::ModuleInfoList const*>::PosibErr(acommon::ModuleInfoList const* const&)
Line
Count
Source
196
1.00k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::DictInfoList const*>::PosibErr(acommon::DictInfoList const* const&)
Line
Count
Source
196
1.00k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::StringMap const*>::PosibErr(acommon::StringMap const* const&)
Line
Count
Source
196
965
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<acommon::WordList const*>::PosibErr(acommon::WordList const* const&)
Line
Count
Source
196
12.9k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<aspeller::Language*>::PosibErr(aspeller::Language* const&)
Line
Count
Source
196
7.57k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<aspeller::AffixMgr*>::PosibErr(aspeller::AffixMgr* const&)
Line
Count
Source
196
954
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<aspeller::Suggest*>::PosibErr(aspeller::Suggest* const&)
Line
Count
Source
196
1.83k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<aspeller::Dictionary*>::PosibErr(aspeller::Dictionary* const&)
Line
Count
Source
196
3.78k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<aspeller::Soundslike*>::PosibErr(aspeller::Soundslike* const&)
Line
Count
Source
196
954
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<aspeller::PhonetParms*>::PosibErr(aspeller::PhonetParms* const&)
Line
Count
Source
196
936
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<char*>::PosibErr(char* const&)
Line
Count
Source
196
21.0k
    PosibErr(const Ret & d) : data(d) {}
acommon::PosibErr<aspeller::TypoEditDistanceInfo*>::PosibErr(aspeller::TypoEditDistanceInfo* const&)
Line
Count
Source
196
2.75k
    PosibErr(const Ret & d) : data(d) {}
197
359k
    operator const Ret & () const {posib_handle_err(); return data;}
acommon::PosibErr<acommon::DocumentChecker*>::operator acommon::DocumentChecker* const&() const
Line
Count
Source
197
905
    operator const Ret & () const {posib_handle_err(); return data;}
acommon::PosibErr<acommon::Speller*>::operator acommon::Speller* const&() const
Line
Count
Source
197
1.87k
    operator const Ret & () const {posib_handle_err(); return data;}
acommon::PosibErr<int>::operator int const&() const
Line
Count
Source
197
16.7k
    operator const Ret & () const {posib_handle_err(); return data;}
acommon::PosibErr<acommon::Tokenizer*>::operator acommon::Tokenizer* const&() const
Line
Count
Source
197
913
    operator const Ret & () const {posib_handle_err(); return data;}
acommon::PosibErr<acommon::String>::operator acommon::String const&() const
Line
Count
Source
197
36.1k
    operator const Ret & () const {posib_handle_err(); return data;}
acommon::PosibErr<acommon::KeyInfo const*>::operator acommon::KeyInfo const* const&() const
Line
Count
Source
197
152k
    operator const Ret & () const {posib_handle_err(); return data;}
acommon::PosibErr<bool>::operator bool const&() const
Line
Count
Source
197
144k
    operator const Ret & () const {posib_handle_err(); return data;}
acommon::PosibErr<acommon::DictInfoList const*>::operator acommon::DictInfoList const* const&() const
Line
Count
Source
197
1.00k
    operator const Ret & () const {posib_handle_err(); return data;}
acommon::PosibErr<acommon::Config::Value>::operator acommon::Config::Value const&() const
Line
Count
Source
197
1.90k
    operator const Ret & () const {posib_handle_err(); return data;}
acommon::PosibErr<acommon::Convert*>::operator acommon::Convert* const&() const
Line
Count
Source
197
1.86k
    operator const Ret & () const {posib_handle_err(); return data;}
acommon::PosibErr<aspeller::PhonetParms*>::operator aspeller::PhonetParms* const&() const
Line
Count
Source
197
936
    operator const Ret & () const {posib_handle_err(); return data;}
198
199
    Ret data;
200
  };
201
202
//
203
//
204
//
205
#define RET_ON_ERR_SET(command, type, var) \
206
149k
  type var;do{PosibErr< type > pe(command);if(pe.has_err())return PosibErrBase(pe);var=pe.data;} while(false)
207
#define RET_ON_ERR(command) \
208
492k
  do{PosibErrBase pe(command);if(pe.has_err())return PosibErrBase(pe);}while(false)
209
210
  
211
  //
212
  //
213
  //
214
215
  static inline PosibErrBase make_err(const ErrorInfo * inf, 
216
              ParmString p1 = 0, ParmString p2 = 0,
217
              ParmString p3 = 0, ParmString p4 = 0)
218
25.8k
  {
219
25.8k
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
25.8k
  }
Unexecuted instantiation: document_checker-c.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: config-c.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: string_enumeration-c.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: speller-c.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: new_checker.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
config.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Line
Count
Source
218
1.72k
  {
219
1.72k
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
1.72k
  }
Unexecuted instantiation: posib_err.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
fstream.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Line
Count
Source
218
4.10k
  {
219
4.10k
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
4.10k
  }
convert.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Line
Count
Source
218
29
  {
219
29
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
29
  }
Unexecuted instantiation: document_checker.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: filter.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: file_data_util.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: basic.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: new_config.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
new_filter.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Line
Count
Source
218
4.88k
  {
219
4.88k
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
4.88k
  }
new_fmode.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Line
Count
Source
218
3.77k
  {
219
3.77k
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
3.77k
  }
find_speller.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Line
Count
Source
218
44
  {
219
44
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
44
  }
Unexecuted instantiation: url.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: email.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: tex.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: sgml.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: markdown.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: context.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: nroff.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: texinfo.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: cache.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: getdata.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: file_util.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: string_map.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: string_list.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: iostream.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
info.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Line
Count
Source
218
6
  {
219
6
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
6
  }
Unexecuted instantiation: tokenizer.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: speller_impl.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
language.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Line
Count
Source
218
11.2k
  {
219
11.2k
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
11.2k
  }
Unexecuted instantiation: affix.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: itemize.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: speller.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
suggest.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Line
Count
Source
218
7
  {
219
7
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
7
  }
data.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Line
Count
Source
218
13
  {
219
13
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
13
  }
Unexecuted instantiation: multi_ws.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: phonetic.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
writable.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Line
Count
Source
218
1
  {
219
1
    return PosibErrBase().prim_err(inf, p1, p2, p3, p4);
220
1
  }
Unexecuted instantiation: phonet.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: typo_editdist.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
Unexecuted instantiation: readonly_ws.cpp:acommon::make_err(acommon::ErrorInfo const*, acommon::ParmString, acommon::ParmString, acommon::ParmString, acommon::ParmString)
221
222
  static const PosibErr<void> no_err;
223
224
  //
225
  //
226
  //
227
  inline String & String::operator= (const PosibErr<const char *> & s)
228
0
  {
229
0
    *this = s.data;
230
0
    return *this;
231
0
  }
232
233
  inline bool operator== (const PosibErr<String> & x, const char * y)
234
0
  {
235
0
    return x.data == y;
236
0
  }
237
  inline bool operator!= (const PosibErr<String> & x, const char * y)
238
0
  {
239
0
    return x.data != y;
240
0
  }
241
242
  inline ParmString::ParmString(const PosibErr<const char *> & s)
243
    : str_(s.data), size_(UINT_MAX) {}
244
245
  inline ParmString::ParmString(const PosibErr<String> & s)
246
10.8k
    : str_(s.data.c_str()), size_(s.data.size()) {}
247
248
}
249
250
#endif