Module: wine Branch: master Commit: 4981eda8951a5bbe0d4b6aea7777078903c05f06 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4981eda8951a5bbe0d4b6aea77...
Author: Alexander Dorofeyev alexd4@inbox.lv Date: Sun Feb 17 17:36:35 2008 -0800
ddraw: Fix executebuffer branching with non-zero offset.
Fixes a crash in Moto Racer 2.
---
dlls/ddraw/executebuffer.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/ddraw/executebuffer.c b/dlls/ddraw/executebuffer.c index 49b6d6c..fce3c4f 100644 --- a/dlls/ddraw/executebuffer.c +++ b/dlls/ddraw/executebuffer.c @@ -524,12 +524,18 @@ IDirect3DExecuteBufferImpl_Execute(IDirect3DExecuteBufferImpl *This, if ((This->data.dsStatus.dwStatus & ci->dwMask) == ci->dwValue) { if (!ci->bNegate) { TRACE(" Branch to %d\n", ci->dwOffset); - instr = (char*)current + ci->dwOffset; + if (ci->dwOffset) { + instr = (char*)current + ci->dwOffset; + break; + } } } else { if (ci->bNegate) { TRACE(" Branch to %d\n", ci->dwOffset); - instr = (char*)current + ci->dwOffset; + if (ci->dwOffset) { + instr = (char*)current + ci->dwOffset; + break; + } } }