Module: wine
Branch: master
Commit: 255a1ebaadfb8795ab76ebd0360708973bb825cc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=255a1ebaadfb8795ab76ebd03…
Author: André Hentschel <nerv(a)dawncrow.de>
Date: Sun Dec 20 17:27:35 2009 +0100
dbghelp: Implement literal dwarf opcodes.
---
dlls/dbghelp/dwarf.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index 16ea011..d9e52d3 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -684,6 +684,15 @@ compute_location(dwarf2_traverse_context_t* ctx, struct location* loc,
op = dwarf2_parse_byte(ctx);
switch (op)
{
+ case DW_OP_lit0: case DW_OP_lit1: case DW_OP_lit2: case DW_OP_lit3:
+ case DW_OP_lit4: case DW_OP_lit5: case DW_OP_lit6: case DW_OP_lit7:
+ case DW_OP_lit8: case DW_OP_lit9: case DW_OP_lit10: case DW_OP_lit11:
+ case DW_OP_lit12: case DW_OP_lit13: case DW_OP_lit14: case DW_OP_lit15:
+ case DW_OP_lit16: case DW_OP_lit17: case DW_OP_lit18: case DW_OP_lit19:
+ case DW_OP_lit20: case DW_OP_lit21: case DW_OP_lit22: case DW_OP_lit23:
+ case DW_OP_lit24: case DW_OP_lit25: case DW_OP_lit26: case DW_OP_lit27:
+ case DW_OP_lit28: case DW_OP_lit29: case DW_OP_lit30: case DW_OP_lit31:
+ stack[++stk] = op - DW_OP_lit0; break;
case DW_OP_addr: stack[++stk] = dwarf2_parse_addr(ctx); break;
case DW_OP_const1u: stack[++stk] = dwarf2_parse_byte(ctx); break;
case DW_OP_const1s: stack[++stk] = (long)(signed char)dwarf2_parse_byte(ctx); break;
Module: wine
Branch: master
Commit: b3511ebb70072d8615d09db638e47e9f3d86fcfc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b3511ebb70072d8615d09db63…
Author: Vincent Povirk <vincent(a)codeweavers.com>
Date: Sat Dec 19 14:20:02 2009 -0600
ole32: Reread the stream entry after setting the size in StreamWriteAt.
In simple mode, StreamWriteAt would assume that StreamSetSize uses the size
it asks for, but in some cases the size would be pushed above the small block
limit. StreamWriteAt would then attempt to write using a small block chain,
even though a big block chain was created.
---
dlls/ole32/storage32.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c
index ef71e6f..629709a 100644
--- a/dlls/ole32/storage32.c
+++ b/dlls/ole32/storage32.c
@@ -2475,7 +2475,8 @@ static HRESULT StorageImpl_StreamWriteAt(StorageBaseImpl *base, DirRef index,
if (FAILED(hr))
return hr;
- data.size = newSize;
+ hr = StorageImpl_ReadDirEntry(This, index, &data);
+ if (FAILED(hr)) return hr;
}
if (data.size.QuadPart < LIMIT_TO_USE_SMALL_BLOCK)