Merge "ParcelFileDescriptor: fix various ownership mistakes."
This commit is contained in:
@@ -55,6 +55,7 @@ import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InterruptedIOException;
|
||||
import java.io.UncheckedIOException;
|
||||
import java.net.DatagramSocket;
|
||||
import java.net.Socket;
|
||||
import java.nio.ByteOrder;
|
||||
@@ -397,26 +398,41 @@ public class ParcelFileDescriptor implements Parcelable, Closeable {
|
||||
* @param socket The Socket whose FileDescriptor is used to create
|
||||
* a new ParcelFileDescriptor.
|
||||
*
|
||||
* @return A new ParcelFileDescriptor with the FileDescriptor of the
|
||||
* specified Socket.
|
||||
* @return A new ParcelFileDescriptor with a duped copy of the
|
||||
* FileDescriptor of the specified Socket.
|
||||
*
|
||||
* @throws UncheckedIOException if {@link #dup(FileDescriptor)} throws IOException.
|
||||
*/
|
||||
public static ParcelFileDescriptor fromSocket(Socket socket) {
|
||||
FileDescriptor fd = socket.getFileDescriptor$();
|
||||
return fd != null ? new ParcelFileDescriptor(fd) : null;
|
||||
try {
|
||||
return fd != null ? ParcelFileDescriptor.dup(fd) : null;
|
||||
} catch (IOException e) {
|
||||
throw new UncheckedIOException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new ParcelFileDescriptor from the specified DatagramSocket.
|
||||
* Create a new ParcelFileDescriptor from the specified DatagramSocket. The
|
||||
* new ParcelFileDescriptor holds a dup of the original FileDescriptor in
|
||||
* the DatagramSocket, so you must still close the DatagramSocket as well
|
||||
* as the new ParcelFileDescriptor.
|
||||
*
|
||||
* @param datagramSocket The DatagramSocket whose FileDescriptor is used
|
||||
* to create a new ParcelFileDescriptor.
|
||||
*
|
||||
* @return A new ParcelFileDescriptor with the FileDescriptor of the
|
||||
* specified DatagramSocket.
|
||||
* @return A new ParcelFileDescriptor with a duped copy of the
|
||||
* FileDescriptor of the specified Socket.
|
||||
*
|
||||
* @throws UncheckedIOException if {@link #dup(FileDescriptor)} throws IOException.
|
||||
*/
|
||||
public static ParcelFileDescriptor fromDatagramSocket(DatagramSocket datagramSocket) {
|
||||
FileDescriptor fd = datagramSocket.getFileDescriptor$();
|
||||
return fd != null ? new ParcelFileDescriptor(fd) : null;
|
||||
try {
|
||||
return fd != null ? ParcelFileDescriptor.dup(fd) : null;
|
||||
} catch (IOException e) {
|
||||
throw new UncheckedIOException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -546,7 +562,7 @@ public class ParcelFileDescriptor implements Parcelable, Closeable {
|
||||
}
|
||||
file.deactivate();
|
||||
FileDescriptor fd = file.getFileDescriptor();
|
||||
return fd != null ? new ParcelFileDescriptor(fd) : null;
|
||||
return fd != null ? ParcelFileDescriptor.dup(fd) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user