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