Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
819815d6
Commit
819815d6
authored
Apr 07, 2006
by
Mike McCormack
Committed by
Alexandre Julliard
Apr 07, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Use a debug channel to turn on transform debugging.
parent
cb70931f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
16 deletions
+12
-16
table.c
dlls/msi/table.c
+12
-16
No files found.
dlls/msi/table.c
View file @
819815d6
...
@@ -1604,13 +1604,12 @@ static MSIRECORD *msi_get_transform_record( MSITABLEVIEW *tv, string_table *st,
...
@@ -1604,13 +1604,12 @@ static MSIRECORD *msi_get_transform_record( MSITABLEVIEW *tv, string_table *st,
USHORT
mask
=
*
rawdata
++
;
USHORT
mask
=
*
rawdata
++
;
MSICOLUMNINFO
*
columns
=
tv
->
columns
;
MSICOLUMNINFO
*
columns
=
tv
->
columns
;
MSIRECORD
*
rec
;
MSIRECORD
*
rec
;
const
int
debug_transform
=
0
;
rec
=
MSI_CreateRecord
(
tv
->
num_cols
);
rec
=
MSI_CreateRecord
(
tv
->
num_cols
);
if
(
!
rec
)
if
(
!
rec
)
return
rec
;
return
rec
;
if
(
debug_transform
)
MESSAG
E
(
"row -> "
);
TRAC
E
(
"row -> "
);
for
(
i
=
0
;
i
<
tv
->
num_cols
;
i
++
)
for
(
i
=
0
;
i
<
tv
->
num_cols
;
i
++
)
{
{
UINT
n
=
bytes_per_column
(
&
columns
[
i
]
);
UINT
n
=
bytes_per_column
(
&
columns
[
i
]
);
...
@@ -1630,20 +1629,20 @@ static MSIRECORD *msi_get_transform_record( MSITABLEVIEW *tv, string_table *st,
...
@@ -1630,20 +1629,20 @@ static MSIRECORD *msi_get_transform_record( MSITABLEVIEW *tv, string_table *st,
{
{
LPCWSTR
sval
=
msi_string_lookup_id
(
st
,
val
);
LPCWSTR
sval
=
msi_string_lookup_id
(
st
,
val
);
MSI_RecordSetStringW
(
rec
,
i
+
1
,
sval
);
MSI_RecordSetStringW
(
rec
,
i
+
1
,
sval
);
if
(
debug_transform
)
MESSAG
E
(
"[%s]"
,
debugstr_w
(
sval
));
TRAC
E
(
"[%s]"
,
debugstr_w
(
sval
));
}
}
else
else
{
{
val
^=
0x8000
;
val
^=
0x8000
;
MSI_RecordSetInteger
(
rec
,
i
+
1
,
val
);
MSI_RecordSetInteger
(
rec
,
i
+
1
,
val
);
if
(
debug_transform
)
MESSAG
E
(
"[0x%04x]"
,
val
);
TRAC
E
(
"[0x%04x]"
,
val
);
}
}
break
;
break
;
case
4
:
case
4
:
val
=
rawdata
[
ofs
]
+
(
rawdata
[
ofs
+
1
]
<<
16
);
val
=
rawdata
[
ofs
]
+
(
rawdata
[
ofs
+
1
]
<<
16
);
/* val ^= 0x80000000; */
/* val ^= 0x80000000; */
MSI_RecordSetInteger
(
rec
,
i
+
1
,
val
);
MSI_RecordSetInteger
(
rec
,
i
+
1
,
val
);
if
(
debug_transform
)
MESSAG
E
(
"[0x%08x]"
,
val
);
TRAC
E
(
"[0x%08x]"
,
val
);
break
;
break
;
default:
default:
ERR
(
"oops - unknown column width %d
\n
"
,
n
);
ERR
(
"oops - unknown column width %d
\n
"
,
n
);
...
@@ -1651,7 +1650,7 @@ static MSIRECORD *msi_get_transform_record( MSITABLEVIEW *tv, string_table *st,
...
@@ -1651,7 +1650,7 @@ static MSIRECORD *msi_get_transform_record( MSITABLEVIEW *tv, string_table *st,
}
}
ofs
+=
n
/
2
;
ofs
+=
n
/
2
;
}
}
if
(
debug_transform
)
MESSAG
E
(
"
\n
"
);
TRAC
E
(
"
\n
"
);
return
rec
;
return
rec
;
}
}
...
@@ -1659,20 +1658,18 @@ static void dump_record( MSIRECORD *rec )
...
@@ -1659,20 +1658,18 @@ static void dump_record( MSIRECORD *rec )
{
{
UINT
i
,
n
;
UINT
i
,
n
;
MESSAGE
(
"row -> "
);
n
=
MSI_RecordGetFieldCount
(
rec
);
n
=
MSI_RecordGetFieldCount
(
rec
);
for
(
i
=
1
;
i
<=
n
;
i
++
)
for
(
i
=
1
;
i
<=
n
;
i
++
)
{
{
LPCWSTR
sval
=
MSI_RecordGetString
(
rec
,
i
);
LPCWSTR
sval
=
MSI_RecordGetString
(
rec
,
i
);
if
(
MSI_RecordIsNull
(
rec
,
i
)
)
if
(
MSI_RecordIsNull
(
rec
,
i
)
)
MESSAGE
(
"[]
"
);
TRACE
(
"row -> []
\n
"
);
else
if
(
(
sval
=
MSI_RecordGetString
(
rec
,
i
))
)
else
if
(
(
sval
=
MSI_RecordGetString
(
rec
,
i
))
)
MESSAGE
(
"[%s]
"
,
debugstr_w
(
sval
));
TRACE
(
"row -> [%s]
\n
"
,
debugstr_w
(
sval
));
else
else
MESSAGE
(
"[0x%08x]
"
,
MSI_RecordGetInteger
(
rec
,
i
)
);
TRACE
(
"row -> [0x%08x]
\n
"
,
MSI_RecordGetInteger
(
rec
,
i
)
);
}
}
MESSAGE
(
"
\n
"
);
}
}
static
void
dump_table
(
string_table
*
st
,
USHORT
*
rawdata
,
UINT
rawsize
)
static
void
dump_table
(
string_table
*
st
,
USHORT
*
rawdata
,
UINT
rawsize
)
...
@@ -1788,7 +1785,6 @@ static UINT msi_table_load_transform( MSIDATABASE *db, IStorage *stg,
...
@@ -1788,7 +1785,6 @@ static UINT msi_table_load_transform( MSIDATABASE *db, IStorage *stg,
MSITABLEVIEW
*
tv
=
NULL
;
MSITABLEVIEW
*
tv
=
NULL
;
UINT
r
,
n
,
sz
,
i
,
mask
;
UINT
r
,
n
,
sz
,
i
,
mask
;
MSIRECORD
*
rec
=
NULL
;
MSIRECORD
*
rec
=
NULL
;
const
int
debug_transform
=
0
;
TRACE
(
"%p %p %p %s
\n
"
,
db
,
stg
,
st
,
debugstr_w
(
name
)
);
TRACE
(
"%p %p %p %s
\n
"
,
db
,
stg
,
st
,
debugstr_w
(
name
)
);
...
@@ -1862,20 +1858,20 @@ static UINT msi_table_load_transform( MSIDATABASE *db, IStorage *stg,
...
@@ -1862,20 +1858,20 @@ static UINT msi_table_load_transform( MSIDATABASE *db, IStorage *stg,
if
(
rawdata
[
n
]
&
1
)
if
(
rawdata
[
n
]
&
1
)
{
{
if
(
debug_transform
)
MESSAG
E
(
"insert [%d]: "
,
row
);
TRAC
E
(
"insert [%d]: "
,
row
);
TABLE_insert_row
(
&
tv
->
view
,
rec
);
TABLE_insert_row
(
&
tv
->
view
,
rec
);
}
}
else
if
(
mask
&
0xff
)
else
if
(
mask
&
0xff
)
{
{
if
(
debug_transform
)
MESSAG
E
(
"modify [%d]: "
,
row
);
TRAC
E
(
"modify [%d]: "
,
row
);
msi_table_modify_row
(
tv
,
rec
,
row
,
mask
);
msi_table_modify_row
(
tv
,
rec
,
row
,
mask
);
}
}
else
else
{
{
if
(
debug_transform
)
MESSAG
E
(
"delete [%d]: "
,
row
);
TRAC
E
(
"delete [%d]: "
,
row
);
msi_delete_row
(
tv
,
row
);
msi_delete_row
(
tv
,
row
);
}
}
if
(
debug_transform
)
dump_record
(
rec
);
if
(
TRACE_ON
(
msidb
)
)
dump_record
(
rec
);
msiobj_release
(
&
rec
->
hdr
);
msiobj_release
(
&
rec
->
hdr
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment