kfar_arc: bugfix in unpacking of 7z archives

git-svn-id: svn://kolibrios.org@920 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2008-11-14 21:44:53 +00:00
parent 1af612e4d2
commit 09b06cee2f
2 changed files with 11 additions and 5 deletions

View File

@ -2,8 +2,8 @@
; project name: KFar_Arc - plugin for KFar, which supports various archives
; target platform: KolibriOS
; compiler: FASM 1.67.14
; version: 0.13
; last update: 2008-11-02 (Nov 02, 2008)
; version: 0.14
; last update: 2008-11-15 (Nov 15, 2008)
; minimal KFar version: 0.41
; minimal kernel: no limit
;

View File

@ -274,7 +274,7 @@ end virtual
.repmovsbr:
mov eax, [ebp+.rep0]
cmp eax, [ebp+.dictSize]
jae return.err
ja return.err
mov esi, edi
sub esi, eax
mov eax, [ebp+streamInfo.bufPtr]
@ -282,6 +282,7 @@ end virtual
ja .repmovsb0
mov eax, [ebp+.outEnd]
sub eax, edi
jz .done1
push ecx
cmp ecx, eax
jb @f
@ -291,6 +292,7 @@ end virtual
rep movsb
pop ecx
jz .repmovsb1
.done1:
pop [ebp+.inPtr]
mov [ebp+.state], ebx
mov [ebp+.ecx], ecx
@ -299,8 +301,8 @@ end virtual
ret
.repmovsb0:
mov edx, [ebp+.dictSize]
cmp edx, [ebp+streamInfo.bufSize]
jnz return.err
; cmp edx, [ebp+streamInfo.bufSize]
; jnz return.err
add esi, edx
push ecx
cmp ecx, eax
@ -309,6 +311,7 @@ end virtual
@@:
mov eax, [ebp+.outEnd]
sub eax, edi
jz .done2
cmp ecx, eax
jb @f
mov ecx, eax
@ -322,6 +325,9 @@ end virtual
mov al, [edi-1]
mov [ebp+.previousByte], al
jmp .main_loop
.done2:
pop ecx
jmp .done1
.main_loop_done:
mov [ebp+.state], ebx
mov [ebp+.continue], .main_loop