MCPcopy Create free account
hub / github.com/IoLanguage/io / IoFile_readUArrayOfLength_

Function IoFile_readUArrayOfLength_

libs/iovm/source/IoFile.c:810–832  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

808}
809
810UArray *IoFile_readUArrayOfLength_(IoFile *self, IoObject *locals,
811 IoMessage *m) {
812 size_t length = IoMessage_locals_sizetArgAt_(m, locals, 0);
813 UArray *ba = UArray_new();
814 IoFile_assertOpen(self, locals, m);
815 if (IOSTATE->errorRaised) return IONIL(self);
816
817 UArray_readNumberOfItems_fromCStream_(ba, length, DATA(self)->stream);
818
819 if (ferror(DATA(self)->stream) != 0) {
820 clearerr(DATA(self)->stream);
821 UArray_free(ba);
822 IoState_error_(IOSTATE, m, "error reading file '%s'",
823 UTF8CSTRING(DATA(self)->path));
824 }
825
826 if (!UArray_size(ba)) {
827 UArray_free(ba);
828 return NULL;
829 }
830
831 return ba;
832}
833
834IO_METHOD(IoFile, readToBufferLength) {
835 /*doc File readToBufferLength(aBuffer, aNumber)

Callers 1

IoFile.cFile · 0.85

Calls 6

UArray_newFunction · 0.85
UArray_freeFunction · 0.85
IoState_error_Function · 0.85
UArray_sizeFunction · 0.85

Tested by

no test coverage detected