Change to_bytes_packed() to be more efficient

This commit is contained in:
Jason Paryani
2014-01-15 22:43:19 -08:00
parent 8c0e80529b
commit aa317e7324
4 changed files with 33 additions and 1 deletions

View File

@@ -940,7 +940,11 @@ cdef class _DynamicStructBuilder:
cpdef to_bytes_packed(_DynamicStructBuilder self) except +reraise_kj_exception:
self._check_write()
cdef _MessageBuilder builder = self._parent
return _message_to_packed_bytes(builder)
array = helpers.messageToPackedBytes(deref(builder.thisptr))
cdef const char* ptr = <const char *>array.begin()
cdef bytes ret = ptr[:array.size()]
self._is_written = True
return ret
cdef _get(self, field):
cdef C_DynamicValue.Builder value = self.thisptr.get(field)