Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
2f8c2a8d
Commit
2f8c2a8d
authored
Feb 25, 2009
by
James Hawkins
Committed by
Alexandre Julliard
Feb 26, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Make sure the view being updated is the same view the record was fetched from.
parent
e872681a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
9 additions
and
14 deletions
+9
-14
msiquery.c
dlls/msi/msiquery.c
+6
-0
db.c
dlls/msi/tests/db.c
+1
-6
record.c
dlls/msi/tests/record.c
+2
-8
No files found.
dlls/msi/msiquery.c
View file @
2f8c2a8d
...
@@ -377,7 +377,10 @@ UINT MSI_ViewFetch(MSIQUERY *query, MSIRECORD **prec)
...
@@ -377,7 +377,10 @@ UINT MSI_ViewFetch(MSIQUERY *query, MSIRECORD **prec)
r
=
msi_view_get_row
(
query
->
db
,
view
,
query
->
row
,
prec
);
r
=
msi_view_get_row
(
query
->
db
,
view
,
query
->
row
,
prec
);
if
(
r
==
ERROR_SUCCESS
)
if
(
r
==
ERROR_SUCCESS
)
{
query
->
row
++
;
query
->
row
++
;
MSI_RecordSetInteger
(
*
prec
,
0
,
(
int
)
query
);
}
return
r
;
return
r
;
}
}
...
@@ -597,6 +600,9 @@ UINT MSI_ViewModify( MSIQUERY *query, MSIMODIFY mode, MSIRECORD *rec )
...
@@ -597,6 +600,9 @@ UINT MSI_ViewModify( MSIQUERY *query, MSIMODIFY mode, MSIRECORD *rec )
if
(
!
view
||
!
view
->
ops
->
modify
)
if
(
!
view
||
!
view
->
ops
->
modify
)
return
ERROR_FUNCTION_FAILED
;
return
ERROR_FUNCTION_FAILED
;
if
(
mode
==
MSIMODIFY_UPDATE
&&
MSI_RecordGetInteger
(
rec
,
0
)
!=
(
int
)
query
)
return
ERROR_FUNCTION_FAILED
;
r
=
view
->
ops
->
modify
(
view
,
mode
,
rec
,
query
->
row
);
r
=
view
->
ops
->
modify
(
view
,
mode
,
rec
,
query
->
row
);
if
(
mode
==
MSIMODIFY_DELETE
&&
r
==
ERROR_SUCCESS
)
if
(
mode
==
MSIMODIFY_DELETE
&&
r
==
ERROR_SUCCESS
)
query
->
row
--
;
query
->
row
--
;
...
...
dlls/msi/tests/db.c
View file @
2f8c2a8d
...
@@ -321,10 +321,8 @@ static void test_msiinsert(void)
...
@@ -321,10 +321,8 @@ static void test_msiinsert(void)
r
=
MsiRecordGetFieldCount
(
hrec
);
r
=
MsiRecordGetFieldCount
(
hrec
);
ok
(
r
==
3
,
"record count wrong
\n
"
);
ok
(
r
==
3
,
"record count wrong
\n
"
);
todo_wine
{
r
=
MsiRecordIsNull
(
hrec
,
0
);
r
=
MsiRecordIsNull
(
hrec
,
0
);
ok
(
r
==
FALSE
,
"field 0 not null
\n
"
);
ok
(
r
==
FALSE
,
"field 0 not null
\n
"
);
}
r
=
MsiRecordGetInteger
(
hrec
,
1
);
r
=
MsiRecordGetInteger
(
hrec
,
1
);
ok
(
r
==
1
,
"field 1 contents wrong
\n
"
);
ok
(
r
==
1
,
"field 1 contents wrong
\n
"
);
...
@@ -903,10 +901,7 @@ static void test_viewmodify(void)
...
@@ -903,10 +901,7 @@ static void test_viewmodify(void)
ok
(
r
==
ERROR_SUCCESS
,
"failed to set string
\n
"
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to set string
\n
"
);
r
=
MsiViewModify
(
hview
,
MSIMODIFY_UPDATE
,
hrec
);
r
=
MsiViewModify
(
hview
,
MSIMODIFY_UPDATE
,
hrec
);
todo_wine
ok
(
r
==
ERROR_FUNCTION_FAILED
,
"MsiViewModify failed
\n
"
);
{
ok
(
r
==
ERROR_FUNCTION_FAILED
,
"MsiViewModify failed
\n
"
);
}
r
=
MsiCloseHandle
(
hrec
);
r
=
MsiCloseHandle
(
hrec
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to close record
\n
"
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to close record
\n
"
);
...
...
dlls/msi/tests/record.c
View file @
2f8c2a8d
...
@@ -569,16 +569,10 @@ static void test_fieldzero(void)
...
@@ -569,16 +569,10 @@ static void test_fieldzero(void)
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %d
\n
"
,
r
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %d
\n
"
,
r
);
r
=
MsiRecordGetInteger
(
rec
,
0
);
r
=
MsiRecordGetInteger
(
rec
,
0
);
todo_wine
ok
(
r
!=
MSI_NULL_INTEGER
&&
r
!=
0
,
"Expected non-NULL value, got %d
\n
"
,
r
);
{
ok
(
r
!=
MSI_NULL_INTEGER
&&
r
!=
0
,
"Expected non-NULL value, got %d
\n
"
,
r
);
}
r
=
MsiRecordIsNull
(
rec
,
0
);
r
=
MsiRecordIsNull
(
rec
,
0
);
todo_wine
ok
(
r
==
FALSE
,
"Expected FALSE, got %d
\n
"
,
r
);
{
ok
(
r
==
FALSE
,
"Expected FALSE, got %d
\n
"
,
r
);
}
MsiCloseHandle
(
hdb
);
MsiCloseHandle
(
hdb
);
DeleteFileA
(
msifile
);
DeleteFileA
(
msifile
);
...
...
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