| 88 | } |
| 89 | |
| 90 | void ProtoBuffer::commitMessage(protobuf_mark_t mark) { |
| 91 | size_t max_len_byte_count = mark & 7; |
| 92 | size_t message_start = mark >> 3; |
| 93 | |
| 94 | size_t actual_len = _offset - (message_start + max_len_byte_count); |
| 95 | assert(varIntSize(actual_len) <= max_len_byte_count); |
| 96 | |
| 97 | for (size_t i = 0; i < max_len_byte_count - 1; i++) { |
| 98 | _data[message_start + i] = (unsigned char) (0x80 | actual_len); |
| 99 | actual_len >>= 7; |
| 100 | } |
| 101 | _data[message_start + max_len_byte_count - 1] = (unsigned char) actual_len; |
| 102 | } |
no outgoing calls