Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1023)

Side by Side Diff: third_party/mojo/src/mojo/public/go/bindings/decoder.go

Issue 877993004: Revert "Update mojo sdk to rev 8d45c89c30b230843c5bd6dd0693a555750946c0" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package bindings 5 package bindings
6 6
7 import ( 7 import (
8 "encoding/binary" 8 "encoding/binary"
9 "fmt" 9 "fmt"
10 "math" 10 "math"
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 func (d *Decoder) ReadInt8() (int8, error) { 178 func (d *Decoder) ReadInt8() (int8, error) {
179 value, err := d.ReadUint8() 179 value, err := d.ReadUint8()
180 return int8(value), err 180 return int8(value), err
181 } 181 }
182 182
183 // ReadUint8 reads an uint8 value. 183 // ReadUint8 reads an uint8 value.
184 func (d *Decoder) ReadUint8() (uint8, error) { 184 func (d *Decoder) ReadUint8() (uint8, error) {
185 if err := ensureElementBitSizeAndCapacity(d.state(), 8); err != nil { 185 if err := ensureElementBitSizeAndCapacity(d.state(), 8); err != nil {
186 return 0, err 186 return 0, err
187 } 187 }
188 d.state().alignOffsetToBytes()
189 value := d.buf[d.state().offset] 188 value := d.buf[d.state().offset]
190 d.state().skipBytes(1) 189 d.state().skipBytes(1)
191 d.state().elementsProcessed++ 190 d.state().elementsProcessed++
192 return value, nil 191 return value, nil
193 } 192 }
194 193
195 // ReadInt16 reads an int16 value. 194 // ReadInt16 reads an int16 value.
196 func (d *Decoder) ReadInt16() (int16, error) { 195 func (d *Decoder) ReadInt16() (int16, error) {
197 value, err := d.ReadUint16() 196 value, err := d.ReadUint16()
198 return int16(value), err 197 return int16(value), err
199 } 198 }
200 199
201 // ReadUint16 reads an uint16 value. 200 // ReadUint16 reads an uint16 value.
202 func (d *Decoder) ReadUint16() (uint16, error) { 201 func (d *Decoder) ReadUint16() (uint16, error) {
203 if err := ensureElementBitSizeAndCapacity(d.state(), 16); err != nil { 202 if err := ensureElementBitSizeAndCapacity(d.state(), 16); err != nil {
204 return 0, err 203 return 0, err
205 } 204 }
206 d.state().alignOffsetToBytes()
207 d.state().offset = align(d.state().offset, 2) 205 d.state().offset = align(d.state().offset, 2)
208 value := binary.LittleEndian.Uint16(d.buf[d.state().offset:]) 206 value := binary.LittleEndian.Uint16(d.buf[d.state().offset:])
209 d.state().skipBytes(2) 207 d.state().skipBytes(2)
210 d.state().elementsProcessed++ 208 d.state().elementsProcessed++
211 return value, nil 209 return value, nil
212 } 210 }
213 211
214 // ReadInt32 reads an int32 value. 212 // ReadInt32 reads an int32 value.
215 func (d *Decoder) ReadInt32() (int32, error) { 213 func (d *Decoder) ReadInt32() (int32, error) {
216 value, err := d.ReadUint32() 214 value, err := d.ReadUint32()
217 return int32(value), err 215 return int32(value), err
218 } 216 }
219 217
220 // ReadUint32 reads an uint32 value. 218 // ReadUint32 reads an uint32 value.
221 func (d *Decoder) ReadUint32() (uint32, error) { 219 func (d *Decoder) ReadUint32() (uint32, error) {
222 if err := ensureElementBitSizeAndCapacity(d.state(), 32); err != nil { 220 if err := ensureElementBitSizeAndCapacity(d.state(), 32); err != nil {
223 return 0, err 221 return 0, err
224 } 222 }
225 d.state().alignOffsetToBytes()
226 d.state().offset = align(d.state().offset, 4) 223 d.state().offset = align(d.state().offset, 4)
227 value := binary.LittleEndian.Uint32(d.buf[d.state().offset:]) 224 value := binary.LittleEndian.Uint32(d.buf[d.state().offset:])
228 d.state().skipBytes(4) 225 d.state().skipBytes(4)
229 d.state().elementsProcessed++ 226 d.state().elementsProcessed++
230 return value, nil 227 return value, nil
231 } 228 }
232 229
233 // ReadInt64 reads an int64 value. 230 // ReadInt64 reads an int64 value.
234 func (d *Decoder) ReadInt64() (int64, error) { 231 func (d *Decoder) ReadInt64() (int64, error) {
235 value, err := d.ReadUint64() 232 value, err := d.ReadUint64()
236 return int64(value), err 233 return int64(value), err
237 } 234 }
238 235
239 // ReadUint64 reads an uint64 value. 236 // ReadUint64 reads an uint64 value.
240 func (d *Decoder) ReadUint64() (uint64, error) { 237 func (d *Decoder) ReadUint64() (uint64, error) {
241 if err := ensureElementBitSizeAndCapacity(d.state(), 64); err != nil { 238 if err := ensureElementBitSizeAndCapacity(d.state(), 64); err != nil {
242 return 0, err 239 return 0, err
243 } 240 }
244 d.state().alignOffsetToBytes()
245 d.state().offset = align(d.state().offset, 8) 241 d.state().offset = align(d.state().offset, 8)
246 value := binary.LittleEndian.Uint64(d.buf[d.state().offset:]) 242 value := binary.LittleEndian.Uint64(d.buf[d.state().offset:])
247 d.state().skipBytes(8) 243 d.state().skipBytes(8)
248 d.state().elementsProcessed++ 244 d.state().elementsProcessed++
249 return value, nil 245 return value, nil
250 } 246 }
251 247
252 // ReadFloat32 reads a float32 value. 248 // ReadFloat32 reads a float32 value.
253 func (d *Decoder) ReadFloat32() (float32, error) { 249 func (d *Decoder) ReadFloat32() (float32, error) {
254 bits, err := d.ReadUint32() 250 bits, err := d.ReadUint32()
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 newEnd := uint64(oldEnd) + pointer 293 newEnd := uint64(oldEnd) + pointer
298 if newEnd >= uint64(len(d.buf)) { 294 if newEnd >= uint64(len(d.buf)) {
299 return 0, fmt.Errorf("trying to access out of range memory") 295 return 0, fmt.Errorf("trying to access out of range memory")
300 } 296 }
301 if newEnd < uint64(d.end) { 297 if newEnd < uint64(d.end) {
302 return 0, fmt.Errorf("trying to access memory out of order") 298 return 0, fmt.Errorf("trying to access memory out of order")
303 } 299 }
304 if newEnd%8 != 0 { 300 if newEnd%8 != 0 {
305 return 0, fmt.Errorf("incorrect pointer data alignment: %d", new End) 301 return 0, fmt.Errorf("incorrect pointer data alignment: %d", new End)
306 } 302 }
307 » d.claimData(int(newEnd) - d.end) 303 » d.claimData(d.end - int(newEnd))
308 return pointer, nil 304 return pointer, nil
309 } 305 }
310 306
311 // ReadUntypedHandle reads an untyped handle. 307 // ReadMessagePipeHandle reads a message pipe handle.
312 func (d *Decoder) ReadUntypedHandle() (system.UntypedHandle, error) { 308 func (d *Decoder) ReadMessagePipeHandle() (system.MessagePipeHandle, error) {
313 handleIndex, err := d.ReadUint32() 309 handleIndex, err := d.ReadUint32()
314 if err != nil { 310 if err != nil {
315 return nil, err 311 return nil, err
316 } 312 }
317 » if handleIndex == ^uint32(0) { 313 » untypedHandle, err := d.claimHandle(int(handleIndex))
318 » » return &InvalidHandle{}, nil 314 » return untypedHandle.ToMessagePipeHandle(), err
319 » }
320 » return d.claimHandle(int(handleIndex))
321 } 315 }
322
323 // ReadHandle reads a handle.
324 func (d *Decoder) ReadHandle() (system.Handle, error) {
325 return d.ReadUntypedHandle()
326 }
327
328 // ReadMessagePipeHandle reads a message pipe handle.
329 func (d *Decoder) ReadMessagePipeHandle() (system.MessagePipeHandle, error) {
330 if handle, err := d.ReadUntypedHandle(); err != nil {
331 return nil, err
332 } else {
333 return handle.ToMessagePipeHandle(), nil
334 }
335 }
336
337 // ReadConsumerHandle reads a data pipe consumer handle.
338 func (d *Decoder) ReadConsumerHandle() (system.ConsumerHandle, error) {
339 if handle, err := d.ReadUntypedHandle(); err != nil {
340 return nil, err
341 } else {
342 return handle.ToConsumerHandle(), nil
343 }
344 }
345
346 // ReadProducerHandle reads a data pipe producer handle.
347 func (d *Decoder) ReadProducerHandle() (system.ProducerHandle, error) {
348 if handle, err := d.ReadUntypedHandle(); err != nil {
349 return nil, err
350 } else {
351 return handle.ToProducerHandle(), nil
352 }
353 }
354
355 // ReadSharedBufferHandle reads a shared buffer handle.
356 func (d *Decoder) ReadSharedBufferHandle() (system.SharedBufferHandle, error) {
357 if handle, err := d.ReadUntypedHandle(); err != nil {
358 return nil, err
359 } else {
360 return handle.ToSharedBufferHandle(), nil
361 }
362 }
OLDNEW
« no previous file with comments | « third_party/mojo/src/mojo/public/dart/src/timer_impl.dart ('k') | third_party/mojo/src/mojo/public/go/bindings/encoder.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698