1
0
mirror of https://github.com/cc65/cc65.git synced 2025-08-10 04:25:21 +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
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