Commit Graph

22 Commits

Author SHA1 Message Date
Oswald Buddenhagen
5db91cf5bc add custom string type
ProString is almost a QStringRef, except that it keeps a copy of instead
of a pointer to the QString - to make it refcountable. additionally, it
holds a hash so it can be efficiently used for repetetive hash lookups.
2010-06-02 11:05:26 +02:00
Oswald Buddenhagen
c63453d878 reorganize AST
turn else, for(), defineTest() and defineReplace() into own node
types instead of treating them as magic conditionals/functions.
on top of that, introduce a proper branching node type, so finding
the alternative code paths can be moved into the parser instead of
burdening the evaluator with it.
2010-06-02 11:05:26 +02:00
Oswald Buddenhagen
f1b591bb06 merge ProFunction into ProCondition
there is no point in the split, given that there is nothing virtual any
more.
2010-06-02 11:05:25 +02:00
Oswald Buddenhagen
2113669fba don't use fromRawData() for the file name parts.
the sub-strings "escaped" from the evaluator through the accessor, so
things did go boom, after all.

Reviewed-by: thorbjorn
2010-04-19 18:19:40 +02:00
Oswald Buddenhagen
d86f7dcd68 plug huge memory leak
in my quest to de-virtualize the ProItems i also devirtualized their
d'tors without providing a replacement. whoops.

Reviewed-by: dt
Task-number: QTCREATORBUG-1003
2010-04-01 11:09:21 +02:00
hjk
9595504bda Long live the king! 2010-03-05 11:28:13 +01:00
Oswald Buddenhagen
b309f9449a directly link ProItems instead of using QList<ProItem*>
somewhat faster again
2010-02-05 15:20:25 +01:00
Oswald Buddenhagen
9341f7da4e de-virtualize ProItem::kind(); use variable instead
now items have no vtable any more
2010-02-05 15:20:25 +01:00
Oswald Buddenhagen
143531289e inline trivial functions 2010-02-05 15:20:25 +01:00
Oswald Buddenhagen
42fd31fb12 remove unused functions 2010-02-05 15:20:25 +01:00
Oswald Buddenhagen
a2dbeecdec remove visitor pattern
it's overengineered for our purpose and would just get in the way of
planned optimizations.
2010-02-05 15:20:25 +01:00
Oswald Buddenhagen
b5fd00955f get rid of lots of qfileinfo and qfile calls
partly by removing unnecessary calls, partly by providing minimalistic
reimplementations.
this gives a quite incredible performance boost ...
2010-01-25 16:53:56 +01:00
Oswald Buddenhagen
9c7d803aec don't pre-split RHS of variable assignments
creating tons of items is a tad allocation-intensive and thus slow.

this is probably slower for often-included files, as now the splitting
is done in every evaluation pass.
2010-01-25 16:53:56 +01:00
Oswald Buddenhagen
61772da250 omit comments from the "AST"
now that the tree will not be written out any more, we can save some
cpu and memory by not recording the information.
2010-01-25 16:53:56 +01:00
Oswald Buddenhagen
cc709e963e purge unused "modified" flag from ProFile 2010-01-25 16:53:55 +01:00
hjk
93cbef8724 long live the king 2009-08-14 09:30:56 +02:00
Jason McDonald
884b7af769 Update license headers and sales contact details.
Reviewed-by: Trust Me
2009-06-17 00:01:27 +10:00
Oswald Buddenhagen
88de3e6a45 support loops: implement for(), next() & break() 2009-05-25 18:35:12 +02:00
Oswald Buddenhagen
d077ba29c3 support custom functions: implement defineTest(), defineReplace(), defined(), return() & export() 2009-05-25 18:35:12 +02:00
Oswald Buddenhagen
6ca93b31fd remove return values from the visitors which need none 2009-05-25 18:35:11 +02:00
hjk
8ca887aae2 Fixes: change file license headers to include LGPL 2009-02-25 09:15:00 +01:00
hjk
fe0533de2a Fixes: move all files in shared/* to src/shared/* 2009-01-26 16:19:24 +01:00