309 jlong diff = seconds - offset_secs; 310 if (diff >= MAX_DIFF_SECS || diff <= MIN_DIFF_SECS) { 311 return -1; // sentinel value: the offset is too far off the target 312 } 313 314 // return the adjustment. If you compute a time by adding 315 // this number of nanoseconds along with the number of seconds 316 // in the offset you should get the current UTC time. 317 return (diff * (jlong)1000000000) + nanos; 318 JVM_END 319 320 JVM_ENTRY(void, JVM_ArrayCopy(JNIEnv *env, jclass ignored, jobject src, jint src_pos, 321 jobject dst, jint dst_pos, jint length)) 322 JVMWrapper("JVM_ArrayCopy"); 323 // Check if we have null pointers 324 if (src == NULL || dst == NULL) { 325 THROW(vmSymbols::java_lang_NullPointerException()); 326 } 327 arrayOop s = arrayOop(JNIHandles::resolve_non_null(src)); 328 arrayOop d = arrayOop(JNIHandles::resolve_non_null(dst)); 329 assert(s->is_oop(), "JVM_ArrayCopy: src not an oop"); 330 assert(d->is_oop(), "JVM_ArrayCopy: dst not an oop"); 331 // Do copy 332 s->klass()->copy_array(s, src_pos, d, dst_pos, length, thread); 333 JVM_END 334 335 336 static void set_property(Handle props, const char* key, const char* value, TRAPS) { 337 JavaValue r(T_OBJECT); 338 // public synchronized Object put(Object key, Object value); 339 HandleMark hm(THREAD); 340 Handle key_str = java_lang_String::create_from_platform_dependent_str(key, CHECK); 341 Handle value_str = java_lang_String::create_from_platform_dependent_str((value != NULL ? value : ""), CHECK); 342 JavaCalls::call_virtual(&r, 343 props, 344 SystemDictionary::Properties_klass(), 345 vmSymbols::put_name(), 346 vmSymbols::object_object_object_signature(), 347 key_str, 348 value_str, 349 THREAD); 350 } | 309 jlong diff = seconds - offset_secs; 310 if (diff >= MAX_DIFF_SECS || diff <= MIN_DIFF_SECS) { 311 return -1; // sentinel value: the offset is too far off the target 312 } 313 314 // return the adjustment. If you compute a time by adding 315 // this number of nanoseconds along with the number of seconds 316 // in the offset you should get the current UTC time. 317 return (diff * (jlong)1000000000) + nanos; 318 JVM_END 319 320 JVM_ENTRY(void, JVM_ArrayCopy(JNIEnv *env, jclass ignored, jobject src, jint src_pos, 321 jobject dst, jint dst_pos, jint length)) 322 JVMWrapper("JVM_ArrayCopy"); 323 // Check if we have null pointers 324 if (src == NULL || dst == NULL) { 325 THROW(vmSymbols::java_lang_NullPointerException()); 326 } 327 arrayOop s = arrayOop(JNIHandles::resolve_non_null(src)); 328 arrayOop d = arrayOop(JNIHandles::resolve_non_null(dst)); 329 assert(oopDesc::is_oop(s), "JVM_ArrayCopy: src not an oop"); 330 assert(oopDesc::is_oop(d), "JVM_ArrayCopy: dst not an oop"); 331 // Do copy 332 s->klass()->copy_array(s, src_pos, d, dst_pos, length, thread); 333 JVM_END 334 335 336 static void set_property(Handle props, const char* key, const char* value, TRAPS) { 337 JavaValue r(T_OBJECT); 338 // public synchronized Object put(Object key, Object value); 339 HandleMark hm(THREAD); 340 Handle key_str = java_lang_String::create_from_platform_dependent_str(key, CHECK); 341 Handle value_str = java_lang_String::create_from_platform_dependent_str((value != NULL ? value : ""), CHECK); 342 JavaCalls::call_virtual(&r, 343 props, 344 SystemDictionary::Properties_klass(), 345 vmSymbols::put_name(), 346 vmSymbols::object_object_object_signature(), 347 key_str, 348 value_str, 349 THREAD); 350 } |