supercollider/supercollider — pull request #877 by ventosus (2013-06-25 13:13:08+00:00)
Title: sclang bugfix: proper handling of Open Sound Control Blob Arguments

Right now, only one OSC Blob argument can be read by sclang and when intermingled with other arguments it only consistently works as last argument:

works with current sclang:
/test b 0x01 -> [[0x01]]
/test ib 12 0x01 -> [12, [0x01]]

does not work with current sclang:
/test bb 0x01 0x02 -> [[0x01], [0x01]]
/test bi 0x01 12 -> [[0x01], [0x01]]

The problem is that the tag counter (msg.tag) is not increased as intended, because MsgToInt8Array clones the sc_msg_iter struct. Using a reference argument in MsgToInt8Array fixes the problem.

does now work:
/test bb 0x01 0x02 -> [[0x01], [0x02]]
/test bi 0x01 12 -> [[0x01], 12]