1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-02 15:29:33 +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
.import findfreeiocb
.import __do_oserror,__oserror
.import __oserror
.import fddecusage
.import clriocb
.import fdtoiocb
@ -96,8 +96,13 @@ doopen: txa
stx __oserror
rts
cioerr: jsr fddecusage ; decrement usage counter of fd as open failed
jmp __do_oserror
cioerr: sty tmp3 ; remember error code
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

View File

@ -140,8 +140,12 @@ finish: php
plp
bpl ok
jsr fddecusage ; decrement usage counter of fd as open failed
tya ; put error code into A
sty tmp3 ; remember error code
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
ok: lda tmp2 ; get fd

View File

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