summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2002-12-17 10:55:49 +0000
committerBruno Haible <bruno@clisp.org>2002-12-17 10:55:49 +0000
commit2f967d81fb2ff35efee543acb0370c6261a83f69 (patch)
tree82b88909842131fefc0f57341a15985e9a614c37
parent21cd7bfd2416e9afb5fc6ee8b0cd6b8b8990f773 (diff)
downloadgperf-2f967d81fb2ff35efee543acb0370c6261a83f69.tar.gz
Move Keyword_List inline methods to a .icc file.
-rw-r--r--ChangeLog6
-rw-r--r--src/Makefile.in2
-rw-r--r--src/keyword-list.cc9
-rw-r--r--src/keyword-list.h16
-rw-r--r--src/keyword-list.icc53
5 files changed, 81 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 52324e8..80c5ff8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2002-11-02 Bruno Haible <bruno@clisp.org>
+ * src/keyword-list.icc: New file, extracted from keyword-list.h.
+ * src/keyword-list.h: Include keyword-list.icc. Move inline methods
+ to there.
+ * src/keyword-list.cc: Include keyword-list.icc.
+ * src/Makefile.in (KEYWORD_LIST_H): Add keyword-list.icc.
+
* lib/hashpjw.h (hashpjw): Change argument type to 'unsigned char *'.
* lib/hash.cc (hashpjw): Likewise.
* src/keyword.icc: New file.
diff --git a/src/Makefile.in b/src/Makefile.in
index b12152a..c61d23e 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -88,7 +88,7 @@ VERSION_H = version.h
OPTIONS_H = options.h options.icc
READ_LINE_H = read-line.h read-line.icc
KEYWORD_H = keyword.h keyword.icc
-KEYWORD_LIST_H = keyword-list.h $(KEYWORD_H)
+KEYWORD_LIST_H = keyword-list.h keyword-list.icc $(KEYWORD_H)
INPUT_H = input.h $(READ_LINE_H) $(KEYWORD_LIST_H)
BOOL_ARRAY_H = bool-array.h bool-array.icc $(OPTIONS_H)
HASH_TABLE_H = hash-table.h $(KEYWORD_H)
diff --git a/src/keyword-list.cc b/src/keyword-list.cc
index 7be581e..b154a98 100644
--- a/src/keyword-list.cc
+++ b/src/keyword-list.cc
@@ -36,3 +36,12 @@ KeywordExt_List::KeywordExt_List (KeywordExt *car)
: Keyword_List (car)
{
}
+
+
+#ifndef __OPTIMIZE__
+
+#define INLINE /* not inline */
+#include "keyword-list.icc"
+#undef INLINE
+
+#endif /* not defined __OPTIMIZE__ */
diff --git a/src/keyword-list.h b/src/keyword-list.h
index 9c315a6..6cf0c33 100644
--- a/src/keyword-list.h
+++ b/src/keyword-list.h
@@ -35,9 +35,9 @@ public:
Keyword_List (Keyword *car);
/* Access to first element of list. */
- Keyword * first () { return _car; }
+ Keyword * first ();
/* Access to next element of list. */
- Keyword_List *& rest () { return _cdr; }
+ Keyword_List *& rest ();
protected:
Keyword_List * _cdr;
@@ -52,9 +52,17 @@ public:
KeywordExt_List (KeywordExt *car);
/* Access to first element of list. */
- KeywordExt * first () { return static_cast<KeywordExt*>(_car); }
+ KeywordExt * first ();
/* Access to next element of list. */
- KeywordExt_List *& rest () { return static_cast<KeywordExt_List*>(_cdr); }
+ KeywordExt_List *& rest ();
};
+#ifdef __OPTIMIZE__
+
+#define INLINE inline
+#include "keyword-list.icc"
+#undef INLINE
+
+#endif
+
#endif
diff --git a/src/keyword-list.icc b/src/keyword-list.icc
new file mode 100644
index 0000000..bfecb2c
--- /dev/null
+++ b/src/keyword-list.icc
@@ -0,0 +1,53 @@
+/* Inline Functions for keyword-list.{h,cc}.
+
+ Copyright (C) 2002 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>.
+
+ This file is part of GNU GPERF.
+
+ GNU GPERF is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU GPERF is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING.
+ If not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+/* -------------------------- Keyword_List class --------------------------- */
+
+/* Access to first element of list. */
+INLINE Keyword *
+Keyword_List::first ()
+{
+ return _car;
+}
+
+/* Access to next element of list. */
+INLINE Keyword_List *&
+Keyword_List::rest ()
+{
+ return _cdr;
+}
+
+/* ------------------------- KeywordExt_List class ------------------------- */
+
+/* Access to first element of list. */
+INLINE KeywordExt *
+KeywordExt_List::first ()
+{
+ return static_cast<KeywordExt*>(_car);
+}
+
+/* Access to next element of list. */
+INLINE KeywordExt_List *&
+KeywordExt_List::rest ()
+{
+ return static_cast<KeywordExt_List*>(_cdr);
+}