diff options
author | Eliot Horowitz <eliot@10gen.com> | 2010-11-28 03:35:44 -0500 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2010-11-28 03:35:44 -0500 |
commit | 2016fe2e3da8becf4a463ca8464c803efa99e773 (patch) | |
tree | e04f310f6a4f9c7a28329cdc420fba4b4792a466 /scripting | |
parent | d4774cef292e8ba01c77e99426b2a5c74bcd2a1d (diff) | |
download | mongo-2016fe2e3da8becf4a463ca8464c803efa99e773.tar.gz |
better error message on bad encoding
Diffstat (limited to 'scripting')
-rw-r--r-- | scripting/engine_spidermonkey.cpp | 12 |
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 ); |