Author: martin
Date: 2005-09-23 14:10:45 -0400 (Fri, 23 Sep 2005)
New Revision: 50607

Modified:
   trunk/debugger/backends/TargetAccess.cs
   trunk/debugger/backends/mono/MonoFundamentalType.cs
   trunk/debugger/backends/mono/MonoLanguageBackend.cs
   trunk/debugger/backends/mono/MonoStringType.cs
   trunk/debugger/interfaces/ITargetAccess.cs
Log:
2005-09-23  Martin Baulig  <[EMAIL PROTECTED]>

        * backends/mono/MonoFundamentalType.cs
        (MonoFundamentalType.ctor): Just take an `ILanguage' instead of a
        `MonoSymbolFile'; removed the `klass_address' argument.

        * backends/mono/MonoObjectType.cs
        (MonoObjectType.ctor): Removed the `klass_address' argument.

        * backends/mono/MonoStringType.cs
        (MonoStringtype.ctor): Removed the `klass_address' argument.



Modified: trunk/debugger/backends/TargetAccess.cs
===================================================================
--- trunk/debugger/backends/TargetAccess.cs     2005-09-23 18:09:41 UTC (rev 
50606)
+++ trunk/debugger/backends/TargetAccess.cs     2005-09-23 18:10:45 UTC (rev 
50607)
@@ -46,6 +46,9 @@
                public abstract TargetAddress CallMethod (TargetAddress method, 
TargetAddress arg1,
                                                          TargetAddress arg2);
 
+               public abstract TargetAddress CallMethod (TargetAddress method, 
long method_argument,
+                                                         string 
string_argument);
+
                public abstract void RuntimeInvoke (ITargetFunctionType 
method_argument,
                                                    ITargetObject 
object_argument,
                                                    ITargetObject[] 
param_objects);
@@ -123,6 +126,12 @@
                        return process.CallMethod (method, arg1, arg2);
                }
 
+               public override TargetAddress CallMethod (TargetAddress method, 
long method_argument,
+                                                         string 
string_argument)
+               {
+                       return process.CallMethod (method, method_argument, 
string_argument);
+               }
+
                public override void RuntimeInvoke (ITargetFunctionType 
method_argument,
                                                    ITargetObject 
object_argument,
                                                    ITargetObject[] 
param_objects)
@@ -193,6 +202,15 @@
                                return sse.Process.CallMethod (method, arg1, 
arg2);
                }
 
+               public override TargetAddress CallMethod (TargetAddress method, 
long method_argument,
+                                                         string 
string_argument)
+               {
+                       if (sse.ThreadManager.InBackgroundThread)
+                               throw new InvalidOperationException ();
+                       else
+                               return sse.Process.CallMethod (method, 
method_argument, string_argument);
+               }
+
                public override void RuntimeInvoke (ITargetFunctionType 
method_argument,
                                                    ITargetObject 
object_argument,
                                                    ITargetObject[] 
param_objects)

Modified: trunk/debugger/backends/mono/MonoFundamentalType.cs
===================================================================
--- trunk/debugger/backends/mono/MonoFundamentalType.cs 2005-09-23 18:09:41 UTC 
(rev 50606)
+++ trunk/debugger/backends/mono/MonoFundamentalType.cs 2005-09-23 18:10:45 UTC 
(rev 50607)
@@ -93,17 +93,9 @@
                        }
                }
 
-               internal virtual MonoFundamentalObjectBase CreateInstance 
(StackFrame frame, object obj)
+               internal virtual MonoFundamentalObjectBase CreateInstance 
(ITargetAccess target,
+                                                                          
object obj)
                {
-                       TargetAddress address = Language.AllocateMemory 
(frame.TargetAccess, size);
-                       frame.TargetAccess.TargetMemoryAccess.WriteBuffer 
(address, CreateObject (obj));
-
-                       TargetLocation location = new AbsoluteTargetLocation 
(frame.TargetAccess, address);
-                       return new MonoFundamentalObject (this, location);
-               }
-
-               internal virtual MonoFundamentalObject CreateInstance 
(ITargetAccess target, object obj)
-               {
                        TargetAddress address = Language.AllocateMemory 
(target, size);
                        target.TargetMemoryAccess.WriteBuffer (address, 
CreateObject (obj));
 

Modified: trunk/debugger/backends/mono/MonoLanguageBackend.cs
===================================================================
--- trunk/debugger/backends/mono/MonoLanguageBackend.cs 2005-09-23 18:09:41 UTC 
(rev 50606)
+++ trunk/debugger/backends/mono/MonoLanguageBackend.cs 2005-09-23 18:10:45 UTC 
(rev 50607)
@@ -835,7 +835,7 @@
                        if (type == null)
                                return null;
 
-                       return type.CreateInstance (frame, obj);
+                       return type.CreateInstance (frame.TargetAccess, obj);
                }
 
                public ITargetFundamentalObject CreateInstance (ITargetAccess 
target, int value)

Modified: trunk/debugger/backends/mono/MonoStringType.cs
===================================================================
--- trunk/debugger/backends/mono/MonoStringType.cs      2005-09-23 18:09:41 UTC 
(rev 50606)
+++ trunk/debugger/backends/mono/MonoStringType.cs      2005-09-23 18:10:45 UTC 
(rev 50607)
@@ -45,14 +45,15 @@
                         return retval;
                }
 
-                internal override MonoFundamentalObjectBase CreateInstance 
(StackFrame frame, object obj)
+                internal override MonoFundamentalObjectBase CreateInstance 
(ITargetAccess target,
+                                                                           
object obj)
                 {
                         string str = obj as string;
                         if (str == null)
                                 throw new ArgumentException ();
 
-                        TargetAddress retval = frame.Process.CallMethod 
(CreateString, 0, str);
-                        TargetLocation location = new AbsoluteTargetLocation 
(frame, retval);
+                        TargetAddress retval = target.CallMethod 
(CreateString, 0, str);
+                        TargetLocation location = new AbsoluteTargetLocation 
(target, retval);
                         return new MonoStringObject (this, location);
                 }
 

Modified: trunk/debugger/interfaces/ITargetAccess.cs
===================================================================
--- trunk/debugger/interfaces/ITargetAccess.cs  2005-09-23 18:09:41 UTC (rev 
50606)
+++ trunk/debugger/interfaces/ITargetAccess.cs  2005-09-23 18:10:45 UTC (rev 
50607)
@@ -31,6 +31,9 @@
                TargetAddress CallMethod (TargetAddress method, TargetAddress 
arg1,
                                          TargetAddress arg2);
 
+               TargetAddress CallMethod (TargetAddress method, long 
method_argument,
+                                         string string_argument);
+
                void RuntimeInvoke (ITargetFunctionType method_argument,
                                    ITargetObject object_argument,
                                    ITargetObject[] param_objects);

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to