2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / libjava / java / lang / natStringBuffer.cc
blob8fbb8dfbc3c6a58c1fc84cb25fa4da203ccfa13f
1 // natStringBuffer.cc - Implementation of java.lang.StringBuffer native methods.
3 /* Copyright (C) 2001, 2003 Free Software Foundation
5 This file is part of libgcj.
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
9 details. */
11 #include <config.h>
12 #include <gcj/cni.h>
13 #include <java/lang/StringBuffer.h>
15 java::lang::StringBuffer*
16 java::lang::StringBuffer::append (jint num)
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;
32 jboolean
33 java::lang::StringBuffer::regionMatches(jint toffset, jstring other)
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;