One area that could be an easy one to save time in
is to use smart pointers in the fEntityDeclPool
That way you could avoid this repeated initialization:
fEntityDeclPool->put(new DTDEntityDecl(gAmp, chAmpersand, true, true));
fEntityDeclPool->put(new DTDEntityDecl(gLT, chOpenAngle, true, true));
fEntityDeclPool->put(new DTDEntityDecl(gGT, chCloseAngle, true, true));
fEntityDeclPool->put(new DTDEntityDecl(gQuot, chDoubleQuote, true, true));
fEntityDeclPool->put(new DTDEntityDecl(gApos, chSingleQuote, true, true));
In pseudo code
COLreferencePtr<DTDEntityDecl> fAmpersandEntity = new DTDEntityDecl(gAmp,
chAmpersand, true, true);
:
:
fEntityDeclPool->put(fAmpersandEntity)
This way you only new and delete the fAmpersandEntity etc. once in the app -
when the fEntityDeclPool is
cleared it merely removes it's reference to the object - the object is not
destroyed, ready for reuse when needed.
Much more efficient
This an issue throughout the parser whenever you are repeated re-allocating the
same static strings etc.
--
Eliot Muir, Technical Director iNTERFACEWARE
mailto:[EMAIL PROTECTED]
Voice 64-21-333068 http://www.interfaceware.com
Makers of iNTERFACEWARE Chameleon
"Program to the iNTERFACE not the implementation"
begin 600 WINMAIL.DAT
M>)\^(C(``0:0" `$```````!``$``0>[EMAIL PROTECTED](````Y 0```````#H``$(@ <`
M& ```$E032Y-:6-R;[EMAIL PROTECTED];"Y.;W1E`#$(`0V ! `"[EMAIL PROTECTED]"``$$
MD 8`T $```$````0`````P``, (````+``\.``````(!_P\!````40``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````'AE<F-E<RUD979 >&UL+F%P86-H92YO
M<F<`4TU44 !X97)C97,M9&5V0'AM;"YA<&%C:&4N;W)G`````!X``C !````
M!0```%--5% `````'@`#, $````:````>&5R8V5S+61E=D!X;6PN87!A8VAE
M+F]R9P````,`%0P!`````P#^#P8````>``$P`0```!P````G>&5R8V5S+61E
M=D!X;6PN87!A8VAE+F]R9R<[EMAIL PROTECTED], $````?````4TU44#I815)#15,M1$56
M0%A-3"Y!4$%#2$4N3U)'```#```Y``````L`0#H!````'@#V7P$````:````
M>&5R8V5S+61E=D!X;6PN87!A8VAE+F]R9P````(!]U\!````40````````"!
M*Q^DOJ,0&9UN`-T!#U0"`````'AE<F-E<RUD979 >&UL+F%P86-H92YO<F<`
M4TU44 !X97)C97,M9&5V0'AM;"YA<&%C:&4N;W)G``````,`_5\!`````P#_
M7P`````"`?8/`0````0````````"468!!( !`#0```!-;W)E(&5F9FEC:65N
M="!$969A=6QT($141$5N=&ET>41E8VP@:6YI=&EA;&EZ871I;VX`/A,!!8 #
[EMAIL PROTECTED],`!\`,0`$`$$!`2" `P`.````T <$``8`# `7`!X`! `F
M`0$)@ $`(0```$1$-S%%,$5",D(P0D0T,3%!-T0U,#!!,#!#,3,Q13<S`"4'
[EMAIL PROTECTED]@``([EMAIL PROTECTED]"P`C```````#`"8```````L`*0``````
M`P`N```````#`#8``````$ [EMAIL PROTECTED]< `!````- ```$UO<F4@
M969F:6-I96YT($1E9F%U;'[EMAIL PROTECTED]:71Y1&5C;"!I;FET:6%L:7IA=&EO
M;@`"`7$``0```!8````!OY]??N7KX''>"RL1U*?5`* ,$QYS```>`!X,`0``
M``4```!33510`````!X`'PP!````'0```&5L:6]T+FUU:7) :6YT97)F86-E
M=V%R92YC;VT``````P`&$!$?M;(#``<0-00``!X`"! !````90```$].14%2
M14%42$%40T]53$1"14%.14%364].151/4T%6151)345)3DE35$]54T5334%2
M5%!/24Y415)324Y42$5&14Y425191$5#3%!/3TQ42$%45T%964]50T]53$1!
M5D])[EMAIL PROTECTED])$ $```"Y`P``M0,``+8&``!,6D9U_ 5>EG<`"@$#`?<@
M`J0#XP(`8X)H"L!S970P( <3CP*#`% "[EMAIL PROTECTED]&%H`W&%`H,R#N=P<G$R#_8F
M?0J ",@@.PEO,C5F-0* "H%U8P!0"P-C`P!!"V!N9S$P,S-!"[EMAIL PROTECTED]( K
M93AA('0/@ 5 !:!U;#AD(&(800.@&(!S>[EMAIL PROTECTED] 80'1O('-A]G8:,0=Q( N!
M"K$*@ 0`/1I"=0^P&G `P `@('#Z;PN = 20!" [EMAIL PROTECTED]&$"$9D4",&ET>40%
MD+AL4&\&\!M$&T14&,+T=V$9\'D(8!CU&I <L.\90!BP&Z$)<' [EMAIL PROTECTED]@&4"G
M"X =X <Q:7H8T&D"(!HZ'IH@(W$=K2T^<!AU="@8, [EMAIL PROTECTED]@1VX*&=!;7 L
M&/ N:"8Q'/$`<&0F8'1R\PI0)S0I*12@(R\D/R5-E$Q4)F)/(5!N01<POFPG
MA2>?**\IOR6V1RM3_D,)``^P*^\L_RX/+Q\F$-!1=6]T)F)$"& "8'YE-5(Q
M/S)/,U\E3AR@<WTF8E,[EMAIL PROTECTED]>4#H' /L'5D&F %H $`T2*]0T],
M"7!F!) )\*AC95 [X#PE2SX=D.,FIQVT([EMAIL PROTECTED]'R<LOS=E([EMAIL PROTECTED])!
M/BD>G'<;H1^F`B!L&?!"8B<!(#\!`#$@'. =5$%.#\!C+@<:`3_@'29A<' @
M+?\?D!UP'4\>4AL0#T ;4QXP_QB "7$;$ 5 !X )<$K!"7#G!& :H!T1="<A
M$C^5&D+Q3O)O8FH%D 5 3H!3>2T;H6XU<$MA<SO@;WGW"8!#P!AQ9!GP`A %
MP EP7QP"3J,8, F "8 N&T1-/19 :%%0!; 80 $1:6/_") ",$D?`Y$$`0I0
M&*$#8/QU9Q'0.3!.XPJQ#[ %P/U.HF4:H 7 '^(882$H"7#V+0= "0!C(E$7
M,$[C&H#W&O%5@")18U]A!1 7, [EMAIL PROTECTED]'[EMAIL
PROTECTED]@+2T;1$6G(B!5,[EMAIL PROTECTED]:7)#
MP%0%D.YH`P!>< ,@1&,`4^$%L0%D;FE.5$521D' 0T5705)%'I46TM<9(%%0
M"W!L&E Z2X!BH=0N;[EMAIL PROTECTED]&&$N!:!M8;)[EMAIL PROTECTED] -&T16'+!-
MH38T+3*$,2T7<#,P-CAD9 5FIF@"0' Z+R]W'6S0+FA/:58>FDUA:_D<\F]F
M96P_, ^ !X Q(.<"(&GU-]$B4 -@"<!?,/]3-F5W51-RTT.@,2 '@ (PQ2)3
M(A"#<S$W80H24_PQ-AZ6`V <X%/P&T03P0(`>% ````#`! 0``````,`$1 `
M`````P" $/____] ``<P0"RQ55Z?OP% [EMAIL PROTECTED]"RQ55Z?OP$+``" "" &````
M``# [EMAIL PROTECTED],``H (( 8``````, ```````!&````
M`!"%`````````P`%@ @@[EMAIL PROTECTED] ```````$8`````4H4``+<-```#``F
M"" &``````# [EMAIL PROTECTED] (( 8``````, `````
M``!&`````%2%```!````! [EMAIL PROTECTED], `+`!: "" &``````# [EMAIL PROTECTED]
M```.A0````````,`%X (( 8``````, ```````!&`````!&%`````````P`9
M@ @@[EMAIL PROTECTED] ```````$8`````&(4````````>`"B "" &``````# ````
[EMAIL PROTECTED]'@`I@ @@[EMAIL PROTECTED] ```````$8`
M````-X4```$````!`````````!X`*H (( 8``````, ```````!&`````#B%
H```!`````0`````````>`#T``0````$``````````P`--/TW``":K0``
`
end