From f5253185aa55a46cb3da80f66e7127a45c82052f Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sun, 24 Feb 2013 13:15:53 +0100 Subject: cleaned up SymbolList class: make attributes private * they were logically private but still declared public so that initializer constructor functions could access them. * instead, now use friend classes * has the side effect that initializing priority can be declared using GCC's init_priority attribute which works with earlier compilers than the constructor (with priority) attribute --- src/symbols-extract.tes | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/symbols-extract.tes') diff --git a/src/symbols-extract.tes b/src/symbols-extract.tes index 9f2c61a..48d749c 100755 --- a/src/symbols-extract.tes +++ b/src/symbols-extract.tes @@ -69,7 +69,14 @@ I/* #include "sciteco.h" #include "symbols.h" -static const SymbolList::Entry entries[] = { +static class SymbolListInitializer_Q#na { + static const SymbolList::Entry entries[]; + +public: + SymbolListInitializer_Q#na(); +} initializer INIT_PRIO(PRIO_SYMBOLS); + +const SymbolList::Entry SymbolListInitializer_Q#na::entries[] = {  < .,W.Xa 0KK @@ -80,9 +87,7 @@ static const SymbolList::Entry entries[] = { .-Z;> I}; -__attribute__((constructor(PRIO_SYMBOLS))) -static void -initialize(void) +SymbolListInitializer_Q#na::SymbolListInitializer_Q#na() { Symbols::Q#na.entries = entries; Symbols::Q#na.size = G_N_ELEMENTS(entries); -- cgit v1.2.3