From 4e4678edfa8e4d91e32852eceb6fd8d7e659b339 Mon Sep 17 00:00:00 2001
From: Muga Nishizawa <muga.nishizawa@gmail.com>
Date: Sun, 12 Dec 2010 00:35:43 +0900
Subject: [PATCH] java: add packByteBuffer method in Packer.java because I
 needed non-nullcheck pack(ByteBuffer) for refining ByteBufferTemplate.java

---
 java/src/main/java/org/msgpack/Packer.java | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/java/src/main/java/org/msgpack/Packer.java b/java/src/main/java/org/msgpack/Packer.java
index e3af0557..17a6796a 100644
--- a/java/src/main/java/org/msgpack/Packer.java
+++ b/java/src/main/java/org/msgpack/Packer.java
@@ -399,6 +399,11 @@ public class Packer {
 		return packRawBody(b, off, length);
 	}
 
+	public Packer packByteBuffer(ByteBuffer buf) throws IOException {
+		packRaw(buf.remaining());
+		return packRawBody(buf.array(), buf.arrayOffset() + buf.position(), buf.remaining());
+	}
+
 	public Packer packString(String s) throws IOException {
 		byte[] b = ((String)s).getBytes("UTF-8");
 		packRaw(b.length);
@@ -495,9 +500,8 @@ public class Packer {
 
 	public Packer pack(ByteBuffer o) throws IOException {
 		if (o == null) { return packNil(); }
-		ByteBuffer buf = (ByteBuffer) o;
-		packRaw(buf.remaining());
-		return packRawBody(buf.array(), buf.arrayOffset() + buf.position(), buf.remaining());
+		packRaw(o.remaining());
+		return packRawBody(o.array(), o.arrayOffset() + o.position(), o.remaining());
 	}
 
 	public Packer pack(List o) throws IOException {