From: <ac...@us...> - 2010-03-29 22:17:10
|
Revision: 18 http://clibinutils.svn.sourceforge.net/clibinutils/?rev=18&view=rev Author: aco Date: 2010-03-29 22:17:04 +0000 (Mon, 29 Mar 2010) Log Message: ----------- build and install also Mono.Cecil.Mdb.dll Modified Paths: -------------- mono-based-binutils/branches/aco-dev/tools/Makefile.am mono-based-binutils/branches/aco-dev/tools/Makefile.in Property Changed: ---------------- mono-based-binutils/branches/aco-dev/tools/ Property changes on: mono-based-binutils/branches/aco-dev/tools ___________________________________________________________________ Modified: svn:externals - Mono.Cecil svn://anonsvn.mono-project.com/source/trunk/mcs/class/Mono.Cecil + Mono.Cecil svn://anonsvn.mono-project.com/source/trunk/mcs/class/Mono.Cecil Mono.Cecil.Mdb svn://anonsvn.mono-project.com/source/trunk/mcs/class/Mono.Cecil.Mdb Mono.CompilerServices.SymbolWriter svn://anonsvn.mono-project.com/source/trunk/mcs/class/Mono.CompilerServices.SymbolWriter Modified: mono-based-binutils/branches/aco-dev/tools/Makefile.am =================================================================== --- mono-based-binutils/branches/aco-dev/tools/Makefile.am 2010-03-29 22:16:13 UTC (rev 17) +++ mono-based-binutils/branches/aco-dev/tools/Makefile.am 2010-03-29 22:17:04 UTC (rev 18) @@ -1,9 +1,9 @@ EXTRA_DIST = Mono.Cecil -CLEANFILES = Mono.Cecil.dll gcc4cli.utils.dll ar.exe ld.exe nm.exe objdump.exe objcopy.exe +CLEANFILES = Mono.Cecil.dll Mono.Cecil.Mdb.dll gcc4cli.utils.dll ar.exe ld.exe nm.exe objdump.exe objcopy.exe -lbin_SCRIPTS = Mono.Cecil.dll gcc4cli.utils.dll ar.exe ld.exe nm.exe objdump.exe objcopy.exe +lbin_SCRIPTS = Mono.Cecil.dll Mono.Cecil.Mdb.dll gcc4cli.utils.dll ar.exe ld.exe nm.exe objdump.exe objcopy.exe install-lbinSCRIPTS: $(lbin_SCRIPTS) test -z "$(lbindir)" || $(mkdir_p) "$(DESTDIR)$(lbindir)" @@ -28,6 +28,12 @@ Mono.Cecil.dll: $(CECIL_SRC) $(MCS) -t:library -out:Mono.Cecil.dll $(CECIL_SRC) +MONOCECILMDB = $(shell cat $(srcdir)/Mono.Cecil.Mdb/Mono.Cecil.Mdb.dll.sources) +CECILMDB_SRC = $(MONOCECILMDB:%=$(srcdir)/Mono.Cecil.Mdb/%) + +Mono.Cecil.Mdb.dll: $(CECILMDB_SRC) + $(MCS) -t:library -r:Mono.Cecil.dll -d:CECIL -out:Mono.Cecil.Mdb.dll $(CECILMDB_SRC) + UTILS_SRC = \ gcc4cli/utils/AssemblyResolver.cs \ gcc4cli/utils/CDynamicLibrary.cs \ Modified: mono-based-binutils/branches/aco-dev/tools/Makefile.in =================================================================== --- mono-based-binutils/branches/aco-dev/tools/Makefile.in 2010-03-29 22:16:13 UTC (rev 17) +++ mono-based-binutils/branches/aco-dev/tools/Makefile.in 2010-03-29 22:17:04 UTC (rev 18) @@ -164,10 +164,12 @@ top_srcdir = @top_srcdir@ EXTRA_DIST = Mono.Cecil $(UTILS_SRC) $(LD_SRC) $(NM_SRC) $(AR_SRC) \ $(OBJDUMP_SRC) $(OBJCOPY_SRC) -CLEANFILES = Mono.Cecil.dll gcc4cli.utils.dll ar.exe ld.exe nm.exe objdump.exe objcopy.exe -lbin_SCRIPTS = Mono.Cecil.dll gcc4cli.utils.dll ar.exe ld.exe nm.exe objdump.exe objcopy.exe +CLEANFILES = Mono.Cecil.dll Mono.Cecil.Mdb.dll gcc4cli.utils.dll ar.exe ld.exe nm.exe objdump.exe objcopy.exe +lbin_SCRIPTS = Mono.Cecil.dll Mono.Cecil.Mdb.dll gcc4cli.utils.dll ar.exe ld.exe nm.exe objdump.exe objcopy.exe MONOCECIL = $(shell cat $(srcdir)/Mono.Cecil/Mono.Cecil.dll.sources) CECIL_SRC = $(MONOCECIL:%=$(srcdir)/Mono.Cecil/%) +MONOCECILMDB = $(shell cat $(srcdir)/Mono.Cecil.Mdb/Mono.Cecil.Mdb.dll.sources) +CECILMDB_SRC = $(MONOCECILMDB:%=$(srcdir)/Mono.Cecil.Mdb/%) UTILS_SRC = \ gcc4cli/utils/AssemblyResolver.cs \ gcc4cli/utils/CDynamicLibrary.cs \ @@ -423,6 +425,9 @@ Mono.Cecil.dll: $(CECIL_SRC) $(MCS) -t:library -out:Mono.Cecil.dll $(CECIL_SRC) +Mono.Cecil.Mdb.dll: $(CECILMDB_SRC) + $(MCS) -t:library -r:Mono.Cecil.dll -d:CECIL -out:Mono.Cecil.Mdb.dll $(CECILMDB_SRC) + gcc4cli.utils.dll: $(UTILS_FULL_SRC) Mono.Cecil.dll $(MCS) -t:library -r:Mono.Cecil.dll -out:gcc4cli.utils.dll $(UTILS_FULL_SRC) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2010-03-29 22:36:33
|
Revision: 20 http://clibinutils.svn.sourceforge.net/clibinutils/?rev=20&view=rev Author: aco Date: 2010-03-29 22:36:27 +0000 (Mon, 29 Mar 2010) Log Message: ----------- refactor ReferenceGetters Modified Paths: -------------- mono-based-binutils/branches/aco-dev/tools/Makefile.am mono-based-binutils/branches/aco-dev/tools/Makefile.in mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileBuilder.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/IReferenceGetters.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGetters.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGettersCached.cs Added Paths: ----------- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGettersTracer.cs Modified: mono-based-binutils/branches/aco-dev/tools/Makefile.am =================================================================== --- mono-based-binutils/branches/aco-dev/tools/Makefile.am 2010-03-29 22:24:32 UTC (rev 19) +++ mono-based-binutils/branches/aco-dev/tools/Makefile.am 2010-03-29 22:36:27 UTC (rev 20) @@ -57,6 +57,7 @@ gcc4cli/utils/IReferenceGetters.cs \ gcc4cli/utils/ReferenceGetters.cs \ gcc4cli/utils/ReferenceGettersCached.cs \ + gcc4cli/utils/ReferenceGettersTracer.cs \ gcc4cli/utils/ReferencesFixer.cs \ gcc4cli/utils/Set.cs \ gcc4cli/utils/Tracer.cs Modified: mono-based-binutils/branches/aco-dev/tools/Makefile.in =================================================================== --- mono-based-binutils/branches/aco-dev/tools/Makefile.in 2010-03-29 22:24:32 UTC (rev 19) +++ mono-based-binutils/branches/aco-dev/tools/Makefile.in 2010-03-29 22:36:27 UTC (rev 20) @@ -193,6 +193,7 @@ gcc4cli/utils/IReferenceGetters.cs \ gcc4cli/utils/ReferenceGetters.cs \ gcc4cli/utils/ReferenceGettersCached.cs \ + gcc4cli/utils/ReferenceGettersTracer.cs \ gcc4cli/utils/ReferencesFixer.cs \ gcc4cli/utils/Set.cs \ gcc4cli/utils/Tracer.cs Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileBuilder.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileBuilder.cs 2010-03-29 22:24:32 UTC (rev 19) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileBuilder.cs 2010-03-29 22:36:27 UTC (rev 20) @@ -262,7 +262,12 @@ protected void fixReferences () { if (filesAdded) { - ReferenceGettersCached reffixer = new ReferenceGettersCached (this); + IReferenceGetters reffixer = new ReferenceGetters (this); + if (Tracer.TraceAtLevel(2)) + reffixer = new ReferenceGettersTracer (reffixer, 2, " ReferenceGetters: "); + reffixer = new ReferenceGettersCached (reffixer); + if (Tracer.TraceAtLevel(6)) + reffixer = new ReferenceGettersTracer (reffixer, 6, "ReferenceGettersCached: "); if (keepIncompleteTypes) { foreach (TypeDefinition inc_type in incomplete_types.Values) { @@ -270,10 +275,7 @@ Module.Types.Add (mtype); } } else { - TypeReference newtype = new PointerType (Module.Import (typeof (void))); - foreach (TypeDefinition inc_type in incomplete_types.Values) { - reffixer.Add (inc_type.ToString (), newtype); - } + reffixer.MapTypeReferences(incomplete_types.Values, new PointerType (Module.Import (typeof (void)))); } ReferencesFixer rf = new ReferencesFixer (reffixer); Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/IReferenceGetters.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/IReferenceGetters.cs 2010-03-29 22:24:32 UTC (rev 19) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/IReferenceGetters.cs 2010-03-29 22:36:27 UTC (rev 20) @@ -1,10 +1,13 @@ +using System.Collections; using Mono.Cecil; namespace gcc4cli.util { public interface IReferenceGetters { + void MapTypeReferences (ICollection types, TypeReference new_type); + ModuleReference GetModuleReference (ModuleReference module); TypeReference GetTypeReference (TypeReference type); Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGetters.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGetters.cs 2010-03-29 22:24:32 UTC (rev 19) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGetters.cs 2010-03-29 22:36:27 UTC (rev 20) @@ -42,6 +42,15 @@ { } + Hashtable mapped_types = new Hashtable (); //Dictionary<string,TypeReference> + + public void MapTypeReferences (ICollection types, TypeReference new_type) + { + foreach (TypeReference inc_type in types) { + mapped_types[inc_type.ToString ()] = new_type; + } + } + public virtual ModuleReference GetModuleReference (ModuleReference module) { string name = module.Name.ToLower (); @@ -96,23 +105,19 @@ type = (type as SentinelType).ElementType; } - TypeReference result = null; + if (mapped_types[type.ToString ()] != null) + return (TypeReference)mapped_types[type.ToString ()]; - Tracer.Trace (2,"Searching: " + type.FullName); - if (m_cfile != null && (type.Name == "<Module>" || type.Name == ExternalAssemblyName)) { - result = m_cfile.MainType; + return m_cfile.MainType; } else { + TypeReference result = null; result = module_GetTypeReference (type); + if (result == null) + throw new NotFoundException (type); + return result; } - - if (result == null) - throw new NotFoundException (type); - - Tracer.Trace(2,"Returning: " + result.ToString ()); - - return result; } MemberReference GetMemberReference (MemberReference member) @@ -219,8 +224,6 @@ MethodReference result = null; - Tracer.Trace(2,"Searching: " + method.ToString ()); - if (m_cfile != null && GetTypeReference (method.DeclaringType) == m_cfile.MainType) { string name = method.Name; @@ -276,7 +279,6 @@ throw new NotFoundException (method); } - Tracer.Trace(2,"Returning: " + result.ToString()); return result; } @@ -299,8 +301,6 @@ { FieldReference result = null; - Tracer.Trace(2,"Searching: " + field.ToString ()); - if (m_cfile != null && (field.DeclaringType.Name == "<MODULE>" || field.DeclaringType == m_cfile.MainType @@ -327,7 +327,6 @@ throw new NotFoundException (field); } - Tracer.Trace(2,"Returning: " + result.ToString ()); return result; } Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGettersCached.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGettersCached.cs 2010-03-29 22:24:32 UTC (rev 19) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGettersCached.cs 2010-03-29 22:36:27 UTC (rev 20) @@ -8,68 +8,42 @@ namespace gcc4cli.util { - public class ReferenceGettersCached : ReferenceGetters + public class ReferenceGettersCached : IReferenceGetters { + IReferenceGetters wrapped; + Hashtable types_cache = new Hashtable (); //Dictionary<string,TypeReference> Hashtable members_cache = new Hashtable (); //Dictionary<string,IMemberReference> - - public ReferenceGettersCached (CFile cfile, bool allowExternalAssembly) - : base (cfile, allowExternalAssembly) + public ReferenceGettersCached (IReferenceGetters _wrapped) { + wrapped = _wrapped; } - public ReferenceGettersCached (CFileBuilder cfile) - : base (cfile) + public void MapTypeReferences (ICollection types, TypeReference new_type) { + wrapped.MapTypeReferences (types, new_type); } - public ReferenceGettersCached (ModuleDefinition module) - : base (module) + public ModuleReference GetModuleReference (ModuleReference module) { + return wrapped.GetModuleReference (module); } public void Add (string name, TypeReference type) { - Tracer.Trace (6,"Add type to Cache: " + name + " as " + type.ToString ()); types_cache[name] = type; } - public void Add (TypeReference type) - { - Add (type.ToString (), type); - } - public void Add (string name, IMemberReference member) { - Tracer.Trace (6,"Add member to Cache: " + name + " as " + member.ToString ()); members_cache[name] = member; } - public void Add (IMemberReference member) + public TypeReference GetTypeReference (TypeReference type) { - Add (member.ToString (),member); - } - - public TypeReference CacheGetType (string name) - { - - if (types_cache.Contains (name)) - return (TypeReference) types_cache[name]; - return null; - } - - public IMemberReference CacheGetSymbol (string name) - { - if (members_cache.Contains (name)) - return (IMemberReference) members_cache[name]; - return null; - } - - public override TypeReference GetTypeReference (TypeReference type) - { if (type == null) return null; @@ -82,19 +56,18 @@ if (types_cache.Contains (fullname)) { result = (TypeReference)types_cache[fullname]; - Tracer.Trace (4,"Found in Cache: " + fullname + " as " + result.FullName); return result; } - result = base.GetTypeReference (type); + result = wrapped.GetTypeReference (type); Add (fullname, result); - Add (result); + Add (result.ToString (), result); return result; } - public override MethodReference GetMethodReference (MethodReference method) + public MethodReference GetMethodReference (MethodReference method) { if (method == null) return null; @@ -104,37 +77,40 @@ if (members_cache.Contains (fullname)) { result = (MethodReference)members_cache[fullname]; - Tracer.Trace (4,"Found in Cache: " + fullname + " as " + result.ToString ()); return result; } - result = base.GetMethodReference (method); + result = wrapped.GetMethodReference (method); Add (fullname, result); - Add (result); + Add (result.ToString (), result); return result; } - public override FieldReference GetFieldReference (FieldReference field) + public FieldReference GetFieldReference (FieldReference field) { FieldReference result = null; string fullname = field.ToString (); if (members_cache.Contains (fullname)) { result = (FieldReference)members_cache[fullname]; - Tracer.Trace (4,"Found in Cache: " + fullname + " as " + result.ToString ()); return result; } - result = base.GetFieldReference (field); + result = wrapped.GetFieldReference (field); Add (fullname, result); - Add (result); + Add (result.ToString (), result); return result; } + public CallSite GetCallSite (CallSite sig) + { + return wrapped.GetCallSite (sig); + } + } } Added: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGettersTracer.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGettersTracer.cs (rev 0) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ReferenceGettersTracer.cs 2010-03-29 22:36:27 UTC (rev 20) @@ -0,0 +1,81 @@ + +using System; +using System.IO; +using System.Collections; + +using Mono.Cecil; +using Mono.Cecil.Cil; + +namespace gcc4cli.util { + + public class ReferenceGettersTracer : IReferenceGetters + { + IReferenceGetters wrapped; + int level = 0; + string header = ""; + + public ReferenceGettersTracer (IReferenceGetters _wrapped, int _level, string _header) + { + wrapped = _wrapped; + level = _level; + header = _header; + } + + public ReferenceGettersTracer (IReferenceGetters _wrapped) + : this (_wrapped, 2, "") + { + } + + public void MapTypeReferences (ICollection types, TypeReference new_type) + { + wrapped.MapTypeReferences (types, new_type); + } + + public ModuleReference GetModuleReference (ModuleReference module) + { + ModuleReference result = null; + Tracer.Trace (level, header + "Searching: " + module.ToString ()); + result = wrapped.GetModuleReference (module); + Tracer.Trace (level, header + "Returning: " + result.ToString ()); + return result; + } + + public TypeReference GetTypeReference (TypeReference type) + { + TypeReference result = null; + Tracer.Trace (level, header + "Searching: " + type.FullName); + result = wrapped.GetTypeReference (type); + Tracer.Trace (level, header + "Returning: " + result.ToString ()); + return result; + } + + public MethodReference GetMethodReference (MethodReference method) + { + MethodReference result = null; + Tracer.Trace(level, header + "Searching: " + method.ToString ()); + result = wrapped.GetMethodReference (method); + Tracer.Trace(level, header + "Returning: " + result.ToString()); + return result; + } + + public FieldReference GetFieldReference (FieldReference field) + { + FieldReference result = null; + Tracer.Trace(level, header + "Searching: " + field.ToString ()); + result = wrapped.GetFieldReference (field); + Tracer.Trace(level, header + "Returning: " + result.ToString()); + return result; + } + + public CallSite GetCallSite (CallSite sig) + { + CallSite result = null; + Tracer.Trace(level, header + "Searching: " + sig.ToString ()); + result = wrapped.GetCallSite (sig); + Tracer.Trace(level, header + "Returning: " + result.ToString()); + return result; + } + + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2010-03-29 22:52:57
|
Revision: 21 http://clibinutils.svn.sourceforge.net/clibinutils/?rev=21&view=rev Author: aco Date: 2010-03-29 22:52:50 +0000 (Mon, 29 Mar 2010) Log Message: ----------- initial refactory of CFile Modified Paths: -------------- mono-based-binutils/branches/aco-dev/tools/Makefile.am mono-based-binutils/branches/aco-dev/tools/Makefile.in mono-based-binutils/branches/aco-dev/tools/gcc4cli/ar/Driver.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/nm/Driver.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/objcopy/Driver.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/objdump/Driver.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFile.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileBuilder.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileFactory.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CObject.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CStaticLibrary.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileBuilder.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileModifier.cs Added Paths: ----------- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFile.cs mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileNames.cs Modified: mono-based-binutils/branches/aco-dev/tools/Makefile.am =================================================================== --- mono-based-binutils/branches/aco-dev/tools/Makefile.am 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/Makefile.am 2010-03-29 22:52:50 UTC (rev 21) @@ -52,8 +52,10 @@ gcc4cli/utils/RedefinitionException.cs \ gcc4cli/utils/TypeMismatchException.cs \ gcc4cli/utils/WrongFileFormatException.cs \ + gcc4cli/utils/ICFile.cs \ gcc4cli/utils/ICFileBuilder.cs \ gcc4cli/utils/ICFileModifier.cs \ + gcc4cli/utils/ICFileNames.cs \ gcc4cli/utils/IReferenceGetters.cs \ gcc4cli/utils/ReferenceGetters.cs \ gcc4cli/utils/ReferenceGettersCached.cs \ Modified: mono-based-binutils/branches/aco-dev/tools/Makefile.in =================================================================== --- mono-based-binutils/branches/aco-dev/tools/Makefile.in 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/Makefile.in 2010-03-29 22:52:50 UTC (rev 21) @@ -188,8 +188,10 @@ gcc4cli/utils/RedefinitionException.cs \ gcc4cli/utils/TypeMismatchException.cs \ gcc4cli/utils/WrongFileFormatException.cs \ + gcc4cli/utils/ICFile.cs \ gcc4cli/utils/ICFileBuilder.cs \ gcc4cli/utils/ICFileModifier.cs \ + gcc4cli/utils/ICFileNames.cs \ gcc4cli/utils/IReferenceGetters.cs \ gcc4cli/utils/ReferenceGetters.cs \ gcc4cli/utils/ReferenceGettersCached.cs \ Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/ar/Driver.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/ar/Driver.cs 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/ar/Driver.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -136,7 +136,7 @@ lib = CFileFactory.CreateCStaticLibrary (ArchiveName); } else { - CFile myfile = CFileFactory.LoadCFile (ArchiveFileName); + ICFile myfile = CFileFactory.LoadCFile (ArchiveFileName); if (myfile is CStaticLibrary) lib = myfile as CStaticLibrary; else @@ -147,7 +147,7 @@ lib.StartBuilding (); while (files.Count > 0) { String filename = (string) files.Dequeue (); - CFile obj = CFileFactory.LoadCFile (filename); + ICFile obj = CFileFactory.LoadCFile (filename); if (update && lib.Contains (obj.Name)) lib.Remove (obj.Name); lib.Add (obj); Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/nm/Driver.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/nm/Driver.cs 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/nm/Driver.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -92,7 +92,7 @@ if (printFilename) Console.WriteLine (filename + ":"); try { - CFile myfile = CFileFactory.LoadCFile (filename); + ICFile myfile = CFileFactory.LoadCFile (filename); if (myfile is CStaticLibrary) { CStaticLibrary lib = myfile as CStaticLibrary; @@ -101,7 +101,7 @@ dump (obj.Name, obj); } } else { - dump (filename, myfile); + dump (filename, (CFile)myfile); } } catch (CFileException e) { Console.WriteLine ("Error : {0}", e.Message); Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/objcopy/Driver.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/objcopy/Driver.cs 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/objcopy/Driver.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -31,7 +31,7 @@ void Run () { try { - CFile cfile = CFileFactory.LoadCFile (m_inputFile); + ICFile cfile = CFileFactory.LoadCFile (m_inputFile); if (cfile is CStaticLibrary) Error (prog_name + " cannot handle Static Libraries"); Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/objdump/Driver.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/objdump/Driver.cs 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/objdump/Driver.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -36,7 +36,7 @@ while (files.Count > 0) { String AssemblyName = (string) files.Dequeue (); if (CFileFactory.CheckIsCFile (AssemblyName)) { - CFile cfile = CFileFactory.LoadCFile (AssemblyName); + ICFile cfile = CFileFactory.LoadCFile (AssemblyName); if (cfile is CStaticLibrary) { Writer.WriteLine ("//++++ objdump of CStaticLibrary: " + cfile.Name); foreach (CObject obj in (cfile as CStaticLibrary).Objects) { Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFile.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFile.cs 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFile.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -7,7 +7,7 @@ namespace gcc4cli.util { - public abstract class CFile { + public abstract class CFile : ICFile, ICFileNames { public static readonly string ExternalAssemblyName = "ExternalAssembly"; public static readonly string ExternalTypeName = "ExternalAssembly"; @@ -128,31 +128,6 @@ throw new NotFoundException ("Can't find member '" + name + "' in assembly " + Name, name); } - public ICollection AllDefTypes () - { - return Module.Types; - } - - public ICollection AllDefMethods () - { - return MainType.Methods; - } - - public ICollection AllDefFields () - { - return MainType.Fields; - } - - public ICollection AllRefTypes () - { - return Module.TypeReferences; - } - - public ICollection AllRefMembers () - { - return Module.MemberReferences; - } - protected void FillTables () { Module.FullLoad (); Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileBuilder.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileBuilder.cs 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileBuilder.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -44,7 +44,7 @@ } } - public void Add (CFile cfile) + public void Add (ICFile cfile) { if (!building) throw new Exception ("StartBuilding not called"); Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileFactory.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileFactory.cs 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CFileFactory.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -23,9 +23,9 @@ return false; } - public static CFile LoadCLibrary (string asm_name) + public static ICFile LoadCLibrary (string asm_name) { - CFile result = null; + ICFile result = null; AssemblyDefinition asm = AssemblyResolver.DefaultResolver.Resolve (asm_name); result = LoadCFile (asm); if (!(result is CStaticLibrary || result is CDynamicLibrary)) @@ -45,13 +45,13 @@ return false; } - public static CFile LoadCFile (string asm_name) + public static ICFile LoadCFile (string asm_name) { AssemblyDefinition asm = AssemblyResolver.DefaultResolver.ResolveWithoutLibPath (asm_name); return LoadCFile (asm); } - static CFile LoadCFile (AssemblyDefinition asm) + static ICFile LoadCFile (AssemblyDefinition asm) { if (CFileAttributes.AssemblyIsCExecutable (asm)) { Tracer.Trace ("Loading a C Executable: " + asm.Name.Name); Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CObject.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CObject.cs 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CObject.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -92,6 +92,32 @@ base.EndBuilding (); } } + + internal ICollection AllDefTypes () + { + return Module.Types; + } + + internal ICollection AllDefMethods () + { + return MainType.Methods; + } + + internal ICollection AllDefFields () + { + return MainType.Fields; + } + + internal ICollection AllRefTypes () + { + return Module.TypeReferences; + } + + internal ICollection AllRefMembers () + { + return Module.MemberReferences; + } + } } Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CStaticLibrary.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CStaticLibrary.cs 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/CStaticLibrary.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -109,7 +109,7 @@ } } - public void Add (CFile cfile) + public void Add (ICFile cfile) { if (!building) throw new Exception ("StartBuilding not called"); Added: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFile.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFile.cs (rev 0) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFile.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -0,0 +1,25 @@ + +using System; +using System.Collections; + +using Mono.Cecil; + +namespace gcc4cli.util { + + public interface ICFile { + + string Name { get; } + + AssemblyDefinition Assembly { get; } + + ModuleDefinition Module { get; } + + TypeDefinition MainType { get; } + + TypeDefinition GetDefType (string name); + IMemberDefinition GetDefMember (string name); + + void Save (string filename); + } + +} Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileBuilder.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileBuilder.cs 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileBuilder.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -7,7 +7,7 @@ void StartBuilding (); - void Add (CFile cfile); + void Add (ICFile cfile); void EndBuilding (); } Modified: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileModifier.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileModifier.cs 2010-03-29 22:36:27 UTC (rev 20) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileModifier.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -5,7 +5,6 @@ public interface ICFileModifier { - void AddSymbolPrefix (string prefix); void AddTypePrefix (string prefix); Added: mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileNames.cs =================================================================== --- mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileNames.cs (rev 0) +++ mono-based-binutils/branches/aco-dev/tools/gcc4cli/utils/ICFileNames.cs 2010-03-29 22:52:50 UTC (rev 21) @@ -0,0 +1,21 @@ + +using System; +using System.Collections; + +using Mono.Cecil; + +namespace gcc4cli.util { + + public interface ICFileNames { + + ICollection DefinedSymbols (); + ICollection DefinedTypes (); + ICollection UndefinedSymbols (); + ICollection UndefinedTypes (); + ICollection IncompleteTypes (); + ICollection PrivateSymbols (); + ICollection RefSymbols (); + + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |