[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/sdk/kdevelop/languages/cpp/parser
From: Alexander Dymo <adymo () kdevelop ! org>
Date: 2010-02-14 19:48:12
Message-ID: 1266176892.346109.1781.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1090172 by dymo:
Optimize C++ parser memory consumption: don't create cast expression node in the \
mempool unless necessary.
Optimization effect for one of my C files:
before: 777M
after: 703M
74M saved
M +8 -3 parser.cpp
--- trunk/extragear/sdk/kdevelop/languages/cpp/parser/parser.cpp #1090171:1090172
@@ -4235,16 +4235,21 @@
{
advance();
- CastExpressionAST *ast = CreateNode<CastExpressionAST>(session->mempool);
- if (parseTypeId(ast->type_id))
+ TypeIdAST *typeIdAst = 0;
+ if (parseTypeId(typeIdAst))
{
if (session->token_stream->lookAhead() == ')')
{
advance();
- if (parseCastExpression(ast->expression))
+ ExpressionAST *castExpressionAst = 0;
+ if (parseCastExpression(castExpressionAst))
{
+ CastExpressionAST *ast = \
CreateNode<CastExpressionAST>(session->mempool); + ast->type_id = \
typeIdAst; + ast->expression = castExpressionAst;
+
UPDATE_POS(ast, start, _M_last_valid_token+1);
node = ast;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic