From 9efd8b032d404ee2ad8267df43e7888416e4ff83 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Mon, 12 Jul 2010 00:20:10 +0000 Subject: [PATCH] Remove CYExpression::ReplaceAll into CYCompound::Replace. --- Parser.hpp | 2 -- Replace.cpp | 18 ++++-------------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/Parser.hpp b/Parser.hpp index 48ba4f0..12a5afd 100644 --- a/Parser.hpp +++ b/Parser.hpp @@ -561,8 +561,6 @@ struct CYExpression : virtual CYExpression *ClassName(CYContext &context, bool object); virtual void ClassName(CYOutput &out, bool object) const; - CYExpression *ReplaceAll(CYContext &context); - virtual CYExpression *Replace(CYContext &context) = 0; virtual CYExpression *Primitive(CYContext &context) { diff --git a/Replace.cpp b/Replace.cpp index acc4a44..3538944 100644 --- a/Replace.cpp +++ b/Replace.cpp @@ -136,8 +136,10 @@ CYStatement *CYComment::Replace(CYContext &context) { } CYExpression *CYCompound::Replace(CYContext &context) { - expressions_ = expressions_->ReplaceAll(context); - return expressions_ == NULL ? NULL : this; + CYExpression **last(&expressions_); + for (CYExpression *next(expressions_); next != NULL; next = next->next_) + last = &(*last = next->Replace(context))->next_; + return this; } CYFunctionParameter *CYComprehension::Parameters(CYContext &context) const { $T(NULL) @@ -283,18 +285,6 @@ CYExpression *CYExpression::ForEachIn(CYContext &context) { return this; } -CYExpression *CYExpression::ReplaceAll(CYContext &context) { $T(NULL) - CYExpression *replace(this); - context.Replace(replace); - - if (CYExpression *next = next_->ReplaceAll(context)) - replace->SetNext(next); - else - replace->SetNext(next_); - - return replace; -} - CYNumber *CYFalse::Number(CYContext &context) { return $D(0); } -- 2.49.0