Christophe Rhodes <csr21(a)cam.ac.uk> writes:
> I don't have flexi-streams to hand; is there any oddness in
> make-in-memory-input-stream? Or does it simply hand-off to
> make-instance?
It hands off to MAKE-INSTANCE:
(defmethod make-in-memory-input-stream ((vector vector) &optional (start 0)
(end (length vector)))
"Returns a binary input stream which will supply, in order, the
octets in the subsequence of VECTOR bounded by START and END."
(make-instance 'vector-input-stream
:vector vector
:index start
:end end))
and the class (FWIW):
* (describe (find-class 'flexi-streams::vector-input-stream))
#<STANDARD-CLASS FLEXI-STREAMS::VECTOR-INPUT-STREAM> is a class. It is an
instance of STANDARD-CLASS.
Its proper name is FLEXI-STREAMS::VECTOR-INPUT-STREAM.
The direct superclasses are:
(FLEXI-STREAMS:VECTOR-STREAM FLEXI-STREAMS:IN-MEMORY-INPUT-STREAM), and the
direct subclasses are: ().
The class is finalized; its class precedence list is:
(FLEXI-STREAMS::VECTOR-INPUT-STREAM FLEXI-STREAMS:VECTOR-STREAM
FLEXI-STREAMS:IN-MEMORY-INPUT-STREAM FLEXI-STREAMS:IN-MEMORY-STREAM
TRIVIAL-GRAY-STREAMS:TRIVIAL-GRAY-STREAM-MIXIN
FUNDAMENTAL-BINARY-INPUT-STREAM FUNDAMENTAL-INPUT-STREAM
FUNDAMENTAL-BINARY-STREAM FUNDAMENTAL-STREAM STANDARD-OBJECT
SB-PCL::SLOT-OBJECT STREAM T).
There are 8 methods specialized for this class.
I'm still trying to pull out a self-contained testcase but having no luck.
Thanks,
James