MCPcopy Create free account
hub / github.com/DNAProject/DNA / ReadVarInt

Method ReadVarInt

vm/neovm/utils/vm_reader.go:132–160  ·  view source on GitHub ↗
(max uint64)

Source from the content-addressed store, hash-verified

130}
131
132func (r *VmReader) ReadVarInt(max uint64) (uint64, error) {
133 fb, _ := r.ReadByte()
134 var value uint64
135 var err error
136
137 switch fb {
138 case 0xFD:
139 val, e := r.ReadInt16()
140 value = uint64(val)
141 err = e
142 case 0xFE:
143 val, e := r.ReadUint32()
144 value = uint64(val)
145 err = e
146 case 0xFF:
147 val, e := r.ReadUint64()
148 value = uint64(val)
149 err = e
150 default:
151 value = uint64(fb)
152 }
153 if err != nil {
154 return 0, err
155 }
156 if value > max {
157 return 0, nil
158 }
159 return value, nil
160}
161
162func (r *VmReader) ReadVarString(maxlen uint32) (string, error) {
163 bs, err := r.ReadVarBytes(maxlen)

Callers 1

ReadVarBytesMethod · 0.95

Calls 4

ReadByteMethod · 0.95
ReadInt16Method · 0.95
ReadUint32Method · 0.95
ReadUint64Method · 0.95

Tested by

no test coverage detected