2
0
Эх сурвалжийг харах

Fixed stupid String.From... heisenbugs.

Mark Sibly 9 жил өмнө
parent
commit
b2dd5f1f5f

+ 6 - 8
modules/monkey/native/bbstring.cpp

@@ -98,9 +98,9 @@ bbString bbString::fromChar( int chr ){
 
 bbString bbString::fromCString( const void *data,int size ){
 	const char *p=(const char*)data;
-	int sz=strlen( p );
-	if( sz>size ) sz=size;
-	return bbString( p,sz );
+	const char *e=p;
+	while( e<p+size && *e ) ++e;
+	return bbString( p,e-p );
 }
 
 bbString bbString::fromWString( const void *data,int size ){
@@ -113,14 +113,12 @@ bbString bbString::fromWString( const void *data,int size ){
 
 bbString bbString::fromUtf8String( const void *data,int size ){
 	const char *p=(const char*)data;
-	int sz=strlen( p );
-	if( sz>size ) sz=size;
-	const char *e=p+sz;
-	
+	const char *e=p+size;
+		
 	bbChar *tmp=(bbChar*)malloc( size*sizeof(bbChar) );
 	bbChar *put=tmp;
 	
-	while( p<e ){
+	while( p<e && *p ){
 		int c=*p++;
 		
 		if( c & 0x80 ){