diff options
author | Bruno Haible <bruno@clisp.org> | 2017-04-16 17:39:15 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2017-04-16 17:39:15 +0200 |
commit | a459641a5356ff0f0350d69f4713eb416dbfde03 (patch) | |
tree | 629c809c26be2f03ce209cce3bc752ece19d85bf | |
parent | 09cfae667ed8a7de8bdd64956abe5e55183a9d2c (diff) | |
download | gperf-a459641a5356ff0f0350d69f4713eb416dbfde03.tar.gz |
Initialize the Keyword::_lineno field through the constructor.
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | src/input.cc | 3 | ||||
-rw-r--r-- | src/keyword.h | 8 | ||||
-rw-r--r-- | src/keyword.icc | 13 | ||||
-rw-r--r-- | src/main.cc | 9 |
5 files changed, 30 insertions, 15 deletions
@@ -1,3 +1,15 @@ +2017-04-16 Bruno Haible <bruno@clisp.org> + + Initialize the Keyword::_lineno field through the constructor. + * src/keyword.h (struct Keyword, struct KeywordExt): Add lineno argument + to constructor. + (Keyword_Factory::create_keyword): Add lineno argument. + * src/keyword.icc (struct Keyword, struct KeywordExt): Add lineno + argument to constructor. + * src/main.cc (KeywordExt_Factory::create_keyword): Pass lineno argument + to KeywordExt constructor. + * src/input.cc (Input::read_input): Pass lineno to create_keyword. + 2017-03-31 Bruno Haible <bruno@clisp.org> Fix doc build error with perl 5.22. diff --git a/src/input.cc b/src/input.cc index c751e4c..67c93b5 100644 --- a/src/input.cc +++ b/src/input.cc @@ -972,8 +972,7 @@ Input::read_input () /* Allocate Keyword and add it to the list. */ Keyword *new_kw = _factory->create_keyword (keyword, keyword_length, - rest); - new_kw->_lineno = lineno; + rest, lineno); *list_tail = new Keyword_List (new_kw); list_tail = &(*list_tail)->rest(); } diff --git a/src/keyword.h b/src/keyword.h index 1c48c5d..6297473 100644 --- a/src/keyword.h +++ b/src/keyword.h @@ -2,7 +2,7 @@ /* Keyword data. - Copyright (C) 1989-1998, 2000, 2002-2003 Free Software Foundation, Inc. + Copyright (C) 1989-1998, 2000, 2002-2003, 2017 Free Software Foundation, Inc. Written by Douglas C. Schmidt <schmidt@ics.uci.edu> and Bruno Haible <bruno@clisp.org>. @@ -33,7 +33,7 @@ struct Keyword { /* Constructor. */ Keyword (const char *allchars, int allchars_length, - const char *rest); + const char *rest, unsigned int lineno); /* Data members defined immediately by the input file. */ /* The keyword as a string, possibly containing NUL bytes. */ @@ -51,7 +51,7 @@ struct KeywordExt : public Keyword { /* Constructor. */ KeywordExt (const char *allchars, int allchars_length, - const char *rest); + const char *rest, unsigned int lineno); /* Data members depending on the keyposition list. */ /* The selected characters that participate for the hash function, @@ -97,7 +97,7 @@ public: /* Creates a new Keyword. */ virtual /*abstract*/ Keyword * create_keyword (const char *allchars, int allchars_length, - const char *rest) = 0; + const char *rest, unsigned int lineno) = 0; }; /* A statically allocated empty string. */ diff --git a/src/keyword.icc b/src/keyword.icc index 5255874..2b11610 100644 --- a/src/keyword.icc +++ b/src/keyword.icc @@ -1,6 +1,6 @@ /* Inline Functions for keyword.{h,cc}. - Copyright (C) 1989-1998, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1989-1998, 2000, 2002, 2017 Free Software Foundation, Inc. Written by Douglas C. Schmidt <schmidt@ics.uci.edu> and Bruno Haible <bruno@clisp.org>. @@ -23,8 +23,10 @@ /* Constructor. */ INLINE -Keyword::Keyword (const char *allchars, int allchars_length, const char *rest) - : _allchars (allchars), _allchars_length (allchars_length), _rest (rest) +Keyword::Keyword (const char *allchars, int allchars_length, + const char *rest, unsigned int lineno) + : _allchars (allchars), _allchars_length (allchars_length), + _rest (rest), _lineno (lineno) { } @@ -33,8 +35,9 @@ Keyword::Keyword (const char *allchars, int allchars_length, const char *rest) /* Constructor. */ INLINE -KeywordExt::KeywordExt (const char *allchars, int allchars_length, const char *rest) - : Keyword (allchars, allchars_length, rest), +KeywordExt::KeywordExt (const char *allchars, int allchars_length, + const char *rest, unsigned int lineno) + : Keyword (allchars, allchars_length, rest, lineno), _final_index (-1) { } diff --git a/src/main.cc b/src/main.cc index 34b59ee..009ff34 100644 --- a/src/main.cc +++ b/src/main.cc @@ -1,5 +1,5 @@ /* Driver program for the hash function generator - Copyright (C) 1989-1998, 2000, 2002-2003, 2009 Free Software Foundation, Inc. + Copyright (C) 1989-1998, 2000, 2002-2003, 2009, 2017 Free Software Foundation, Inc. Written by Douglas C. Schmidt <schmidt@ics.uci.edu> and Bruno Haible <bruno@clisp.org>. @@ -34,13 +34,14 @@ class KeywordExt_Factory : public Keyword_Factory { virtual Keyword * create_keyword (const char *allchars, int allchars_length, - const char *rest); + const char *rest, unsigned int lineno); }; Keyword * -KeywordExt_Factory::create_keyword (const char *allchars, int allchars_length, const char *rest) +KeywordExt_Factory::create_keyword (const char *allchars, int allchars_length, + const char *rest, unsigned int lineno) { - return new KeywordExt (allchars, allchars_length, rest); + return new KeywordExt (allchars, allchars_length, rest, lineno); } /* ------------------------------------------------------------------------- */ |