OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef RUNTIME_VM_DATASTREAM_H_ | 5 #ifndef RUNTIME_VM_DATASTREAM_H_ |
6 #define RUNTIME_VM_DATASTREAM_H_ | 6 #define RUNTIME_VM_DATASTREAM_H_ |
7 | 7 |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "platform/utils.h" | 9 #include "platform/utils.h" |
10 #include "vm/allocation.h" | 10 #include "vm/allocation.h" |
11 #include "vm/exceptions.h" | 11 #include "vm/exceptions.h" |
12 #include "vm/globals.h" | 12 #include "vm/globals.h" |
13 #include "vm/os.h" | 13 #include "vm/os.h" |
14 | 14 |
15 namespace dart { | 15 namespace dart { |
16 | 16 |
17 static const int8_t kDataBitsPerByte = 7; | 17 static const int8_t kDataBitsPerByte = 7; |
18 static const int8_t kByteMask = (1 << kDataBitsPerByte) - 1; | 18 static const int8_t kByteMask = (1 << kDataBitsPerByte) - 1; |
19 static const int8_t kMaxUnsignedDataPerByte = kByteMask; | 19 static const int8_t kMaxUnsignedDataPerByte = kByteMask; |
20 static const int8_t kMinDataPerByte = -(1 << (kDataBitsPerByte - 1)); | 20 static const int8_t kMinDataPerByte = -(1 << (kDataBitsPerByte - 1)); |
21 static const int8_t kMaxDataPerByte = (~kMinDataPerByte & kByteMask); // NOLINT | 21 static const int8_t kMaxDataPerByte = (~kMinDataPerByte & kByteMask); // NOLINT |
22 static const uint8_t kEndByteMarker = (255 - kMaxDataPerByte); | 22 static const uint8_t kEndByteMarker = (255 - kMaxDataPerByte); |
23 static const uint8_t kEndUnsignedByteMarker = (255 - kMaxUnsignedDataPerByte); | 23 static const uint8_t kEndUnsignedByteMarker = (255 - kMaxUnsignedDataPerByte); |
24 | 24 |
25 typedef uint8_t* (*ReAlloc)(uint8_t* ptr, intptr_t old_size, intptr_t new_size); | 25 typedef uint8_t* (*ReAlloc)(uint8_t* ptr, intptr_t old_size, intptr_t new_size); |
| 26 typedef void (*DeAlloc)(uint8_t* ptr); |
26 | 27 |
27 // Stream for reading various types from a buffer. | 28 // Stream for reading various types from a buffer. |
28 class ReadStream : public ValueObject { | 29 class ReadStream : public ValueObject { |
29 public: | 30 public: |
30 ReadStream(const uint8_t* buffer, intptr_t size) | 31 ReadStream(const uint8_t* buffer, intptr_t size) |
31 : buffer_(buffer), current_(buffer), end_(buffer + size) {} | 32 : buffer_(buffer), current_(buffer), end_(buffer + size) {} |
32 | 33 |
33 void SetStream(const uint8_t* buffer, intptr_t size) { | 34 void SetStream(const uint8_t* buffer, intptr_t size) { |
34 buffer_ = buffer; | 35 buffer_ = buffer; |
35 current_ = buffer; | 36 current_ = buffer; |
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 intptr_t current_size_; | 450 intptr_t current_size_; |
450 ReAlloc alloc_; | 451 ReAlloc alloc_; |
451 intptr_t initial_size_; | 452 intptr_t initial_size_; |
452 | 453 |
453 DISALLOW_COPY_AND_ASSIGN(WriteStream); | 454 DISALLOW_COPY_AND_ASSIGN(WriteStream); |
454 }; | 455 }; |
455 | 456 |
456 } // namespace dart | 457 } // namespace dart |
457 | 458 |
458 #endif // RUNTIME_VM_DATASTREAM_H_ | 459 #endif // RUNTIME_VM_DATASTREAM_H_ |
OLD | NEW |