| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
importNode() shares all of its implementation with Node.clone();
the only areas they differ are the ones we don't support. The
shared code is in 2 new methods, shallowCopy() and cloneOrImportNode(),
both based on the old clone() method.
Also removing some unnecessary "throws DOMException" clauses.
The tests for the new methods are slightly cumbersome. Most move/copy
nodes to another document, serialize that, and compare.
Change-Id: Id9fb076e020d8327a8f70da401af9bd95d7a3d1b
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Based on user-submitted bugs that were just misunderstandings, plus
implementation bugs caused by the intended behavior being somewhat
subtle.
Change-Id: Ic2606b5e57dadc95a35c2d0a977c01434a2fa28a
|
|\ \ \
| | | |
| | | |
| | | | |
(and add 1.6 JDK to PATH)"
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
1.6 JDK to PATH)
Now if certimport.sh is run on a machine without the
BouncyCastleProvider installed, it will suggest how to apt-get install
the proper package.
At enh's suggestion, I tried running with out own local Bouncy Castle
classes to see what would happen, but the code ended up depending on
our NativeCrypto JNI code and there that isn't proper JNI code to be
loading into a RI JDK.
Also at enh's suggestion, we now prepend a JDK 1.6 bin directory to
the path for correctly correct default behavior. I do make sure it
exists and warn if it does not.
Change-Id: Ic936a6cc69fa3795e917c052ed79d19b2e66b5a1
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
procedure. It is unsafe to reckon a thin lock owner without having first determined that the bit pattern of the lock word corresponds to that of a thin lock. Without proper ordering, a monitor lock can and will be created which, excluding the shape bit, corresponds to a lock owned by the calling thread."
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
procedure. It is unsafe to reckon a thin lock owner without having
first determined that the bit pattern of the lock word corresponds to
that of a thin lock. Without proper ordering, a monitor lock can and
will be created which, excluding the shape bit, corresponds to a lock
owned by the calling thread.
In addition, move compiler barriers so they immediately preceed base
address publication. Also, kill cargo-cult volatiles that confounded
my bug hunt.
|
| |_|_|/
|/| | |
| | | |
| | | | |
Change-Id: I43d2404e71aa2bc0d3d6aada35d613bb484129e7
|
|\ \ \ \
| |_|_|/
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also making sure both Document and DocumentType get assigned
a Document value when possible; this is necessary to store the
user data objects.
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As part of shutdown, the Jit needs to unchain all translations so that
they can respond to suspend requests. This change introduces a
dvmJitUnchainAll() into shutdown, and also removes some previous
housecleaning that freed our key tables. We can't actually free those
because suspended threads in the process of shutting down may hold
references.
Change-Id: I7aad332e7195a94970c25a25b2d9fda5607bec08
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Issue 2175597 Jit compile failures should abort translation, but not the VM
Added new dvmCompileAbort() to replace uses of dvmAbort() when something goes
wrong during the compliation of a trace. In that case, we'll abort the translation
and set it's head to the interpret-only "translation".
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The Jit was using ldrex/strex to clear an owned thin lock in the
fast path. This was not necessary - an integer store works and is
much faster.
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
New stuff includes breakdown of callsite types (ie monomorphic vs polymorphic
vs monoporphic resolved to native), total time spent in JIT'ing, and average
JIT time per compilation.
Example output:
D/dalvikvm( 840): 4042 compilations using 1976 + 329108 bytes
D/dalvikvm( 840): Compiler arena uses 10 blocks (8100 bytes each)
D/dalvikvm( 840): Compiler work queue length is 0/36
D/dalvikvm( 840): size if 8192, entries used is 4137
D/dalvikvm( 840): JIT: 4137 traces, 8192 slots, 1099 chains, 40 thresh, Non-blocking
D/dalvikvm( 840): JIT: Lookups: 1128780 hits, 168564 misses; 179520 normal, 6 punt
D/dalvikvm( 840): JIT: noChainExit: 528464 IC miss, 194708 interp callsite, 0 switch overflow
D/dalvikvm( 840): JIT: Invoke: 507 mono, 988 poly, 72 native, 1038 return
D/dalvikvm( 840): JIT: Total compilation time: 2342 ms
D/dalvikvm( 840): JIT: Avg unit compilation time: 579 us
D/dalvikvm( 840): JIT: 3357 Translation chains, 97 interp stubs
D/dalvikvm( 840): dalvik.vm.jit.op = 0-2,4-5,7-8,a-c,e-16,19-1a,1c-23,26,28-29,2b-2f,31-3d,44-4b,4d-51,60,62-63,68-69,70-72,76-78,7b,81-82,84,87,89,8d-93,95-98,a1,a3,a6,a8-a9,b0-b3,b5-b6,bb-bf,c6-c8,d0,d2-d6,d8,da-e2,ee-f0,f2-fb,
D/dalvikvm( 840): Code size stats: 50666/105126 (compiled/total Dalvik), 329108 (native)
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Code using SSLEngine for non-blocking SSL can't talk with openssl as a client,
since the signature is computed on different content (and openssl checks it,
unlike java). The fix is to use strip the 0x00 prefix when signing - like
it is done when generating the message, refactored both to use a common
method. We also include the length in the signature, it was also missing.
|
|\ \ \ \
| |/ / /
|/| | | |
|
| |/ /
| | |
| | |
| | | |
See bug 1729487.
|
| | |
| | |
| | |
| | | |
The dalvik continuous build's new jdiff run caught this.
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | | |
Bug: 2486943
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The getSchedulerGroup() in libcutils was updated, but for some reason we
have our own copy in the VM. This change brings it up to date so we
stop crashing every time something requests a virtual stack (e.g. with a
"kill -3 <pid>").
(The function is now an exact clone -- the previous version was slightly
modified.)
|
|\ \ \ |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Re-enabled load/store motion that had inadvertently been turned off for
non-armv7 targets. Tagged memory references with the kind of memory
they touch (Dalvik frame, literal pool, heap) to enable more aggressive
load hoisting. Eliminated some largely duplicate code in the target
specific files. Reworked temp register allocation code to allocate next
temp round-robin (to improve scheduling opportunities).
Overall, nice gain for Sapphire. Shows 5% to 15% on some benchmarks, and
measurable improvements for Passion.
|
|\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | | |
Eclair for CTS.
Merge commit 'b16b78db118036d7df2cf5705baa18f34bd42eec'
* commit 'b16b78db118036d7df2cf5705baa18f34bd42eec':
Copy Froyo's version of MulticastSocketTest to Eclair for CTS.
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Merge commit '275acdff64a58f407cec552e7027cb07414b48ef' into eclair-plus-aosp
* commit '275acdff64a58f407cec552e7027cb07414b48ef':
Copy Froyo's version of MulticastSocketTest to Eclair for CTS.
|
| | | |
| | | |
| | | |
| | | | |
Partners are seeing test failures from the old tests, which were very bogus.
|
|\ \ \ \ |
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Dalvik uses a safe-point suspend mechanism, in which threads are asked
to suspend and do so at their earliest convenience. The thread doing
the asking will sleep-spin until all threads have complied. If a thread
keeps on running, we get a "spin on suspend" situation.
The VM tries to correct matters by raising the priority of the spinning
thread if it's below normal. Until now it was just fiddling with the
"nice" value, but it appears that isn't enough (e.g. bug 2467653). We
now also change the thread's process group from "background" to
"foreground" in an attempt to get it some CPU.
Also includes some changes as part of the Log Reduction Act:
- Don't log the thread stacks on the first spin-on-suspend iteration.
The act of logging can itself be quite a drag.
- Removed the redundant and unnecessary "dumping state" line, as well
as some dead glibc-only code.
- While waiting for daemon threads to shut down, only show the "not
ready yet" message on the first iteration.
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
of the IllegalMonitorExcpetion throw by unlockMonitor."
|
| | | | |
| | | | |
| | | | |
| | | | | |
of the IllegalMonitorExcpetion throw by unlockMonitor.
|
| | | | | |
|
| |/ / /
|/| | |
| | | |
| | | | |
Originally https://android-git.corp.google.com/g/42517.
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Based on https://android-git.corp.google.com/g/42516.
Includes the harmony tests from their Java 6 branch.
Bug: 719001
|
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This follows the rules specified by DOMConfiguration. In particular:
- replacing CDATA nodes with text
- splitting CDATA nodes
- merging text nodes
- stripping comments
- detecting invalid characters
I haven't added the normalization code for XML validation or namespaces.
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This patch is used to allow an unprivileged gdbserver binary to
perform a ptrace attach to a debuggable process.
The kernel will only allow the attach to succeed under the following
conditions:
- gdbserver and the process are run under the exact same uids/gids
- the process is dumpable
The second condition requires this patch. The first one is ensured
by different changes to the platform (that don't directly touch Dalvik).
This is part of the work performed to allow native debugging of
applications on production devices.
|
|\ \ \ \ \ \ \
| |_|_|/ / / /
|/| | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The idea is to make sure the main thread is getting through the VM init
process with an empty tracked references table. If we find any, we
print a warning and dump the table, but continue on anyway.
My test was a trivial dvmMalloc(), which turned up a flaw in the ref
table dump code: it didn't deal with "raw" dvmMalloc sections. So
that's fixed as well.
|
|\ \ \ \ \ \ \
| |_|_|/ / / /
|/| | | | | | |
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Besides the obvious things (unimplemented opcodes), this points out a
couple of changes that were made to the interpreter and require a
corresponding change for x86-atom.
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This API is disgusting. Its not regular, not typesafe, sparsely
implemented and overly specific. I'm implementing the minimum I can
get away with - exactly the same route taken by the RI.
The Parameter stuff feels a little bit like overkill, but it allowed
me to group related chunks of code together and avoid long chains of
equalsIgnoreCase if statements.
This is necessary to implement Document.normalize(), one of the
last remaining APIs in DOMv3.
Also fixing our implementation of Node.normalize() and adding tests
to discover a bug in that code. Previously a document like this:
"<foo>abc<br>def</foo>"
Would be normalized to this:
"<foo>abcdef<br></foo>"
Which is a horrible bug! Yuck.
Implementation and tests for Document.normalize() are forthcoming.
|
|\ \ \ \ \ \ \
| |_|/ / / / /
|/| | | | | | |
|