Module: wine
Branch: refs/heads/master
Commit: e737dbec7f324ca6a50de40d8ff8dd05a17a9f4a
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=e737dbec7f324ca6a50de40…
Author: Eric Pouech <eric.pouech(a)wanadoo.fr>
Date: Sat Mar 18 13:33:11 2006 +0100
dbghelp: MSC forward declaration.
- create an infrastructure for handling forward usage
of type records
- used it in some cases (pointer to yet not defined udt,
function signature, modifiers)
---
dlls/dbghelp/msc.c | 333 +++++++++++++++++++++++++++++++++++-----------------
1 files changed, 226 insertions(+), 107 deletions(-)
Diff: http://source.winehq.org/git/?p=wine.git;a=commitdiff;h=e737dbec7f324ca6a50…
Module: wine
Branch: refs/heads/master
Commit: 79b47204f057b648437b9594104e27f47b38b316
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=79b47204f057b648437b959…
Author: Eric Pouech <eric.pouech(a)wanadoo.fr>
Date: Sat Mar 18 13:33:06 2006 +0100
dbghelp: Type parsing refactoring.
- seperate types' table handling from a single type handling
by adding codeview_parse_one_type function
- factored all calls for caching symt
- make type parsing helpers return the symt instead of a
simple error status
---
dlls/dbghelp/msc.c | 404 ++++++++++++++++++++++++++--------------------------
1 files changed, 205 insertions(+), 199 deletions(-)
Diff: http://source.winehq.org/git/?p=wine.git;a=commitdiff;h=79b47204f057b648437…
Module: wine
Branch: refs/heads/master
Commit: 209e175d83674c162a58b05941b5fdaa7694c632
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=209e175d83674c162a58b05…
Author: Eric Pouech <eric.pouech(a)wanadoo.fr>
Date: Sat Mar 18 13:32:56 2006 +0100
dbghelp: Cleanup MSC bitfield handling.
- no longer caching bitfield information but accessing it directly
when needed
- removed all kludges for bitfield handling
- reused BOOL parameter to codeview_get_type for monitoring
traces (will be used in later patches)
---
dlls/dbghelp/msc.c | 186 +++++++++++++++---------------------------------
dlls/dbghelp/mscvpdb.h | 36 +++++----
2 files changed, 76 insertions(+), 146 deletions(-)
Diff: http://source.winehq.org/git/?p=wine.git;a=commitdiff;h=209e175d83674c162a5…
Module: wine
Branch: refs/heads/master
Commit: 4c2cec55533abcb53a47a26b3cf244fadffcbfe9
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=4c2cec55533abcb53a47a26…
Author: Eric Pouech <eric.pouech(a)wanadoo.fr>
Date: Sat Mar 18 13:32:50 2006 +0100
dbghelp: Fieldlist.
- now that we have offset tables to type, we can cleanly
parse the field-lists and remove the associated kludges
- also adding internal structure for easing parameter sharing
across functions (codeview_type_parse)
- in mscvpdb.h, also reparated the type records that are
referenced from other type records (union codeview_type_ref)
from type records referenced by symbols (union codeview_type)
---
dlls/dbghelp/msc.c | 210 +++++++++++++++++++++++-------------------------
dlls/dbghelp/mscvpdb.h | 30 +++++--
2 files changed, 121 insertions(+), 119 deletions(-)
Diff: http://source.winehq.org/git/?p=wine.git;a=commitdiff;h=4c2cec55533abcb53a4…
Module: wine
Branch: refs/heads/master
Commit: 633ab584c1e5e3e3e2c077f9d2cdb2bc612055ce
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=633ab584c1e5e3e3e2c077f…
Author: Eric Pouech <eric.pouech(a)wanadoo.fr>
Date: Sat Mar 18 13:32:44 2006 +0100
dbghelp: MSC types.
- enforce the type records that can be accessed by symbols (these are
anyway the high level ones)
---
dlls/dbghelp/msc.c | 26 +++++++++++++++++---------
1 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/dlls/dbghelp/msc.c b/dlls/dbghelp/msc.c
index 559d325..8e269c7 100644
--- a/dlls/dbghelp/msc.c
+++ b/dlls/dbghelp/msc.c
@@ -752,6 +752,23 @@ static int codeview_parse_type_table(str
retv = TRUE;
type = (const union codeview_type*)(table + offset[curr_type - 0x1000]);
+ /* type records we're interested in are the ones referenced by symbols
+ * The known ranges are (X mark the ones we want):
+ * X 0000-0016 for V1 types
+ * 0200-020c for V1 types referenced by other types
+ * 0400-040f for V1 types (complex lists & sets)
+ * X 1000-100f for V2 types
+ * 1200-120c for V2 types referenced by other types
+ * 1400-140f for V1 types (complex lists & sets)
+ * X 1500-150d for V3 types
+ * 8000-8010 for numeric leafes
+ */
+ if ((type->generic.id & 0x8600) &&
+ type->generic.id != LF_BITFIELD_V1 && /* still some cases to fix */
+ type->generic.id != LF_BITFIELD_V2 &&
+ type->generic.id != LF_FIELDLIST_V1 &&
+ type->generic.id != LF_FIELDLIST_V2)
+ continue;
switch (type->generic.id)
{
case LF_MODIFIER_V1:
@@ -943,15 +960,6 @@ static int codeview_parse_type_table(str
type->mfunction_v2.call);
break;
- case LF_ARGLIST_V1:
- case LF_ARGLIST_V2:
- {
- static int once;
- if (!once++)
- FIXME("Not adding parameters' types to function signature\n");
- }
- break;
-
default:
FIXME("Unsupported type-id leaf %x\n", type->generic.id);
dump(type, 2 + type->generic.len);