wined3d: The first shader token should be the version token.

Henri Verbeet hverbeet at codeweavers.com
Fri Apr 24 02:17:58 CDT 2009


---
 dlls/wined3d/baseshader.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index 1cb5a12..a7c2a50 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -911,17 +911,16 @@ void shader_generate_main(IWineD3DBaseShader *iface, SHADER_BUFFER* buffer,
     ins.src = src_param;
     This->baseShader.parse_state.current_row = 0;
 
+    if (!shader_is_version_token(*pToken++))
+    {
+        ERR("First token is not a version token, invalid shader.\n");
+        return;
+    }
+
     while (WINED3DPS_END() != *pToken)
     {
         DWORD opcode_token;
 
-        /* Skip version token */
-        if (shader_is_version_token(*pToken))
-        {
-            ++pToken;
-            continue;
-        }
-
         /* Skip comment tokens */
         if (shader_is_comment(*pToken))
         {
-- 
1.6.0.6



--------------040609080601090203080902--



More information about the wine-patches mailing list