From 8d2ea3c478b06d45e4704cc4f998e5cf6f109243 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurko=20Gospodneti=C4=87?= Date: Sat, 23 Jun 2012 23:48:14 +0000 Subject: [PATCH] Fixed a Boost Jam debug assertion bug encountered when creating string objects with embedded '\0' characters as done for example by the SPLIT_BY_CHARACTERS builtin rule implementation. [SVN r79039] --- v2/engine/strings.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/v2/engine/strings.c b/v2/engine/strings.c index 9812de3d7..5fb894f6b 100644 --- a/v2/engine/strings.c +++ b/v2/engine/strings.c @@ -27,7 +27,11 @@ static void assert_invariants( string * self ) assert( self->size < self->capacity ); assert( ( self->capacity <= sizeof( self->opt ) ) == ( self->value == self->opt ) ); - assert( strlen( self->value ) == self->size ); + assert( self->value[ self->size ] == 0 ); + /* String objects modified manually after construction to contain embedded + * '\0' characters are considered structurally valid. + */ + assert( strlen( self->value ) <= self->size ); for ( i = 0; i < 4; ++i ) {