Author: martin
Date: 2007-09-26 10:45:46 -0400 (Wed, 26 Sep 2007)
New Revision: 86403

Added:
   trunk/debugger/languages/native/NativeFundamentalType.cs
Modified:
   trunk/debugger/ChangeLog
   trunk/debugger/backend/arch/DwarfReader.cs
   trunk/debugger/languages/TargetFundamentalType.cs
   trunk/debugger/languages/mono/MonoFundamentalType.cs
   trunk/debugger/languages/mono/MonoSymbolFile.cs
   trunk/debugger/languages/native/NativeLanguage.cs
   trunk/debugger/languages/native/NativeStringType.cs
Log:
2007-09-26  Martin Baulig  <[EMAIL PROTECTED]>

        * languages/TargetFundamentalType.cs
        (TargetFundamentalType): Made this class abstract.
        (TargetFundamentalType.HasClassType): Don't implement this here.
        (TargetFundamentalType.ClassType): Likewise.

        * languages/native/NativeFundamentalType.cs: New file.
        (NativeFundamentalType): Derive from `TargetFundamentalType'.

        * languages/mono/MonoFundamentalType.cs
        (MonoFundamentalType): Implement `HasClassType' and `ClassType' here.



Modified: trunk/debugger/ChangeLog
===================================================================
--- trunk/debugger/ChangeLog    2007-09-26 14:44:01 UTC (rev 86402)
+++ trunk/debugger/ChangeLog    2007-09-26 14:45:46 UTC (rev 86403)
@@ -1,3 +1,16 @@
+2007-09-26  Martin Baulig  <[EMAIL PROTECTED]>
+
+       * languages/TargetFundamentalType.cs
+       (TargetFundamentalType): Made this class abstract.
+       (TargetFundamentalType.HasClassType): Don't implement this here.
+       (TargetFundamentalType.ClassType): Likewise.
+
+       * languages/native/NativeFundamentalType.cs: New file.
+       (NativeFundamentalType): Derive from `TargetFundamentalType'.
+
+       * languages/mono/MonoFundamentalType.cs
+       (MonoFundamentalType): Implement `HasClassType' and `ClassType' here.
+
 2007-09-25  Martin Baulig  <[EMAIL PROTECTED]>
 
        * languages/mono/MonoSymbolFile.cs

Modified: trunk/debugger/backend/arch/DwarfReader.cs
===================================================================
--- trunk/debugger/backend/arch/DwarfReader.cs  2007-09-26 14:44:01 UTC (rev 
86402)
+++ trunk/debugger/backend/arch/DwarfReader.cs  2007-09-26 14:45:46 UTC (rev 
86403)
@@ -3112,7 +3112,7 @@
                                if (kind == FundamentalKind.Unknown)
                                        return new NativeOpaqueType (language, 
Name, byte_size);
 
-                               return new TargetFundamentalType (language, 
Name, kind, byte_size);
+                               return new NativeFundamentalType (language, 
Name, kind, byte_size);
                        }
 
                        protected FundamentalKind GetMonoType 
(DwarfBaseTypeEncoding encoding,

Modified: trunk/debugger/languages/TargetFundamentalType.cs
===================================================================
--- trunk/debugger/languages/TargetFundamentalType.cs   2007-09-26 14:44:01 UTC 
(rev 86402)
+++ trunk/debugger/languages/TargetFundamentalType.cs   2007-09-26 14:45:46 UTC 
(rev 86403)
@@ -23,11 +23,10 @@
                UIntPtr
        }
 
-       public class TargetFundamentalType : TargetType
+       public abstract class TargetFundamentalType : TargetType
        {
                protected readonly int size;
                protected readonly FundamentalKind fundamental_kind;
-               protected readonly TargetClassType class_type;
                protected readonly string name;
 
                public TargetFundamentalType (Language language, string name,
@@ -39,14 +38,6 @@
                        this.size = size;
                }
 
-               protected TargetFundamentalType (Language language, string name,
-                                                FundamentalKind kind, 
TargetClassType class_type,
-                                                int size)
-                       : this (language, name, kind, size)
-               {
-                       this.class_type = class_type;
-               }
-
                public override string Name {
                        get { return name; }
                }
@@ -66,14 +57,6 @@
                        }
                }
 
-               public override bool HasClassType {
-                       get { return class_type != null; }
-               }
-
-               public override TargetClassType ClassType {
-                       get { return class_type; }
-               }
-
                public FundamentalKind FundamentalKind {
                        get {
                                return fundamental_kind;

Modified: trunk/debugger/languages/mono/MonoFundamentalType.cs
===================================================================
--- trunk/debugger/languages/mono/MonoFundamentalType.cs        2007-09-26 
14:44:01 UTC (rev 86402)
+++ trunk/debugger/languages/mono/MonoFundamentalType.cs        2007-09-26 
14:45:46 UTC (rev 86403)
@@ -5,16 +5,26 @@
        internal class MonoFundamentalType : TargetFundamentalType
        {
                MonoSymbolFile file;
+               MonoClassType class_type;
 
                public MonoFundamentalType (MonoSymbolFile file, 
Cecil.TypeDefinition type,
                                            string name, FundamentalKind kind, 
int size)
-                       : base (file.Language, name, kind, new MonoClassType 
(file, type), size)
+                       : base (file.Language, name, kind, size)
                {
                        this.file = file;
+                       this.class_type = new MonoClassType (file, type);
                }
 
-               new public MonoClassType ClassType {
-                       get { return (MonoClassType) base.ClassType; }
+               public override bool HasClassType {
+                       get { return true; }
                }
+
+               public override TargetClassType ClassType {
+                       get { return class_type; }
+               }
+
+               internal MonoClassType MonoClassType {
+                       get { return class_type; }
+               }
        }
 }

Modified: trunk/debugger/languages/mono/MonoSymbolFile.cs
===================================================================
--- trunk/debugger/languages/mono/MonoSymbolFile.cs     2007-09-26 14:44:01 UTC 
(rev 86402)
+++ trunk/debugger/languages/mono/MonoSymbolFile.cs     2007-09-26 14:45:46 UTC 
(rev 86403)
@@ -384,7 +384,7 @@
 
                        MonoFundamentalType fundamental = type as 
MonoFundamentalType;
                        if (fundamental != null)
-                               return fundamental.ClassType;
+                               return fundamental.MonoClassType;
 
                        throw new InternalError ("UNKNOWN TYPE: {0}", type);
                }

Added: trunk/debugger/languages/native/NativeFundamentalType.cs
===================================================================
--- trunk/debugger/languages/native/NativeFundamentalType.cs    2007-09-26 
14:44:01 UTC (rev 86402)
+++ trunk/debugger/languages/native/NativeFundamentalType.cs    2007-09-26 
14:45:46 UTC (rev 86403)
@@ -0,0 +1,20 @@
+using System;
+
+namespace Mono.Debugger.Languages.Native
+{
+       internal class NativeFundamentalType : TargetFundamentalType
+       {
+               public NativeFundamentalType (Language language, string name,
+                                             FundamentalKind kind, int size)
+                       : base (language, name, kind, size)
+               { }
+
+               public override bool HasClassType {
+                       get { return false; }
+               }
+
+               public override TargetClassType ClassType {
+                       get { throw new InvalidOperationException (); }
+               }
+       }
+}

Modified: trunk/debugger/languages/native/NativeLanguage.cs
===================================================================
--- trunk/debugger/languages/native/NativeLanguage.cs   2007-09-26 14:44:01 UTC 
(rev 86402)
+++ trunk/debugger/languages/native/NativeLanguage.cs   2007-09-26 14:45:46 UTC 
(rev 86403)
@@ -20,8 +20,8 @@
                        this.bfd_container = bfd_container;
                        this.info = info;
 
-                       integer_type = new TargetFundamentalType (this, "int", 
FundamentalKind.Int32, 4);
-                       long_type = new TargetFundamentalType (this, "long", 
FundamentalKind.Int64, 8);
+                       integer_type = new NativeFundamentalType (this, "int", 
FundamentalKind.Int32, 4);
+                       long_type = new NativeFundamentalType (this, "long", 
FundamentalKind.Int64, 8);
                        pointer_type = new NativePointerType (this, "void *", 
info.TargetAddressSize);
                        void_type = new NativeOpaqueType (this, "void", 0);
                        string_type = new NativeStringType (this, 
info.TargetAddressSize);

Modified: trunk/debugger/languages/native/NativeStringType.cs
===================================================================
--- trunk/debugger/languages/native/NativeStringType.cs 2007-09-26 14:44:01 UTC 
(rev 86402)
+++ trunk/debugger/languages/native/NativeStringType.cs 2007-09-26 14:45:46 UTC 
(rev 86403)
@@ -2,7 +2,7 @@
 
 namespace Mono.Debugger.Languages.Native
 {
-       internal class NativeStringType : TargetFundamentalType
+       internal class NativeStringType : NativeFundamentalType
        {
                static int max_string_length = 100;
 

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

Reply via email to