mirror of
https://github.com/nim-lang/Nim.git
synced 2026-05-01 19:44:44 +00:00
Improve exception tracking in the streams module (#10453)
This commit is contained in:
committed by
Andreas Rumpf
parent
9402c82e80
commit
ac8f6c57a1
@@ -45,17 +45,22 @@ type
|
||||
## here shouldn't be used directly. They are
|
||||
## accessible so that a stream implementation
|
||||
## can override them.
|
||||
closeImpl*: proc (s: Stream) {.nimcall, tags: [], gcsafe.}
|
||||
atEndImpl*: proc (s: Stream): bool {.nimcall, tags: [], gcsafe.}
|
||||
setPositionImpl*: proc (s: Stream, pos: int) {.nimcall, tags: [], gcsafe.}
|
||||
getPositionImpl*: proc (s: Stream): int {.nimcall, tags: [], gcsafe.}
|
||||
readDataImpl*: proc (s: Stream, buffer: pointer,
|
||||
bufLen: int): int {.nimcall, tags: [ReadIOEffect], gcsafe.}
|
||||
peekDataImpl*: proc (s: Stream, buffer: pointer,
|
||||
bufLen: int): int {.nimcall, tags: [ReadIOEffect], gcsafe.}
|
||||
writeDataImpl*: proc (s: Stream, buffer: pointer, bufLen: int) {.nimcall,
|
||||
tags: [WriteIOEffect], gcsafe.}
|
||||
flushImpl*: proc (s: Stream) {.nimcall, tags: [WriteIOEffect], gcsafe.}
|
||||
closeImpl*: proc (s: Stream)
|
||||
{.nimcall, raises: [Defect, IOError, OSError], tags: [], gcsafe.}
|
||||
atEndImpl*: proc (s: Stream): bool
|
||||
{.nimcall, raises: [Defect, IOError, OSError], tags: [], gcsafe.}
|
||||
setPositionImpl*: proc (s: Stream, pos: int)
|
||||
{.nimcall, raises: [Defect, IOError, OSError], tags: [], gcsafe.}
|
||||
getPositionImpl*: proc (s: Stream): int
|
||||
{.nimcall, raises: [Defect, IOError, OSError], tags: [], gcsafe.}
|
||||
readDataImpl*: proc (s: Stream, buffer: pointer, bufLen: int): int
|
||||
{.nimcall, raises: [Defect, IOError, OSError], tags: [ReadIOEffect], gcsafe.}
|
||||
peekDataImpl*: proc (s: Stream, buffer: pointer, bufLen: int): int
|
||||
{.nimcall, raises: [Defect, IOError, OSError], tags: [ReadIOEffect], gcsafe.}
|
||||
writeDataImpl*: proc (s: Stream, buffer: pointer, bufLen: int)
|
||||
{.nimcall, raises: [Defect, IOError, OSError], tags: [WriteIOEffect], gcsafe.}
|
||||
flushImpl*: proc (s: Stream)
|
||||
{.nimcall, raises: [Defect, IOError, OSError], tags: [WriteIOEffect], gcsafe.}
|
||||
|
||||
proc flush*(s: Stream) =
|
||||
## flushes the buffers that the stream `s` might use.
|
||||
@@ -65,10 +70,6 @@ proc close*(s: Stream) =
|
||||
## closes the stream `s`.
|
||||
if not isNil(s.closeImpl): s.closeImpl(s)
|
||||
|
||||
proc close*(s, unused: Stream) {.deprecated.} =
|
||||
## closes the stream `s`.
|
||||
s.closeImpl(s)
|
||||
|
||||
proc atEnd*(s: Stream): bool =
|
||||
## checks if more data can be read from `f`. Returns true if all data has
|
||||
## been read.
|
||||
@@ -111,12 +112,6 @@ proc writeData*(s: Stream, buffer: pointer, bufLen: int) =
|
||||
## to the stream `s`.
|
||||
s.writeDataImpl(s, buffer, bufLen)
|
||||
|
||||
proc writeData*(s, unused: Stream, buffer: pointer,
|
||||
bufLen: int) {.deprecated.} =
|
||||
## low level proc that writes an untyped `buffer` of `bufLen` size
|
||||
## to the stream `s`.
|
||||
s.writeDataImpl(s, buffer, bufLen)
|
||||
|
||||
proc write*[T](s: Stream, x: T) =
|
||||
## generic write procedure. Writes `x` to the stream `s`. Implementation:
|
||||
##
|
||||
|
||||
Reference in New Issue
Block a user