summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2017-04-16 17:39:15 +0200
committerBruno Haible <bruno@clisp.org>2017-04-16 17:39:15 +0200
commita459641a5356ff0f0350d69f4713eb416dbfde03 (patch)
tree629c809c26be2f03ce209cce3bc752ece19d85bf
parent09cfae667ed8a7de8bdd64956abe5e55183a9d2c (diff)
downloadgperf-a459641a5356ff0f0350d69f4713eb416dbfde03.tar.gz
Initialize the Keyword::_lineno field through the constructor.
-rw-r--r--ChangeLog12
-rw-r--r--src/input.cc3
-rw-r--r--src/keyword.h8
-rw-r--r--src/keyword.icc13
-rw-r--r--src/main.cc9
5 files changed, 30 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index bd302f1..6bfa33c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);
}
/* ------------------------------------------------------------------------- */