=?UTF-8?Q?Stefan=20D=C3=B6singer=20?=: wined3d: Correctly handle the size parameter in get_private_data.
Alexandre Julliard
julliard at winehq.org
Wed Mar 12 15:23:43 CDT 2014
Module: wine
Branch: master
Commit: 3754cdd7931ebd078caeba64714a3312dd66b59c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3754cdd7931ebd078caeba64714a3312dd66b59c
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Wed Mar 12 14:08:23 2014 +0100
wined3d: Correctly handle the size parameter in get_private_data.
---
dlls/wined3d/resource.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index 04c3af4..8813af7 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -250,18 +250,21 @@ HRESULT CDECL wined3d_resource_get_private_data(const struct wined3d_resource *r
void *data, DWORD *data_size)
{
const struct private_data *d;
+ DWORD size_in;
TRACE("resource %p, guid %s, data %p, data_size %p.\n",
resource, debugstr_guid(guid), data, data_size);
d = resource_find_private_data(resource, guid);
- if (!d) return WINED3DERR_NOTFOUND;
-
- if (*data_size < d->size)
- {
- *data_size = d->size;
+ if (!d)
+ return WINED3DERR_NOTFOUND;
+
+ size_in = *data_size;
+ *data_size = d->size;
+ if (!data)
+ return WINED3D_OK;
+ if (size_in < d->size)
return WINED3DERR_MOREDATA;
- }
if (d->flags & WINED3DSPD_IUNKNOWN)
{
More information about the wine-cvs
mailing list