gunzip/neonlib: Update to latest.

Fixes issue with decoder buffer overflow.
5 files changed, 14 insertions(+), 17 deletions(-)

M .hgsubstate
M src/Application.asm
M src/MappedBufferLoader.asm
M src/MappedReader.asm
M src/MappedWriter.asm
M .hgsubstate +2 -2
@@ 1,2 1,2 @@ 
-28f2e980e128d9dc89a0641bc13dbd63aa5f935e lib/gunzip
-f007b87ffb98263a47bf488fbafbaaa68239da8c lib/neonlib
+7822e6e3f2dc98efe8c571dfd73042172d492e97 lib/gunzip
+d30b04366fbd338ea986834315653980be450151 lib/neonlib

          
M src/Application.asm +2 -0
@@ 276,6 276,8 @@ Application_InflateFile:
 	push ix
 	call FileReader_class.New
 	call FileReader_Construct
+	ld e,ixl
+	ld d,ixh
 	push ix
 	ld a,GZIP_CRC32 ? -1 : 0
 	call GzipArchive_class.New

          
M src/MappedBufferLoader.asm +0 -1
@@ 39,7 39,6 @@ MappedBufferLoader_Destruct:
 	push ix
 	call MappedBufferLoader_GetWriter
 	call Writer_FinishBlock
-	call MappedWriter_Destruct
 	pop ix
 	ret
 

          
M src/MappedReader.asm +7 -7
@@ 55,7 55,6 @@ MappedReader_SetPosition_IY:
 	or 80H
 	ld (iy + MappedReader.super.bufferPosition),l
 	ld (iy + MappedReader.super.bufferPosition + 1),a
-	ld (iy + MappedReader.super.fillPending),0
 	ld a,h
 	rla
 	rl e

          
@@ 67,7 66,7 @@ MappedReader_SetPosition_IY:
 	call c,MappedReader_ThrowAddressOutOfBounds
 	ld (iy + MappedReader.positionSegmentIndex),e
 	ld (iy + MappedReader.positionSegmentIndex + 1),d
-	ld h,(iy + MappedReader.super.bufferStart + 1)
+	ld h,(iy + MappedReader.super.bufferStart)
 	call MappedBuffer_SelectSegment
 	pop ix
 	ret

          
@@ 79,8 78,9 @@ MappedReader_GetPosition_IY: PROC
 	ld h,(iy + MappedReader.super.bufferPosition + 1)
 	ld e,(iy + MappedReader.positionSegmentIndex)
 	ld d,(iy + MappedReader.positionSegmentIndex + 1)
-	bit 0,(iy + MappedReader.super.fillPending)
-	call nz,FillPending
+	ld a,h
+	cp (iy + MappedReader.super.bufferEnd)
+	call nc,FillPending
 	rlc h
 	rlc h
 	srl d

          
@@ 91,8 91,8 @@ MappedReader_GetPosition_IY: PROC
 	rr h
 	ret
 FillPending:
-	ld l,(iy + MappedReader.super.bufferStart)
-	ld h,(iy + MappedReader.super.bufferStart + 1)
+	ld l,0
+	ld h,(iy + MappedReader.super.bufferStart)
 	inc de
 	ret
 	ENDP

          
@@ 157,7 157,7 @@ MappedReader_SelectNextSegment_IY:
 	ld c,e
 	ld b,d
 	call MappedReader_GetBuffer_IY
-	ld h,(iy + MappedReader.super.bufferStart + 1)
+	ld h,(iy + MappedReader.super.bufferStart)
 	ld e,c
 	ld d,b
 	call MappedBuffer_SelectSegment

          
M src/MappedWriter.asm +3 -7
@@ 28,10 28,6 @@ MappedWriter_Construct:
 	jr MappedWriter_AllocateNextSegment
 
 ; ix = this
-MappedWriter_Destruct: equ Writer_Destruct
-;	jp Writer_Destruct
-
-; ix = this
 ; de <- buffer
 ; ix <- buffer
 MappedWriter_GetBuffer:

          
@@ 53,8 49,8 @@ MappedWriter_Flush:
 	pop ix
 	pop de
 	pop bc
-	ld l,(ix + MappedWriter.super.bufferEnd)
-	ld h,(ix + MappedWriter.super.bufferEnd + 1)
+	ld l,0
+	ld h,(ix + MappedWriter.super.bufferEnd)
 	and a
 	sbc hl,de
 	call c,System_ThrowException

          
@@ 65,7 61,7 @@ MappedWriter_Flush:
 
 ; ix = this
 MappedWriter_AllocateNextSegment:
-	ld h,(ix + MappedWriter.super.bufferStart + 1)
+	ld h,(ix + MappedWriter.super.bufferStart)
 	push ix
 	push hl
 	call MappedWriter_GetBuffer