synchronized with downstream git
[swftools.git] / lib / bitio.c
index 19c662d..c8f1d7d 100644 (file)
@@ -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;