This works by using SSL_CTX_load_verify_locations in
SecurityContext._trustBuiltinRoots() to specify
/system/etc/security/cacerts as the certificate directory.
This saves about 240KB from a stripped ProductAndroidARM build.
This has the drawback that SSL_do_handshake will synchronously
hit the filesystem looking for root certs during its trust evaluation.
We call SSL_do_handshake directly from the Dart thread so that Dart
code can be invoked from the "bad certificate" callback called by
SSL_do_handshake. If there was no need to support this callback,
it would be easier to move the handshake to the IOService thread, and
thus remove the compiled-in certs without the need for blocking IO
on the Dart thread.
R=whesse@google.com
Review URL: https://codereview.chromium.org/1811583003 .
It is only used to test if the Code has been disabled, and we can instead test if the active entry point matches the Instruction's entry point. A Code's entry point is either for its own Instructions or Instructions of stub code in the VM isolate, so we don't need this field to keep the Instructions alive.
precompiled dart2js x64 22254552 -> 22165795 (-0.39%)
BUG=http://dartbug.com/25992R=fschneider@google.com
Review URL: https://codereview.chromium.org/1814623003 .
Problems this addresses:
1. dart2js has hashCode functions like
get hashCode = this.x.hashCode + 17 * this.y.hashCode
When x and y are ints or bools VM optimizing compiler inlined the call
to Object.hashCode and generated MegamorphicLookups for
Object._identityHashCode.
2. HashMaps with _Smi keys had a double MegamorphicLookup: The hash
table reasonably calls MegamorphicLookup(get:hashCode) which returns
Object.hashCode; the compiled Object.hashCode is essentially
MegamorphicLookup(get:_identityHashCode), which returns
_Smi._identityHashCode which finally returns 'this'.
3. _interpolateSingle's call to o.toString() is megamorphic. We can
avoid it for the common case of String arguments, this is often
comming from StringBuffer.write() with a literal or interpolated
argument.
R=srdjan@google.com
Review URL: https://codereview.chromium.org/1820653002 .
This removes the additional indirection to the VM's implementation
for all the factory constructors.
Additionally, it removes one class per typed data list type, thus reducing
snapshot and generated code size.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org/1790593002 .
- Don't tick vm tags for background threads so the Observatory's summary pie chart reflects how the mutator spent its time.
- Similarly, don't factor background samples in the CPU profile view.
- Do include background samples in the timeline view.
Use a different event name for background compilations.
Add timeline events for the mark and sweep tasks.
Reload the isolate list when refreshing the timeline view so it includes profile ticks when the page is loading directly (e.g., F5) instead of only after visiting the vm page.
Fix loading the timeline when profiling is disabled.
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1814813003 .
The resolved executable path is returned to the static in Platform as
a scope allocated string. This change strdups it when it is cached in
a static for return on subsequent calls. Previously, the memory would
be deallocated on exit from the scope.
fixes#26031R=asiva@google.com
Review URL: https://codereview.chromium.org/1813943004 .
Load the Code from the ic data array instead of the ObjectPool because we still need the Code object in the frame to find stackmaps / build stacktraces / build profile results.
Keep doing things the old way until all compilation is finished because evaluation of constants still needs functional lazy compilation and the compiler works with ICData that may contain as-yet-uncompiled functions. After compilation is finished, transform all the ICData from (cid, target function, count) to (cid, target code, entry point) and switch to the ICLookup stub that works with this representation.
Golem average +3.133% on ARM, +3.544% on x64
R=srdjan@google.com
Review URL: https://codereview.chromium.org/1799793002 .
stack_limit_,
stack_overflow_flags_,
saved_stack_limit_,
stack_overflow_count_ and
other interrupts mask fields from Isolate structure to Thread structure
- Change the stack overflow check in the prolog to load the stack limit
from the THR register, this removes the back to back dependent loads to
load the stack limit from the Isolate structure
R=johnmccutchan@google.com, rmacnak@google.com
Review URL: https://codereview.chromium.org/1812753002 .
class-tree
- Make all the rows have the same height.
- Hide synthetic mixin classes from the tree.
- Show mixin information in a different way.
- Show the total subclass count for each row if non-zero.
class-view
- Display supertype and mixin information
instance-view
- Display typeArguments, parameterizedClass, parameterIndex,
targetType and bound information for Types.
- Display a source for Types.
- Provide an [eval] link for the runtimeType.
isolate-view
- Display the list of extension rpcs.
Update service.md.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1807263004 .