it got some notice last year:


On 7/29/17 3:15 PM, tim Rowledge wrote:
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.




On 4/26/18 8:41 AM, Levente Uzonyi wrote:
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