mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 23:25:24 +02:00
* java/nio/ByteBuffer.java (shiftDown): New helper method. * java/nio/natDirectByteBufferImpl.cc (shiftDown): New implementation. * java/nio/ByteBufferImpl.java (compact): Use new shiftDown method. * sava/nio/ByteBufferHelper.java: Remove redundant 'final' specifiers. Pass ByteOrder parameter to most methods, since the underlying ByteBuffer's order isn't always what we should use. * java/nio/ByteBufferImpl.java: Pass byte-order various places. * java/nio/DirectByteBufferImpl.java: Likewise. Use ByteBufferHelper methods. * java/nio/MappedByteBufferImpl.java: Likewise. (compact): Use shiftDown. * java/nio/CharViewBufferImpl.java (<init>): Pass byte-order. (get, put): Use ByteBufferHelper. (compact): Use new shiftDown method. (duplicate(boolean)): New helper method. (duplicate, asReadOnlyBuffer): Use it. (order): Return endian field. * java/nio/DoubleViewBufferImpl.java: Likewise. * java/nio/FloatViewBufferImpl.java: Likewise. * java/nio/IntViewBufferImpl.java: Likewise. * java/nio/LongViewBufferImpl.java: Likewise. * java/nio/ShortViewBufferImpl.java: Likewise. * java/nio/CharViewBufferImpl.java (subsequence): Redundant test. * java/nio/DirectByteBufferImpl.java (shiftDown): New native method. (compact): Re-implement using shiftDown. From-SVN: r77501
55 lines
1.3 KiB
C++
55 lines
1.3 KiB
C++
// natDirectByteBufferImpl.cc
|
|
|
|
/* Copyright (C) 2003 Free Software Foundation
|
|
|
|
This file is part of libgcj.
|
|
|
|
This software is copyrighted work licensed under the terms of the
|
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
|
details. */
|
|
|
|
#include <config.h>
|
|
|
|
#include <gcj/cni.h>
|
|
#include <jvm.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <gnu/gcj/RawData.h>
|
|
#include <java/nio/DirectByteBufferImpl.h>
|
|
|
|
gnu::gcj::RawData*
|
|
java::nio::DirectByteBufferImpl::allocateImpl (jint capacity)
|
|
{
|
|
return reinterpret_cast<gnu::gcj::RawData*> (::malloc (capacity));
|
|
}
|
|
|
|
void
|
|
java::nio::DirectByteBufferImpl::freeImpl (gnu::gcj::RawData* address)
|
|
{
|
|
::free (reinterpret_cast<void*> (address));
|
|
}
|
|
|
|
jbyte
|
|
java::nio::DirectByteBufferImpl::getImpl (jint index)
|
|
{
|
|
jbyte* pointer = reinterpret_cast<jbyte*> (address) + offset + index;
|
|
return *pointer;
|
|
}
|
|
|
|
void
|
|
java::nio::DirectByteBufferImpl::putImpl (jint index, jbyte value)
|
|
{
|
|
jbyte* pointer = reinterpret_cast<jbyte*> (address) + offset + index;
|
|
*pointer = value;
|
|
}
|
|
|
|
void
|
|
java::nio::DirectByteBufferImpl::shiftDown
|
|
(jint dst_offset, jint src_offset, jint count)
|
|
{
|
|
jbyte* dst = reinterpret_cast<jbyte*> (address) + offset + dst_offset;
|
|
jbyte* src = reinterpret_cast<jbyte*> (address) + offset + src_offset;
|
|
::memmove(dst, src, count);
|
|
}
|