func (dec *Decoder) readBlob(blobHeader *OSMPBF.BlobHeader) (*OSMPBF.Blob, error) { buf := make([]byte, blobHeader.GetDatasize()) if _, err := io.ReadFull(dec.r, buf); err != nil { return nil, err } blob := new(OSMPBF.Blob) if err := proto.Unmarshal(buf, blob); err != nil { return nil, err } return blob, nil }
func (dec *Decoder) readBlob(blobHeader *OSMPBF.BlobHeader) (*OSMPBF.Blob, error) { dec.buf.Reset() if _, err := io.CopyN(dec.buf, dec.r, int64(blobHeader.GetDatasize())); err != nil { return nil, err } blob := new(OSMPBF.Blob) if err := proto.Unmarshal(dec.buf.Bytes(), blob); err != nil { return nil, err } return blob, nil }
func (dec *Decoder) readBlobHeader(size uint32) (*OSMPBF.BlobHeader, error) { buf := make([]byte, size) if _, err := io.ReadFull(dec.r, buf); err != nil { return nil, err } blobHeader := new(OSMPBF.BlobHeader) if err := proto.Unmarshal(buf, blobHeader); err != nil { return nil, err } if blobHeader.GetDatasize() >= maxBlobSize { return nil, errors.New("Blob size >= 32Mb") } return blobHeader, nil }
func (dec *Decoder) readBlobHeader(size uint32) (*OSMPBF.BlobHeader, error) { dec.buf.Reset() if _, err := io.CopyN(dec.buf, dec.r, int64(size)); err != nil { return nil, err } blobHeader := new(OSMPBF.BlobHeader) if err := proto.Unmarshal(dec.buf.Bytes(), blobHeader); err != nil { return nil, err } if blobHeader.GetDatasize() >= MaxBlobSize { return nil, errors.New("Blob size >= 32Mb") } return blobHeader, nil }