summaryrefslogtreecommitdiff
path: root/src/mongo/scripting/sm_db.cpp
diff options
context:
space:
mode:
authorScott Hernandez <scotthernandez@gmail.com>2013-02-28 18:19:47 -0500
committerScott Hernandez <scotthernandez@gmail.com>2013-02-28 18:19:47 -0500
commit6ea3fb90c6a90cad47501c4581c7206545f5e3f3 (patch)
tree69d4d43ec16894dd18855337028568abbfecbe9a /src/mongo/scripting/sm_db.cpp
parente63cc1987e8e69e53158a02f393b5a8c8993f492 (diff)
downloadmongo-6ea3fb90c6a90cad47501c4581c7206545f5e3f3.tar.gz
SERVER-7718: JS Timestamp constructor now in seconds (not millis anymore)
Diffstat (limited to 'src/mongo/scripting/sm_db.cpp')
-rw-r--r--src/mongo/scripting/sm_db.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mongo/scripting/sm_db.cpp b/src/mongo/scripting/sm_db.cpp
index a112ec9bd9a..3c53a85768a 100644
--- a/src/mongo/scripting/sm_db.cpp
+++ b/src/mongo/scripting/sm_db.cpp
@@ -1294,6 +1294,13 @@ zzz
c.setProperty( obj, "i", c.toval( 0.0 ) );
}
else {
+ long long t = parseLL(c.toString(argv[0]).c_str());
+ long long largestVal = ((2039LL-1970LL) *365*24*60*60); //seconds between 1970=2038
+ smuassert( cx,
+ ((string)(str::stream()
+ << "The first argument must be in seconds;"
+ << t << " is too large (max " << largestVal << ")")).c_str(),
+ t <= largestVal );
c.setProperty( obj, "t", argv[ 0 ] );
c.setProperty( obj, "i", argv[ 1 ] );
}
@@ -1688,7 +1695,7 @@ zzz
}
if ( JS_InstanceOf( c->_context , o , &timestamp_class , 0 ) ) {
- b.appendTimestamp( name , (unsigned long long)c->getNumber( o , "t" ) , (unsigned int )c->getNumber( o , "i" ) );
+ b.appendTimestamp( name , (unsigned long long)c->getNumber( o , "t" ) * 1000 , (unsigned int )c->getNumber( o , "i" ) );
return true;
}