summaryrefslogtreecommitdiff
path: root/scripting
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2010-11-28 03:35:44 -0500
committerEliot Horowitz <eliot@10gen.com>2010-11-28 03:35:44 -0500
commit2016fe2e3da8becf4a463ca8464c803efa99e773 (patch)
treee04f310f6a4f9c7a28329cdc420fba4b4792a466 /scripting
parentd4774cef292e8ba01c77e99426b2a5c74bcd2a1d (diff)
downloadmongo-2016fe2e3da8becf4a463ca8464c803efa99e773.tar.gz
better error message on bad encoding
Diffstat (limited to 'scripting')
-rw-r--r--scripting/engine_spidermonkey.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/scripting/engine_spidermonkey.cpp b/scripting/engine_spidermonkey.cpp
index bdd9aca10a9..3c5ed2b155b 100644
--- a/scripting/engine_spidermonkey.cpp
+++ b/scripting/engine_spidermonkey.cpp
@@ -202,8 +202,16 @@ namespace mongo {
// units, but experiments suggest 8bit units expected. We allocate
// enough memory that either will work.
- if ( !JS_EncodeCharacters( _context , s , srclen , dst , &len) )
- uasserted( 13498, str::stream() << "Not proper UTF-16: " << s);
+ if ( !JS_EncodeCharacters( _context , s , srclen , dst , &len) ){
+ StringBuilder temp;
+ temp << "Not proper UTF-16: ";
+ for ( size_t i=0; i<srclen; i++ ){
+ if ( i > 0 )
+ temp << ",";
+ temp << s[i];
+ }
+ uasserted( 13498 , temp.str() );
+ }
string ss( dst , len );
free( dst );