[BusyBox] Ow. Ouch. Pain.

Rob Landley rob at landley.net
Sun Oct 5 10:33:04 UTC 2003

I understand what BZ2_decompress is doing now.  It's manually simulating a 
setjmp/longjmp that you can return from and resume later.  (THAT's why the 
big switch statement at the beginning with all the CASE statements inside 
loops, the ->state member, and why it saves all the local variables into the 
big DState structure.)

It would be much, much, much, much, much more natural to just have get_bits 
know how to read data from the input stream (or do a callback or 

And have unRLE_obuf_to_output_FAST do the same for output, keeping in mind 
that the actual output code (with crc calculation) is currently not factored 
into a function, but is instead block copied three times.

My brain hurts now.  A lot.


(Lemme guess: the guy who wrote bzip2 is an academic mathematician, not a 
professional programmer?)

More information about the busybox mailing list