1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-05 06:28:57 +00:00

Merge pull request #19 from groessler/something_to_pull

close IOCB if open failed -- otherwise it is still marked as "in use"
This commit is contained in:
Oliver Schmidt 2013-07-10 02:24:12 -07:00
commit 25399e9c61
3 changed files with 17 additions and 5 deletions

View File

@ -10,7 +10,7 @@
.export __graphics .export __graphics
.import findfreeiocb .import findfreeiocb
.import __do_oserror,__oserror .import __oserror
.import fddecusage .import fddecusage
.import clriocb .import clriocb
.import fdtoiocb .import fdtoiocb
@ -96,8 +96,13 @@ doopen: txa
stx __oserror stx __oserror
rts rts
cioerr: jsr fddecusage ; decrement usage counter of fd as open failed cioerr: sty tmp3 ; remember error code
jmp __do_oserror lda #CLOSE
sta ICCOM,x
jsr CIOV ; close IOCB again since open failed
jsr fddecusage ; and decrement usage counter of fd
lda tmp3 ; put error code into A
jmp __mappederrno
.endproc ; __graphics .endproc ; __graphics

View File

@ -140,8 +140,12 @@ finish: php
plp plp
bpl ok bpl ok
jsr fddecusage ; decrement usage counter of fd as open failed sty tmp3 ; remember error code
tya ; put error code into A lda #CLOSE
sta ICCOM,x
jsr CIOV ; close IOCB again since open failed
jsr fddecusage ; and decrement usage counter of fd
lda tmp3 ; put error code into A
jmp __mappederrno jmp __mappederrno
ok: lda tmp2 ; get fd ok: lda tmp2 ; get fd

View File

@ -63,6 +63,9 @@
.endproc .endproc
cioerr: sty __oserror cioerr: sty __oserror
lda #CLOSE
sta ICCOM,x
jsr CIOV ; close IOCB again since open failed
jmp return0 jmp return0
.proc _readdir .proc _readdir