[PATCH 1/4] d3dxof: Allow templates to be defined anywhere in objects file (fix bug 19438)

Christian Costa titan.costa at wanadoo.fr
Mon Mar 1 02:36:19 CST 2010


---

 dlls/d3dxof/d3dxof.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)
-------------- next part --------------
diff --git a/dlls/d3dxof/d3dxof.c b/dlls/d3dxof/d3dxof.c
index 0f800bf..eccdf98 100644
--- a/dlls/d3dxof/d3dxof.c
+++ b/dlls/d3dxof/d3dxof.c
@@ -1034,6 +1034,23 @@ static HRESULT WINAPI IDirectXFileEnumObjectImpl_GetNextDataObject(IDirectXFileE
     return DXFILEERR_NOMOREOBJECTS;
   }
 
+  /* Check if there are templates defined before the object */
+  while (This->buf.rem_bytes && is_template_available(&This->buf))
+  {
+    if (!parse_template(&This->buf))
+    {
+      TRACE("Template is not correct\n");
+      hr = DXFILEERR_BADVALUE;
+      goto error;
+    }
+    else
+    {
+      TRACE("Template successfully parsed:\n");
+      if (TRACE_ON(d3dxof))
+        dump_template(This->pDirectXFile->xtemplates, &This->pDirectXFile->xtemplates[This->pDirectXFile->nb_xtemplates - 1]);
+    }
+  }
+
   if (!This->buf.rem_bytes)
     return DXFILEERR_NOMOREOBJECTS;
 


More information about the wine-patches mailing list