aboutsummaryrefslogtreecommitdiff
path: root/ber/len.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-09-25 20:41:38 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-09-25 20:41:38 +0200
commit511cf41a779929b5c81b7429c37dc11bd9544182 (patch)
tree6ab421d4b7ec868c48b40da57e3de542831767dd /ber/len.go
parent0559b7d4eab07cacf0f005e8e756c1d04470e0c7 (diff)
Rewrite from scratch
Diffstat (limited to 'ber/len.go')
-rw-r--r--ber/len.go11
1 files changed, 6 insertions, 5 deletions
diff --git a/ber/len.go b/ber/len.go
index 2bccf59..5df8288 100644
--- a/ber/len.go
+++ b/ber/len.go
@@ -36,14 +36,15 @@ func lenLen(i int) (n int) {
return n + 1
}
-func MarshalLen(i int) []byte {
+func MarshalLen(w io.ByteWriter, i int) {
if i < 0x80 {
- return []byte{byte(i)}
+ w.WriteByte(byte(i))
+ return
}
n := lenLen(i)
- b := []byte{byte(n) | 0x80}
+ w.WriteByte(byte(n) | 0x80)
for ; n > 0; n-- {
- b = append(b, byte(i>>uint((n-1)*8)))
+ w.WriteByte(byte(i) >> uint(n-1) * 8)
}
- return b
+ return
}