]> git.saurik.com Git - cycript.git/commitdiff
Fixed the stupid variable renaming issue at the top level.
authorJay Freeman (saurik) <saurik@saurik.com>
Thu, 19 Nov 2009 06:07:44 +0000 (06:07 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Thu, 19 Nov 2009 06:07:44 +0000 (06:07 +0000)
Darwin.mk
Parser.hpp
Replace.cpp
todo.txt

index 86c7c8a5cccc94cc21ac0ee6e3c2c068851ab4bf..d55abb2379dc3ae9cc7961f850086d24c5cf6270 100644 (file)
--- a/Darwin.mk
+++ b/Darwin.mk
@@ -1,7 +1,6 @@
 # XXX: objective-c exists on non-Darwin
 
 dll := dylib
-flags += -DCY_EXECUTE
 link += -lobjc -framework CoreFoundation
 console += -framework Foundation
 library += -install_name /usr/lib/libcycript.$(dll)
index 9ff1d38548ed1054ed3e56d8fbc99f28f8d33ea1..a963d7ba662d4d7127aabb221e5feeed462e5991 100644 (file)
@@ -356,9 +356,7 @@ struct CYProgram :
     virtual void Output(CYOutput &out) const;
 };
 
-struct CYContext :
-    CYScope
-{
+struct CYContext {
     apr_pool_t *pool_;
     CYOptions &options_;
     CYScope *scope_;
@@ -367,7 +365,7 @@ struct CYContext :
     CYContext(apr_pool_t *pool, CYOptions &options) :
         pool_(pool),
         options_(options),
-        scope_(this)
+        scope_(NULL)
     {
     }
 
index 8938704cdea7ae465005abca9f1d1a3fd354e984..c06c2a514e91711346494fab13feb64c38c579b5 100644 (file)
@@ -480,11 +480,8 @@ void CYProgram::Replace(CYContext &context) {
     CYScope scope;
     scope.parent_ = context.scope_;
     context.scope_ = &scope;
-
     statements_ = statements_->ReplaceAll(context);
-
     context.scope_ = scope.parent_;
-
     scope.Scope(context, statements_);
 
     size_t offset(0);
@@ -597,6 +594,9 @@ namespace {
 }
 
 void CYScope::Scope(CYContext &context, CYStatement *&statements) {
+    if (parent_ == NULL)
+        return;
+
     CYDeclarations *last(NULL), *curr(NULL);
 
     IdentifierOffsets offsets;
index 343ed260a7371874922cf02c922a219e670afde5..b7480c1acd5a282d94fc303a601ba8387d2c32f6 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -25,3 +25,4 @@ NSArray's .toString() and .toLocaleString() fail hard, as Array.prototype.to*Str
 (4).toString() is legal, but I'm stripping the ()'s somehow in the serializer
 applyOnMainThread, when done at console, loops the cyonifier
 special work needs to be done to correctly handle the "arguments" symbol: Declare("arguments", ...Special)
+at the Program level I seem to be eating away all of the var statements