James Hawkins : fusion: Add the missing assembly table structs.

Alexandre Julliard julliard at winehq.org
Mon May 5 07:14:55 CDT 2008


Module: wine
Branch: master
Commit: f52ecfe0411ce891d378169f5543bc9c06753693
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f52ecfe0411ce891d378169f5543bc9c06753693

Author: James Hawkins <jhawkins at codeweavers.com>
Date:   Sat May  3 21:16:24 2008 -0500

fusion: Add the missing assembly table structs.

---

 dlls/fusion/assembly.c   |   67 +++++++-------
 dlls/fusion/fusionpriv.h |  226 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 259 insertions(+), 34 deletions(-)

diff --git a/dlls/fusion/assembly.c b/dlls/fusion/assembly.c
index eee889a..efffcca 100644
--- a/dlls/fusion/assembly.c
+++ b/dlls/fusion/assembly.c
@@ -64,54 +64,53 @@ struct tagASSEMBLY
     BYTE *blobs;
 };
 
-/* FIXME: fill in */
 const DWORD COR_TABLE_SIZES[64] =
 {
     sizeof(MODULETABLE),
     sizeof(TYPEREFTABLE),
     sizeof(TYPEDEFTABLE),
     0,
+    sizeof(FIELDTABLE),
     0,
+    sizeof(METHODDEFTABLE),
     0,
+    sizeof(PARAMTABLE),
+    sizeof(INTERFACEIMPLTABLE),
+    sizeof(MEMBERREFTABLE),
+    sizeof(CONSTANTTABLE),
+    sizeof(CUSTOMATTRIBUTETABLE),
+    sizeof(FIELDMARSHALTABLE),
+    sizeof(DECLSECURITYTABLE),
+    sizeof(CLASSLAYOUTTABLE),
+    sizeof(FIELDLAYOUTTABLE),
+    sizeof(STANDALONESIGTABLE),
+    sizeof(EVENTMAPTABLE),
     0,
+    sizeof(EVENTTABLE),
+    sizeof(PROPERTYMAPTABLE),
     0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
+    sizeof(PROPERTYTABLE),
+    sizeof(METHODSEMANTICSTABLE),
+    sizeof(METHODIMPLTABLE),
+    sizeof(MODULEREFTABLE),
+    sizeof(TYPESPECTABLE),
+    sizeof(IMPLMAPTABLE),
+    sizeof(FIELDRVATABLE),
     0,
     0,
     sizeof(ASSEMBLYTABLE),
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
+    sizeof(ASSEMBLYPROCESSORTABLE),
+    sizeof(ASSEMBLYOSTABLE),
+    sizeof(ASSEMBLYREFTABLE),
+    sizeof(ASSEMBLYREFPROCESSORTABLE),
+    sizeof(ASSEMBLYREFOSTABLE),
+    sizeof(FILETABLE),
+    sizeof(EXPORTEDTYPETABLE),
     sizeof(MANIFESTRESTABLE),
-    0,
-    0,
-    0,
-    0,
+    sizeof(NESTEDCLASSTABLE),
+    sizeof(GENERICPARAMTABLE),
+    sizeof(METHODSPECTABLE),
+    sizeof(GENERICPARAMCONSTRAINTTABLE),
     0,
     0,
     0,
diff --git a/dlls/fusion/fusionpriv.h b/dlls/fusion/fusionpriv.h
index 829a6b7..08a2d5c 100644
--- a/dlls/fusion/fusionpriv.h
+++ b/dlls/fusion/fusionpriv.h
@@ -86,6 +86,13 @@ typedef struct
 
 typedef struct
 {
+    WORD Flags;
+    WORD Name;
+    WORD Signature;
+} FIELDTABLE;
+
+typedef struct
+{
     DWORD HashAlgId;
     WORD MajorVersion;
     WORD MinorVersion;
@@ -107,6 +114,225 @@ typedef struct
 
 typedef struct
 {
+    DWORD RVA;
+    WORD ImplFlags;
+    WORD Flags;
+    WORD Name;
+    WORD Signature;
+    WORD ParamList;
+} METHODDEFTABLE;
+
+typedef struct
+{
+    WORD Flags;
+    WORD Sequence;
+    WORD Name;
+} PARAMTABLE;
+
+typedef struct
+{
+    WORD Class;
+    WORD Interface;
+} INTERFACEIMPLTABLE;
+
+typedef struct
+{
+    WORD Class;
+    WORD Name;
+    WORD Signature;
+} MEMBERREFTABLE;
+
+typedef struct
+{
+    BYTE Type;
+    BYTE Reserved;
+    WORD Parent;
+    WORD Value;
+} CONSTANTTABLE;
+
+typedef struct
+{
+    WORD Parent;
+    WORD Type;
+    WORD Value;
+} CUSTOMATTRIBUTETABLE;
+
+typedef struct
+{
+    WORD Parent;
+    WORD NativeType;
+} FIELDMARSHALTABLE;
+
+typedef struct
+{
+    WORD Action;
+    WORD Parent;
+    WORD PermissionSet;
+} DECLSECURITYTABLE;
+
+typedef struct
+{
+    WORD PackingSize;
+    DWORD ClassSize;
+    WORD Parent;
+} CLASSLAYOUTTABLE;
+
+typedef struct
+{
+    DWORD Offset;
+    WORD Field;
+} FIELDLAYOUTTABLE;
+
+typedef struct
+{
+    WORD Signature;
+} STANDALONESIGTABLE;
+
+typedef struct
+{
+    WORD Parent;
+    WORD EventList;
+} EVENTMAPTABLE;
+
+typedef struct
+{
+    WORD EventFlags;
+    WORD Name;
+    WORD EventType;
+} EVENTTABLE;
+
+typedef struct
+{
+    WORD Parent;
+    WORD PropertyList;
+} PROPERTYMAPTABLE;
+
+typedef struct
+{
+    WORD Flags;
+    WORD Name;
+    WORD Type;
+} PROPERTYTABLE;
+
+typedef struct
+{
+    WORD Semantics;
+    WORD Method;
+    WORD Association;
+} METHODSEMANTICSTABLE;
+
+typedef struct
+{
+    WORD Class;
+    WORD MethodBody;
+    WORD MethodDeclaration;
+} METHODIMPLTABLE;
+
+typedef struct
+{
+    WORD Name;
+} MODULEREFTABLE;
+
+typedef struct
+{
+    WORD Signature;
+} TYPESPECTABLE;
+
+typedef struct
+{
+    WORD MappingFlags;
+    WORD MemberForwarded;
+    WORD ImportName;
+    WORD ImportScope;
+} IMPLMAPTABLE;
+
+typedef struct
+{
+    DWORD RVA;
+    WORD Field;
+} FIELDRVATABLE;
+
+typedef struct
+{
+    DWORD Processor;
+} ASSEMBLYPROCESSORTABLE;
+
+typedef struct
+{
+    DWORD OSPlatformID;
+    DWORD OSMajorVersion;
+    DWORD OSMinorVersion;
+} ASSEMBLYOSTABLE;
+
+typedef struct
+{
+    WORD MajorVersion;
+    WORD MinorVersion;
+    WORD BuildNumber;
+    WORD RevisionNumber;
+    DWORD Flags;
+    WORD PublickKeyOrToken;
+    WORD Name;
+    WORD Culture;
+    WORD HashValue;
+} ASSEMBLYREFTABLE;
+
+typedef struct
+{
+    DWORD Processor;
+    WORD AssemblyRef;
+} ASSEMBLYREFPROCESSORTABLE;
+
+typedef struct
+{
+    DWORD OSPlatformId;
+    DWORD OSMajorVersion;
+    DWORD OSMinorVersion;
+    WORD AssemblyRef;
+} ASSEMBLYREFOSTABLE;
+
+typedef struct
+{
+    DWORD Flags;
+    WORD Name;
+    WORD HashValue;
+} FILETABLE;
+
+typedef struct
+{
+    DWORD Flags;
+    DWORD TypeDefId;
+    WORD TypeName;
+    WORD TypeNameSpace;
+    WORD Implementation;
+} EXPORTEDTYPETABLE;
+
+typedef struct
+{
+    WORD NestedClass;
+    WORD EnclosingClass;
+} NESTEDCLASSTABLE;
+
+typedef struct
+{
+    WORD Number;
+    WORD Flags;
+} GENERICPARAMTABLE;
+
+typedef struct
+{
+    WORD MethodDef;
+    WORD Instantiation;
+} METHODSPECTABLE;
+
+typedef struct
+{
+    WORD Owner;
+    WORD Constraint;
+} GENERICPARAMCONSTRAINTTABLE;
+
+typedef struct
+{
     DWORD ImportLookupTable;
     DWORD DateTimeStamp;
     DWORD ForwarderChain;




More information about the wine-cvs mailing list