X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fbitio.c;h=c8f1d7db0237a9a972c63fe4d77d0dee49c7e696;hb=5ac80872f927e25921a47b3a39eed2cd9edc03d2;hp=19c662d03510308e49f4972d2d42ad5d1f761650;hpb=2a03e2d0338dd114e0119072b64f6b154763dc0f;p=swftools.git diff --git a/lib/bitio.c b/lib/bitio.c index 19c662d..c8f1d7d 100644 --- a/lib/bitio.c +++ b/lib/bitio.c @@ -68,9 +68,14 @@ static int reader_fileread(reader_t*reader, void* data, int len) reader->pos += ret; return ret; } +static void reader_fileread_dealloc(reader_t*r) +{ + memset(r, 0, sizeof(reader_t)); +} void reader_init_filereader(reader_t*r, int handle) { r->read = reader_fileread; + r->dealloc = reader_fileread_dealloc; r->internal = (void*)handle; r->type = READER_TYPE_FILE; r->mybyte = 0; @@ -678,6 +683,10 @@ U32 reader_readU32(reader_t*r) } float reader_readFloat(reader_t*r) { + float f; + r->read(r, &f, 4); + return f; + U8 b1=0,b2=0,b3=0,b4=0; r->read(r, &b1, 1); r->read(r, &b2, 1); @@ -743,7 +752,10 @@ void writer_writeU32(writer_t*w, unsigned long v) } void writer_writeFloat(writer_t*w, float f) { - unsigned long v = *(unsigned long*)&f; + w->write(w, &f, 4); + return; + + unsigned v = *(unsigned*)&f; unsigned char b1 = v; unsigned char b2 = v>>8; unsigned char b3 = v>>16;