diff options
author | Bruno Haible <bruno@clisp.org> | 2002-12-17 10:55:49 +0000 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2002-12-17 10:55:49 +0000 |
commit | 2f967d81fb2ff35efee543acb0370c6261a83f69 (patch) | |
tree | 82b88909842131fefc0f57341a15985e9a614c37 | |
parent | 21cd7bfd2416e9afb5fc6ee8b0cd6b8b8990f773 (diff) | |
download | gperf-2f967d81fb2ff35efee543acb0370c6261a83f69.tar.gz |
Move Keyword_List inline methods to a .icc file.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | src/Makefile.in | 2 | ||||
-rw-r--r-- | src/keyword-list.cc | 9 | ||||
-rw-r--r-- | src/keyword-list.h | 16 | ||||
-rw-r--r-- | src/keyword-list.icc | 53 |
5 files changed, 81 insertions, 5 deletions
@@ -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); +} |