]> git.saurik.com Git - cycript.git/blobdiff - ObjectiveC.hpp
Found the garbage collection bug from hell (classes apparently really need /something...
[cycript.git] / ObjectiveC.hpp
index 230813ff35ba02e16cc11afc66cd8dd8f8f7cad4..5a41c5ebb5b65f5a6618201f599f6e314b5b209f 100644 (file)
@@ -187,17 +187,41 @@ struct CYCategory :
 struct CYSend :
     CYExpression
 {
-    CYExpression *self_;
     CYArgument *arguments_;
 
-    CYSend(CYExpression *self, CYArgument *arguments) :
-        self_(self),
+    CYSend(CYArgument *arguments) :
         arguments_(arguments)
     {
     }
 
     CYPrecedence(0)
 
+    virtual void Output(CYOutput &out, CYFlags flags) const;
+};
+
+struct CYSendDirect :
+    CYSend
+{
+    CYExpression *self_;
+
+    CYSendDirect(CYExpression *self, CYArgument *arguments) :
+        CYSend(arguments),
+        self_(self)
+    {
+    }
+
+    virtual CYExpression *Replace(CYContext &context);
+    virtual void Output(CYOutput &out, CYFlags flags) const;
+};
+
+struct CYSendSuper :
+    CYSend
+{
+    CYSendSuper(CYArgument *arguments) :
+        CYSend(arguments)
+    {
+    }
+
     virtual CYExpression *Replace(CYContext &context);
     virtual void Output(CYOutput &out, CYFlags flags) const;
 };