aboutsummaryrefslogtreecommitdiffstats
path: root/Messages.st
diff options
context:
space:
mode:
Diffstat (limited to 'Messages.st')
-rw-r--r--Messages.st9
1 files changed, 4 insertions, 5 deletions
diff --git a/Messages.st b/Messages.st
index 1124f77..a85d940 100644
--- a/Messages.st
+++ b/Messages.st
@@ -49,17 +49,16 @@ Object subclass: IEMessage [
yourself
]
- IEMessage class >> findIE: data from: aIEBase on: aMsg [
+ IEMessage class >> findIE: stream from: aIEBase on: aMsg [
"TODO: This needs to move some basic dispatch class"
"Find the IE that handles the type specified"
| type |
- type := data at: 1.
+ type := stream next.
aIEBase allSubclassesDo: [:each |
each elementId = type
ifTrue: [
- | enc size stream |
- stream := (data copyFrom: 2) readStream.
+ | enc size |
size := each length: stream.
aMsg addIe: (each parseFrom: stream).
^ 1 + size
@@ -76,7 +75,7 @@ Object subclass: IEMessage [
dat := aByteArray copyFrom: 2.
[dat isEmpty not] whileTrue: [
| consumed |
- consumed := self findIE: dat from: aIEBase on: msg.
+ consumed := self findIE: dat readStream from: aIEBase on: msg.
dat := dat copyFrom: consumed + 1.
].