History log of /libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
Revision Date Author Comments
a04b5c3d39232c7616591883ee2124520e3ab622 06-Mar-2015 Elliott Hughes <enh@google.com> Explicitly specify the icu:: namespace.

Bug: 15350832
Change-Id: I8d84f3e50b643806ccf01190797c69ce6445b539
b3aacde3d8af759ee4a7b395c636ea360547d92d 05-Nov-2014 Ian Rogers <irogers@google.com> Move from UniquePtr to std::unique_ptr.

Switch from stlport to libcxx as stlport lacks std::unique_ptr.

Change-Id: I45a3588a8ecf4689521f1df6654ed279a6d0669e
c720854b9b308b96f4e1ea3d0eefbe1309bc2ca0 06-Feb-2014 Elliott Hughes <enh@google.com> Merge "Revert "Revert "ExpatParser LP64 fixes."""
8107b206cd72c51ffaeac1f7fcfdf4ea0728e34c 05-Feb-2014 Elliott Hughes <enh@google.com> Revert "Revert "ExpatParser LP64 fixes.""

This reverts commit d88231f770f7459dc174aa970e305aa5f16f9f04.

Change-Id: Iac6b50221aa1e4cfe8514ea693a4289d74e118de
766c50b84a0bb09031246a715ce1df4215f346ef 05-Feb-2014 Elliott Hughes <enh@google.com> Merge "Revert "ExpatParser LP64 fixes.""
d88231f770f7459dc174aa970e305aa5f16f9f04 05-Feb-2014 Elliott Hughes <enh@google.com> Revert "ExpatParser LP64 fixes."

This reverts commit a8a1e201e415abfd6b5ae4fed98c8aa491e15af9.

This causes YouTube to crash on launch. Reverting to give myself more time to investigate.

Change-Id: I9ee107383a4f206ca83dd267baad77445eba3fce
a8a1e201e415abfd6b5ae4fed98c8aa491e15af9 04-Feb-2014 Elliott Hughes <enh@google.com> ExpatParser LP64 fixes.

Change-Id: I17ba32b6147b048f3cace0b2d7283b1c9d74f776
Signed-off-by: Stuart Monteith <Stuart.Monteith@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Matteo Franchin <matteo.franchin@arm.com>
08bfdd7d88c929964873bb0e311bcae0edb5ebc2 14-May-2013 Mikael Gullstrand <mikael.gullstrand@sonymobile.com> Fix memory leaks in org_apache_harmony_xml_ExpatParser

The method expandInternedStringBucket(...) creates a new bucket
but the old bucket is never freed, even though the function doc
claims that it does. To solve this problem the old bucket is
freed when the new one has been created successfully.

Also this commit fixes two possible memory leaks when a
jniThrowOutOfMemoryError is thrown, where the internedString
also needs to be freed.

Change-Id: Ic80a35a2b4ec8f93ddc006aca5609a5ffe74d659
0b00d81d3c9e9a2df4635cd6a55e291cce303658 28-Feb-2013 Joel Dice <joel.dice@gmail.com> use longs instead of ints to store pointers in ExpatParser

This allows the class to be used on 64-bit VMs. I've also changed
ExpatAttributes to match.

Change-Id: I4340040085b517b6f713623755f4647e190a68a9
e8c6258cefbba8d01ce4b97f21e53266b73d5d36 21-Feb-2013 andrey yusipov <andrey.yusipov@sonymobile.com> Memory leak in StringStack::push detected in ExpatParser_initialize

array pointer becomes loose.
Need to delete it before array = NewArray
6c1e5f4ad36c1f51687aa2b059e998a7c2db2e36 26-Jan-2013 Elliott Hughes <enh@google.com> Manually update the libcore native code.

Cherry-picking all the individual tiny cleanups from the internal branch was
too hard.

Change-Id: Ib97643d3502295685390854c9edd97c93c4c2ecf
0ebd342f96a7dc74a1e9e015ddca1484ee0890c4 09-Oct-2012 Craig Cornelius <ccornelius@google.com> Track changes caused by the ICU 49.2 upgrade.

(cherry-pick of 0e996f766f975305a484b40809b6b720c0046980.)

Change-Id: I503be2cebe8664a624de7b84f655b646db6e86f7
0e996f766f975305a484b40809b6b720c0046980 09-Oct-2012 Craig Cornelius <ccornelius@google.com> Track changes caused by the ICU 49.2 upgrade.

Change-Id: I955d4315fdff694b3d35cf7072b77c816ff2d977
44d737281c6a6c9be6ea1eb58cf678f43643650a 09-Sep-2012 Elliott Hughes <enh@google.com> Get expat header files from the approved location.

Change-Id: Ie896d616b21ba2e1db33d39a721150e4e4d59d21
7cd6760f7045d771faae8080a8c6150bf678f679 04-May-2012 Elliott Hughes <enh@google.com> Make libjavacore independent of libnativehelper for the PDK.

Bug: 6369821
Change-Id: Ie038571a5dac1f301c0c3c6fb84df432e67b62c0
8545b837c61c3eaea2b8433b6791aa401f37e5f7 09-Jun-2011 Elliott Hughes <enh@google.com> Tidy a few includes.

Change-Id: I8a46fcea81b9bd354fa1cd5c3dd49b5b29015739
fe711d61cafbb878d1d6a5e223fcd2201f2e829a 23-Apr-2011 Elliott Hughes <enh@google.com> Don't use ScopedJavaUnicodeString where ScopedStringChars will do.

Plus a few other random bits of tidying. (This is the detritus from a more
significant change that will need to be cherry-picked. I'm keeping this
separate from the active ingredients of the change.)

Change-Id: I0ae90e8835cba888596efd33b540eb31c784682f
fb85a3a834a5b5d9058686b99991416b0681589e 17-Jan-2011 Elliott Hughes <enh@google.com> Use jniThrowOutOfMemoryError everywhere.

Change-Id: I63f8481bfb760118fb1d6dcbb9d02fdf14678fb3
26e0cc02e3ddd5e77e5c99984e7b50de6f5a4aad 17-Nov-2010 Olivier Bailly <olivier@google.com> Fix pointer vs integer mismatch in several return statements.

Change-Id: Id2a754cf0a58d55e38c72e998920f219c5342d3d
dabcbd61269aa4de2cdff91ac524ed2a0adccdfe 11-Nov-2010 Jesse Wilson <jessewilson@google.com> Fix an Expat comment to make it clear that the specified encoding is used.

Change-Id: Ia8662bad784784c8ddd2c5c9d904f9e050a5fded
http://b/2719016
b5bde2fd72189192b52e726a2d606d70c3c8a34b 02-Nov-2010 Elliott Hughes <enh@google.com> More shift removal.

A few more customers for OSMemory's peek/poke abilities, and a bunch of shifts
that should have been multiplications.

Bug: 3032515
Change-Id: Ic518fd8f7565d67523ea10e3f5afca3a9c8501b8
e22935d3c7040c22b48d53bd18878844f381287c 13-Aug-2010 Elliott Hughes <enh@google.com> Remove most of our C-style casts.

After being burned by an incorrect C-style cast that cast away const, I've been
keen to remove them all and turn on -Wold-style-cast. This patch doesn't get us
that far, but it does kill the majority of our C-style casts. In turn, the
majority of the casts that it removes are the ones from our tables of native
methods to be registered.

The new NATIVE_METHOD macro also _enforces_ our convention of using the
"Class_nativeMethod" style of naming. Mostly this works out fine. In some
cases (most notably ExpatParser and ExpatAttributes) I've had to un-overload
a few functions, but I don't like overloading anyway, and in the particular
case of a native method, where the stack trace doesn't show a line number,
overloading makes it one step harder to work out which native method you're
actually in. So good riddance to that. The only unfortunate case is
Math.copySign, where there are two overloads corresponding to copysign(3)
and copysignf(3). I had to add an extra layer of indirection there. In my
defense, we've never shipped these functions before, they're unlikely to
become anyone's hotspot, and the right fix is to be doing such trivial work
on the Java side anyway, with intrinsics making the conversion between
float/double and int/long cheap.

This patch also replaces other C-style casts, primarily in
"OSNetworkSystem.cpp".

This patch also removes unnecessary uses of the "struct" keyword.

This patch also fixes a "may be used uninitialized" warning (now error) in
the sim build for "ICU.cpp".

The remaining C-style casts are in the hairy float-parsing code. That stuff --
and turning on -Wold-style-cast -- will have to wait for another day.

Change-Id: I9b3ee14aefd4676f980f6a7ca757595d78d80e6a
2edc04d70355a99fc4088ec8f78aa79d33b3fb54 22-Jul-2010 Elliott Hughes <enh@google.com> Remove C-style casts from our expat JNI.

Also move more native methods' function names over to the predominant
"Class_methodName" orthography.

Change-Id: I12a7aa8c98726b478617b56a071196a38ada4e09
64101124267c6a0a9a12dc854bdec39cbc506259 12-Jul-2010 Elliott Hughes <enh@google.com> Add null-pointer checking to ScopedPrimitiveArray.

This style worked well for ScopedUtfChars. It moves null-pointer checking
inside the class, thereby encouraging us to remember to check for the
unlikely out-of-memory failures too.

I've also broken up some tests that were trying to check multiple scoped
arrays at once. This idiom was broken because as soon as there's a pending
exception, it's a JNI error to even attempt to set up the next scoped
primitive array. In the absence of C++ exceptions, we have to check these
one by one.

Change-Id: I2f4b397ae2873597e309d86fcc5912f3fcf0f304
4e3714f7fe8ac7f6b20896038e491d378f4e6464 22-Jun-2010 Elliott Hughes <enh@google.com> Stop using GetStringChars/ReleaseStringChars.

Also fix unused variable warnings in "ExpatParser.cpp".

This fixes one actual bug in the regular expression code where we weren't
returning after throwing an exception from JNI, in a case where executing
the remaining code in the native method would cause a crash.

Change-Id: Ib5ce7ea9a3b6476cf47bda2384d5ba43579c785a
91499048b3322f6de5e5f823ccc8a83f0ed87b71 22-Jun-2010 Elliott Hughes <enh@google.com> Fix build.

libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp: In function 'char* cloneStrings(const char**, int)':
libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1237: error: 'env' was not declared in this scope

While I'm here, I've inlined cloneStrings into its sole caller (where,
conveniently, 'env' is available).

Change-Id: I9cc5b5946e7ad636cf8ff938cac77411f21f3b99
4eafbcc36e530ad09e0d6617d50e74e635e63f2e 22-Jun-2010 Elliott Hughes <enh@google.com> Simplify resource management in ExpatParser's JNI.

valgrind complained about calling free(3) on a pointer allocated by new.
Tidy this code up to be a little more C++-like. valgrind appears happy now,
but there shouldn't be any functional changes.

Bug: 2785827
Change-Id: Ibbb79d52c7707ff6f86cc7444e00115c1b89b687
a9f5c16a864ff63ba63f810410f8a27c086d5d52 17-Jun-2010 Elliott Hughes <enh@google.com> Remove dynamic calls to FindClass.

Initially, I was just fixing a threading bug in NativeDecimalFormat.cpp where
we were bypassing GCC's built-in static initializer thread safety. This led me
to the question of how expensive FindClass is, which led me to creating a new
canonical cache of jclasses.

Here's the motivating benchmark, showing the cost of calling an empty regular
(non-native) method, an empty native method, a native method that calls
FindClass, a native method that calls FindClass and GetFieldID, and a native
method that calls FindClass and GetMethodID:

benchmark ns logarithmic runtime
NoArgsRegular 74 ||||||||||||||
NoArgsNative 428 XX|||||||||||||||||||
FindClass 3064 XXXXXXXXXXXXXXXX|||||||||||
FindClassGetField 3654 XXXXXXXXXXXXXXXXXXX|||||||||
FindClassGetMethod 5634 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Change-Id: I41ab2b347895f043a7e21d8fa19e4541e198c3fc
05960876dff6a5b686821eed8f7ae7cef5af4f50 27-May-2010 Elliott Hughes <enh@google.com> Enhance ScopedUtfChars to include the null check most callers were missing.

Also switch most non-users over to ScopedUtfChars.

Also ensure all users check that ScopedUtfChars was successful in getting the
chars.

Also rewrite ObjectInputStream and ObjectOutputStream without duplication.

Change-Id: I929d00fe3ff50b303cba4a2cf2269355e9fef5f9
ebca53a204302c5e559b5c2c9014b48048faf4d4 21-May-2010 Elliott Hughes <enh@google.com> Add write-back ScopedPrimitiveArrays (and use them).

I've left the remaining Get/Release Critical calls in "NativeConverter.cpp"
for the next patch, even though getting into position to fix them is part of
the point of this patch.

Change-Id: I99e15a3cf3919008343ae4dc856c86ced233e07a
8044bf6b446c93cd29c5753544246316f269064f 18-May-2010 Elliott Hughes <enh@google.com> Make ScopedLocalRef more convenient, and use it more widely.

Even though every reference type is a jobject, it's useful to be able to use
more specific types.

Change-Id: Id8056d0e18380675c90f08c4173a8b34b4d5d983
99c59bfa432e36933a7a5033fba8b89209f737bc 18-May-2010 Elliott Hughes <enh@google.com> Expand upon the old ScopedByteArray, and start removing some of the Get/ReleaseCritical calls.

This adds Scoped*Array classes for all primitive types, and switches all
read-only users of arrays over. At the same time, all read-only users of
Get/ReleaseCritical get switched to non-critical access.

Bug: 2663177
Change-Id: I5542cea3e24faa987ced463fcb695b9598da94af
44e0e560c92338110953ce806df475fedcdf926e 07-May-2010 Brian Carlstrom <bdc@google.com> Enable -Wall -Wextra for libcore and cleanup all but one warning

Change-Id: Ied76662c470ba878cec61189acf29f5cbbd4ccd4
6b811c5daec1b28e6f63b57f98a032236f2c3cf7 03-May-2010 Peter Hallam <peterhal@google.com> Merge awt-kernel, icu, luni-kernel, prefs, security-kernel, x-net into luni
Merge xml except xmlpull and kxml into luni