diff options
| author | Antonin Kral <a.kral@bobek.cz> | 2011-09-14 17:08:07 +0200 |
|---|---|---|
| committer | Antonin Kral <a.kral@bobek.cz> | 2011-09-14 17:08:07 +0200 |
| commit | 9d6aba6c773ec1b31da5e2c80b2f2a82f50429c6 (patch) | |
| tree | 3620773f4dcdaf3b6fdeba0745d58267f965e4f3 /scripting/engine_java.cpp | |
| parent | bb03df5d32ce589ab9245adab835a1f0cbe914ee (diff) | |
| parent | 5d342a758c6095b4d30aba0750b54f13b8916f51 (diff) | |
| download | mongodb-9d6aba6c773ec1b31da5e2c80b2f2a82f50429c6.tar.gz | |
Merge commit 'upstream/2.0.0'
Diffstat (limited to 'scripting/engine_java.cpp')
| -rw-r--r-- | scripting/engine_java.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/scripting/engine_java.cpp b/scripting/engine_java.cpp index fc8945f..5738816 100644 --- a/scripting/engine_java.cpp +++ b/scripting/engine_java.cpp @@ -43,7 +43,7 @@ namespace mongo { -#include "../util/message.h" +#include "../util/net/message.h" #include "../db/db.h" using namespace std; @@ -405,15 +405,17 @@ namespace mongo { if ( guess == 0 ) return BSONObj(); - char * buf = (char *) malloc(guess); - jobject bb = _getEnv()->NewDirectByteBuffer( (void*)buf , guess ); + BSONObj::Holder* holder = (BSONObj::Holder*) malloc(guess + sizeof(unsigned)); + holder->zero() + + jobject bb = _getEnv()->NewDirectByteBuffer( (void*)holder->data , guess ); jassert( bb ); int len = _getEnv()->CallStaticIntMethod( _dbhook , _scopeGetObject , id , _getEnv()->NewStringUTF( field ) , bb ); _getEnv()->DeleteLocalRef( bb ); jassert( len > 0 && len < guess ); - BSONObj obj(buf, true); + BSONObj obj(holder); assert( obj.objsize() <= guess ); return obj; } |
