| 103 | } |
| 104 | |
| 105 | Status GetTruncatedBuffer(int64_t offset, int64_t length, int32_t byte_width, |
| 106 | const std::shared_ptr<Buffer>& input, MemoryPool* pool, |
| 107 | std::shared_ptr<Buffer>* buffer) { |
| 108 | if (!input) { |
| 109 | *buffer = input; |
| 110 | return Status::OK(); |
| 111 | } |
| 112 | int64_t padded_length = PaddedLength(length * byte_width); |
| 113 | if (offset != 0 || padded_length < input->size()) { |
| 114 | *buffer = |
| 115 | SliceBuffer(input, offset * byte_width, std::min(padded_length, input->size())); |
| 116 | } else { |
| 117 | *buffer = input; |
| 118 | } |
| 119 | return Status::OK(); |
| 120 | } |
| 121 | |
| 122 | static inline bool NeedTruncate(int64_t offset, const Buffer* buffer, |
| 123 | int64_t min_length) { |
no test coverage detected