it got some notice last year:
We recently changed ByteArray>at:put: to remove the backup conversion of the value to integer, for what seemed like decent reasons. It’s broken my WeatherStation code a little because there are places where I use {my byte stream} nextPutAll: (aString squeakToUtf8) or similar. #squeakToUtf8 returns a bytestring, and of course when the #nextPutAll: loop does its thing each character is pulled out as a Character (even though we know at this point it’s a byte value) - and we’ve just made it impossible to stick a character into a byte array. Clearly I could fix it reasonably trivially with a few #asByteArray type messages scattered around but it feels a bit tacky somehow. I see some faintly similar code with plausibly similar issues in WebSocket classes too, which would need some care. Not that I can see a lot of usage of that code… Performance isn’t a colossal issue for MQTT packets but it just rankles a bit to have a known byte valued string and then have to convert it to write it into a byte valued stream collection. KnowWhadIMean? tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Never write software that anthropomorphizes the machine. They hate that.
When was the last time this worked?
Levente
On Thu, 26 Apr 2018, marcel.taeumel wrote:
Hi, there.
I cannot put a ByteString into a ByteArray via a WriteStream anymore:
| s |
s := WriteStream on: ByteArray new.
s nextPutAll: 'hello'.
You need to do:
| s |
s := WriteStream on: ByteArray new.
s nextPutAll: 'hello' asByteArray.
This breaks code.
Best,
Marcel
--
Sent from: http://forum.world.st/Squeak-Dev-f45488.html