| // natStringBuffer.cc - Implementation of java.lang.StringBuffer native methods. |
| |
| /* Copyright (C) 2001, 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 <java/lang/StringBuffer.h> |
| |
| java::lang::StringBuffer* |
| java::lang::StringBuffer::append (jint num) |
| { |
| // Use an array large enough for "-2147483648"; i.e. 11 chars. |
| jchar buffer[11]; |
| int i = _Jv_FormatInt (buffer+11, num); |
| JvSynchronize dummy (this); |
| jint needed = count + i; |
| ensureCapacity_unsynchronized (needed); |
| jchar* dst = elements (value) + count; |
| jchar* src = buffer+11-i; |
| while (--i >= 0) |
| *dst++ = *src++; |
| count = needed; |
| return this; |
| } |
| |
| jboolean |
| java::lang::StringBuffer::regionMatches(jint toffset, jstring other) |
| { |
| jint len = other->count; |
| jchar *tptr = elements(value) + toffset; |
| jchar *optr = JvGetStringChars(other); |
| while (--len >= 0) |
| if (*tptr++ != *optr++) |
| return false; |
| return true; |
| } |