@@ -112,7 +112,8 @@ internal class WireEncoderNative(private val sink: Sink) : WireEncoder {
112112 return pw_encoder_write_string(raw, fieldNr, null , 0 )
113113 }
114114 val cStr = value.cstr
115- return pw_encoder_write_string(raw, fieldNr, cStr.ptr, cStr.size)
115+ val len = cStr.size - 1 // minus 1 as it also counts the null terminator
116+ return pw_encoder_write_string(raw, fieldNr, cStr.ptr, len)
116117 }
117118
118119 override fun writeBytes (fieldNr : Int , value : ByteArray ): Boolean {
@@ -166,7 +167,7 @@ internal class WireEncoderNative(private val sink: Sink) : WireEncoder {
166167 override fun <T : InternalMessage > writeMessage (
167168 fieldNr : Int ,
168169 value : T ,
169- encode : T .(WireEncoder ) -> Unit
170+ encode : T .(WireEncoder ) -> Unit ,
170171 ) {
171172 pw_encoder_write_tag(raw, fieldNr, WireType .LENGTH_DELIMITED .ordinal)
172173 pw_encoder_write_int32_no_tag(raw, value._size )
@@ -184,7 +185,7 @@ private inline fun <T> WireEncoderNative.writePackedInternal(
184185 fieldNr : Int ,
185186 value : List <T >,
186187 fieldSize : Int ,
187- crossinline writer : (CValuesRef <pw_encoder_t>? , T ) -> Boolean
188+ crossinline writer : (CValuesRef <pw_encoder_t>? , T ) -> Boolean ,
188189): Boolean {
189190 pw_encoder_write_tag(raw, fieldNr, WireType .LENGTH_DELIMITED .ordinal)
190191 // write the field size of the packed field
0 commit comments