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:
commit
25399e9c61
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user