8023203: Wrap RandomAccessFile.seek native method into a Java helper method

Reviewed-by: alanb, chegar
This commit is contained in:
Dan Xu 2013-08-19 12:38:56 -07:00
parent a29db3a5b8
commit aa90f3b312
4 changed files with 13 additions and 5 deletions

View File

@ -100,7 +100,7 @@ SUNWprivate_1.1 {
Java_java_io_RandomAccessFile_open;
Java_java_io_RandomAccessFile_read;
Java_java_io_RandomAccessFile_readBytes;
Java_java_io_RandomAccessFile_seek;
Java_java_io_RandomAccessFile_seek0;
Java_java_io_RandomAccessFile_setLength;
Java_java_io_RandomAccessFile_write;
Java_java_io_RandomAccessFile_writeBytes;

View File

@ -100,7 +100,7 @@ SUNWprivate_1.1 {
Java_java_io_RandomAccessFile_open;
Java_java_io_RandomAccessFile_read;
Java_java_io_RandomAccessFile_readBytes;
Java_java_io_RandomAccessFile_seek;
Java_java_io_RandomAccessFile_seek0;
Java_java_io_RandomAccessFile_setLength;
Java_java_io_RandomAccessFile_write;
Java_java_io_RandomAccessFile_writeBytes;

View File

@ -518,7 +518,15 @@ public class RandomAccessFile implements DataOutput, DataInput, Closeable {
* @exception IOException if {@code pos} is less than
* {@code 0} or if an I/O error occurs.
*/
public native void seek(long pos) throws IOException;
public void seek(long pos) throws IOException {
if (pos < 0) {
throw new IOException("Negative seek offset");
} else {
seek0(pos);
}
}
private native void seek0(long pos) throws IOException;
/**
* Returns the length of this file.

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -123,7 +123,7 @@ Java_java_io_RandomAccessFile_length(JNIEnv *env, jobject this) {
}
JNIEXPORT void JNICALL
Java_java_io_RandomAccessFile_seek(JNIEnv *env,
Java_java_io_RandomAccessFile_seek0(JNIEnv *env,
jobject this, jlong pos) {
FD fd;