| 539 | ColType GetType() { return type_; } |
| 540 | |
| 541 | void Next() { |
| 542 | if (offset_ + 2 > bsize_) { |
| 543 | offset_ += 2; |
| 544 | return; |
| 545 | } |
| 546 | uint8_t type = 0; |
| 547 | memcpy(static_cast<void*>(&type), buffer_, 1); |
| 548 | type_ = static_cast<ColType>(type); |
| 549 | buffer_ += 1; |
| 550 | offset_++; |
| 551 | if (((uint8_t)(buffer_[0]) & 0x80) == 0) { |
| 552 | fsize_ = (uint8_t)(buffer_[0]); |
| 553 | buffer_ += 1; |
| 554 | offset_++; |
| 555 | } else { |
| 556 | fsize_ = (((uint8_t)(buffer_[0]) & 0x7F) << 8) | |
| 557 | ((uint8_t)buffer_[1] & 0xFF); |
| 558 | buffer_ += 2; |
| 559 | offset_ += 2; |
| 560 | } |
| 561 | } |
| 562 | |
| 563 | bool Valid() { |
| 564 | if (bsize_ < 2 || offset_ > bsize_) { |