OSDN Git Service

2007-05-31 Andrew Haley <aph@redhat.com>
[pf3gnuchains/gcc-fork.git] / libjava / java / lang / natStringBuffer.cc
1 // natStringBuffer.cc - Implementation of java.lang.StringBuffer native methods.
2
3 /* Copyright (C) 2001, 2003  Free Software Foundation
4
5    This file is part of libgcj.
6
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
9 details.  */
10
11 #include <config.h>
12 #include <gcj/cni.h>
13 #include <java/lang/StringBuffer.h>
14
15 java::lang::StringBuffer*
16 java::lang::StringBuffer::append (jint num)
17 {
18   // Use an array large enough for "-2147483648"; i.e. 11 chars.
19   jchar buffer[11];
20   int i = _Jv_FormatInt (buffer+11, num);
21   JvSynchronize dummy (this);
22   jint needed = count + i;
23   ensureCapacity_unsynchronized (needed);
24   jchar* dst = elements (value) + count;
25   jchar* src = buffer+11-i;
26   while (--i >= 0)
27     *dst++ = *src++;
28   count = needed;
29   return this;
30 }
31
32 jboolean
33 java::lang::StringBuffer::regionMatches(jint toffset, jstring other)
34 {
35   jint len = other->count;
36   jchar *tptr = elements(value) + toffset;
37   jchar *optr = JvGetStringChars(other);
38   while (--len >= 0)
39     if (*tptr++ != *optr++)
40       return false;
41   return true;
42 }