Christophe Rhodes csr21@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