Timeline



Dec 28, 2020:

1:43 PM Changeset in webkit [271105] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Mark tests as flaky for https://bugs.webkit.org/show_bug.cgi?id=220188

  • platform/mac-wk1/TestExpectations:
1:03 PM Changeset in webkit [271104] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Mark webanimations/accelerated-animation-with-easing.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=220187

  • platform/mac/TestExpectations:
10:26 AM Changeset in webkit [271103] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Add support for non-baseline aligned text painting
https://bugs.webkit.org/show_bug.cgi?id=220185

Reviewed by Antti Koivisto.

Use the run's vertical position to set the text origin (instead of using the line's baseline position).
This is in preparation for enabling inline box content.
(e.g. <div><span style="vertical-align: text-top">non-baseline aligned text</span></div>)

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

9:33 AM Changeset in webkit [271102] by ap@apple.com
  • 2 edits in trunk/Tools

built-product-archive should work with Python 3
https://bugs.webkit.org/show_bug.cgi?id=220157

Reviewed by Aakash Jain.

  • CISupport/built-product-archive:

(webkitBuildDirectoryForConfigurationAndPlatform): Decode result as a string,
because the directory is then used in string manipulation.
(createZipFromList): Use Python 3 compatible 'except' syntax. The new syntax works
in Python 2.6 and newer.
(createZip): Ditto.

Dec 27, 2020:

10:44 PM Changeset in webkit [271101] by Wenson Hsieh
  • 3 edits in trunk/Source/WTF

Add a helper method to WTF::MachSemaphore to wait with a timeout duration
https://bugs.webkit.org/show_bug.cgi?id=220110

Reviewed by Sam Weinig.

Adds a helper method on the cross-process WTF::MachSemaphore class (to be utilized in webkit.org/b/219586).

  • wtf/cocoa/MachSemaphore.cpp:

(WTF::MachSemaphore::waitFor):

This wraps a call to semaphore_timedwait, and converts the given time (in WTF::Seconds) into a
mach_timespec_t, which is an unsigned representing the number of seconds, along with another integer
representing the number of nanoseconds.

  • wtf/cocoa/MachSemaphore.h:
8:41 PM Changeset in webkit [271100] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

[WASM-References] Fix table.init and table.grow to satisfy the spec
https://bugs.webkit.org/show_bug.cgi?id=220181

Patch by Dmitry Bezhetskov <dbezhetskov> on 2020-12-27
Reviewed by Yusuke Suzuki.

JSTests:

Fix behaviour of the previous tests and added ref-types
spec tests for bulk operations and table.grow.

  • wasm.yaml:
  • wasm/references-spec-tests/bulk.wast.js: Added.
  • wasm/references-spec-tests/table_grow.wast.js: Added.
  • wasm/references/table_misc.js:

(TableSize.0.End.End.WebAssembly):

Source/JavaScriptCore:

Fix and refactor a little bit table.init and
table.grow.

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmOperations.h:
  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::WASM_SLOW_PATH_DECL):

6:47 PM Changeset in webkit [271099] by Simon Fraser
  • 1 edit
    1 add in trunk/Source/WebCore

Add a ReadMe.md for Source/WebCore/display

Reviewed by Zalan Bujtas.

  • display/ReadMe.md: Added.
3:50 PM Changeset in webkit [271098] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

[WASM-References] Adjust table.fill to satisfy the spec
https://bugs.webkit.org/show_bug.cgi?id=220161

Patch by Dmitry Bezhetskov <dbezhetskov> on 2020-12-27
Reviewed by Yusuke Suzuki.

JSTests:

Added table.fill spec tests and adjusted existing tests.

  • wasm.yaml:
  • wasm/references-spec-tests/table_fill.wast.js: Added.
  • wasm/references/table_misc.js:

(GetLocal.0.GetLocal.1.TableGrow.0.End.End.WebAssembly):

Source/JavaScriptCore:

Fixed table.fill for the case when count is 0 and offset is equal to
table size.

  • wasm/WasmOperations.cpp:

(JSC::Wasm::setWasmTableElement):
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmOperations.h:
  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::WASM_SLOW_PATH_DECL):

3:35 PM Changeset in webkit [271097] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

[WASM-References] Add declared function indexes set to check from what functions we can create refs
https://bugs.webkit.org/show_bug.cgi?id=220009

Patch by Dmitry Bezhetskov <dbezhetskov> on 2020-12-27
Reviewed by Yusuke Suzuki.

JSTests:

Now we satisfy ref_func spec test so I've added it.

  • wasm.yaml:
  • wasm/references-spec-tests/ref_func.wast.js: Added.

Source/JavaScriptCore:

By ref-types spec we can create references only from declared functions.
Declared function is a function that was mentioned:
as export,
as part of ref.func init expression for a global,
in the element section.
In this patch declared function indexes set introduced to check this
requirement.
https://webassembly.github.io/reference-types/core/valid/instructions.html#reference-instructions.

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmModuleInformation.h:

(JSC::Wasm::ModuleInformation::isDeclaredFunction const):
(JSC::Wasm::ModuleInformation::addDeclaredFunction):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseGlobal):
(JSC::Wasm::SectionParser::parseExport):
(JSC::Wasm::SectionParser::parseElementSegmentVectorOfExpressions):
(JSC::Wasm::SectionParser::parseElementSegmentVectorOfIndexes):

10:57 AM Changeset in webkit [271096] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Inline box should start with a strut in standards mode
https://bugs.webkit.org/show_bug.cgi?id=220160

Reviewed by Antti Koivisto.

If the inline box contains no glyphs at all, or if it contains only glyphs from fallback fonts,
it is considered to contain a “strut” (an invisible glyph of zero width) with the metrics of the box’s first available font.
https://www.w3.org/TR/css-inline-3/#inline-height

(css2.1/20110323/empty-inline-003.htm)

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

10:37 AM Changeset in webkit [271095] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Fix incorrect return types of fallback color conversion functions
https://bugs.webkit.org/show_bug.cgi?id=220159

Reviewed by Dean Jackson.

  • platform/graphics/ColorConversion.h:

Fixup return types of fallback conversion functions to match signature.

10:34 AM Changeset in webkit [271094] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Generalize callWithColorType to work with either float or uint8_t color types
https://bugs.webkit.org/show_bug.cgi?id=220155

Reviewed by Dean Jackson.

  • platform/graphics/ColorTypes.h:

(WebCore::callWithColorType):
Templatize the component type.

10:00 AM Changeset in webkit [271093] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Remove one more place needed when adding new color types
https://bugs.webkit.org/show_bug.cgi?id=220156

Reviewed by Simon Fraser.

  • platform/graphics/Color.h:

(WebCore::Color::Color):
Missed this in the last pass. Replace specific overloads with a conditional template function contructor.

  • platform/graphics/ColorTypes.h:

Adds a few traits to help identify color types.

Dec 26, 2020:

12:40 PM Changeset in webkit [271092] by Alexey Shvayka
  • 15 edits
    4 adds in trunk

[WebIDL] Remove [CustomToStringName] and Location-specific extended attributes
https://bugs.webkit.org/show_bug.cgi?id=219276

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/history/the-location-interface/location-non-configurable-toString-valueOf-expected.txt: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/location-non-configurable-toString-valueOf.html: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/location-prototype-no-toString-valueOf-expected.txt: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/location-prototype-no-toString-valueOf.html: Added.

Source/WebCore:

This patch:

a) Removes [CustomToStringName] and 3 related overrides, whose purpose was to ensure

that Object.prototype.toString() returns "[object Object]" for cross-realm Location /
WindowProxy objects, which is already accomplished via own unforgeable @@toStringTag
property [1], making this change unobservable.

b) Inlines putCommon() to avoid weird true => false returns and save an extra identifier

creation / check in putByIndex(). This is also unobservable.

c) Removes "toString" and "valueOf" special-casing from JSLocation::defineOwnProperty(),

which failed silently instead of throwing a TypeError. Since these are own unforgeable
properties of Location [2], ordinary DefineOwnProperty prevents their redefinition.

d) Removes [CustomDefineOwnPropertyOnPrototype], [CustomPutOnPrototype], and corresponding

overrides, whose purpose was to prevent definition of "toString" and "valueOf" properties
on Location.prototype. Since these are own unforgeable properties of Location instances [2],
the limitation doesn't make sense. Location.prototype is an ordinary object per spec.

Both c) and d) align WebKit with the spec, Blink, and Gecko.

[1]: https://html.spec.whatwg.org/multipage/browsers.html#crossoriginpropertyfallback-(-p-)
[2]: https://html.spec.whatwg.org/multipage/history.html#the-location-interface (step 3)

Tests: imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-non-configurable-toString-valueOf.html

imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-prototype-no-toString-valueOf.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::toStringName): Deleted.

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::put):
(WebCore::JSLocation::putByIndex):
(WebCore::JSLocation::defineOwnProperty):
(WebCore::putCommon): Deleted.
(WebCore::JSLocation::toStringName): Deleted.
(WebCore::JSLocationPrototype::put): Deleted.
(WebCore::JSLocationPrototype::defineOwnProperty): Deleted.

  • bindings/js/JSRemoteDOMWindowCustom.cpp:

(WebCore::JSRemoteDOMWindow::toStringName): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GeneratePrototypeDeclaration):
(HeaderNeedsPrototypeDeclaration):

  • bindings/scripts/IDLAttributes.json:
  • page/DOMWindow.idl:
  • page/Location.idl:
  • page/RemoteDOMWindow.idl:

LayoutTests:

  • fast/dom/Window/Location/location-override-toString-using-defineGetter-expected.txt:
  • fast/dom/Window/Location/location-override-toString-using-defineGetter.html:
  • fast/dom/Window/Location/location-override-valueOf-using-defineGetter-expected.txt:
  • fast/dom/Window/Location/location-override-valueOf-using-defineGetter.html:
11:42 AM Changeset in webkit [271091] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Rect::expandToContain should call LayoutRect::uniteEvenIfEmpty
https://bugs.webkit.org/show_bug.cgi?id=220153

Reviewed by Antti Koivisto.

Multiline inline boxes should expand even when they start at the end of the line and are empty.
e.g.

<pre>this is the first line<span>
and this is the second</span></pre>

The <span>'s height = first line height (even though the <span> is empty on this line) + second line height.

  • layout/layouttree/LayoutGeometryRect.h:

(WebCore::Layout::Rect::expandToContain):

  • platform/graphics/LayoutRect.cpp:

(WebCore::LayoutRect::unite):
(WebCore::LayoutRect::uniteEvenIfEmpty): copy from FloatRect.

  • platform/graphics/LayoutRect.h:

(WebCore::LayoutRect::setLocationAndSizeFromEdges): copy from FloatRect.

10:28 AM Changeset in webkit [271090] by Simon Fraser
  • 6 edits
    4 adds in trunk

Fix scrolling issues when scrolling on only one axis is enabled
https://bugs.webkit.org/show_bug.cgi?id=220134

Reviewed by Sam Weinig.

Source/WebCore:

If an overflow:scroll has overflow on an axis, but overflow:hidden on that
axis, then there are various issues with finding the correct scroller and
latching.

This affects nested scrollers where inner and outer and scrollable on different
axes, and the inner scroller has overflow, but overflow:hidden on the cross axis.

The fix involves adding checks for scrolling being allowed in code that fetches
pinned state, and code that looks for scrollable areas for a given event delta.

Tests: fast/scrolling/mac/overflow-hidden-on-one-axis-async-overflow.html

fast/scrolling/mac/overflow-hidden-on-one-axis.html

  • page/mac/EventHandlerMac.mm:

(WebCore::findEnclosingScrollableContainer):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::edgePinnedState const):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::isPinnedForScrollDeltaOnAxis const):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::isPinnedForScrollDeltaOnAxis const):
(WebCore::ScrollableArea::isPinnedForScrollDelta const): Check for non-zero deltas.
isPinnedForScrollDeltaOnAxis() returns false if a delta is zero, so we don't want to say
we're not pinned if a delta is zero. The logic of this code really needs to be inverted
to talk about scrollability, not pinning.
(WebCore::ScrollableArea::edgePinnedState const):

LayoutTests:

  • fast/scrolling/mac/overflow-hidden-on-one-axis-async-overflow-expected.txt: Added.
  • fast/scrolling/mac/overflow-hidden-on-one-axis-async-overflow.html: Added.
  • fast/scrolling/mac/overflow-hidden-on-one-axis-expected.txt: Added.
  • fast/scrolling/mac/overflow-hidden-on-one-axis.html: Added.
9:42 AM Changeset in webkit [271089] by weinig@apple.com
  • 17 edits
    3 adds in trunk/Source/WebCore

Simplify adding new color spaces to WebCore
https://bugs.webkit.org/show_bug.cgi?id=220146

Reviewed by Dean Jackson.

Reduce the number of places one needs to touch when adding new color types to:

  • ColorTypes.h
  • ColorConversion.h/cpp
  • ColorSpace.h/cpp (only needed if support in Color is required).
  • ColorSerialization.h (only needed if support in Color is required).
  • ColorSpaceCG.h/cpp (only needed if support in Color is required).
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add ColorSpace.cpp, ColorSpaceCG.h and ColorSpaceCG.cpp.

  • platform/graphics/Color.cpp:
  • platform/graphics/Color.h:

(WebCore::Color::Color):
(WebCore::Color::setColor):
Replace specific overloads of the contructor and setColor with template functions
that do the same things. These are safe to make as if a non-supported color type
(one that doesn't have a colorSpace member) is passed it will fail to compile due
to use beneath ExtendedColor::create().

Also moves WTF::TextStream operator<< overload for ColorSpace out and into
ColorSpace.cpp where it makes more sense.

  • platform/graphics/ColorConversion.cpp:
  • platform/graphics/ColorConversion.h:

Re-order and explicitly comment conversion functions to be more clear.

As the comment indicates, all color types must implement at least the following
conversions:

XYZA<float> toXYZA(const ColorType<float>&);
ColorType<float> toColorType(const XYZA<float>&);

This allows generic fallback code, inline at the bottom of the header, to
support conversion to and from any set of colors. Additional conversion functions
are useful for the cases where the optimal or base conversion is not through XYZ
such as from SRGBA to LinearSRGBA.

To allow this to work a few additional conversion functions were added which just
combine existing conversions together and one was added for SRGBA to CMYKA which
was missing, though currently unused.

  • platform/graphics/ColorSpace.cpp: Added.

(WebCore::operator<<):

  • platform/graphics/ColorSpace.h:

Moved from Color.h

  • platform/graphics/ColorTypes.h:

(WebCore::callWithColorType):
This is a generalization of ExtendedColor::callOnUnderlyingType() that also
has the benefit of now being in the same file as the color type definitions,
reducing the number of files people need to touch.

  • platform/graphics/ColorUtilities.h:

(WebCore::colorByModifingEachNonAlphaComponent):
Update to not assume that colors use the names red/green/blue for non-alpha
components. This makes it work generically for all four component color types.

  • platform/graphics/ExtendedColor.h:

(WebCore::ExtendedColor::callOnUnderlyingType const):
Use generalized form, callWithColorType to avoid requiring modiftying this
when new color types are added.

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::leakCGColor):
When going to generalize this (we could have simply called
return CGColorCreate(cachedCGColorSpace(colorSpace), cgFloatComponents))
I noticed this was not doing the right thing for CG ports that don't support
all the color spaces WebCore requires (such as Windows). For instance,
displayP3ColorSpaceRef() just returns sRGBColorSpaceRef() on windows, meaning
we would be taking some DisplayP3 components and having CG interpret them as
sRGB. To avoid this, we now check if the color space returned is the fallback
color space, sRGB, and do our own conversion to sRGB using ColorConversion
before creating the color.

This also resolves a long standing bug / FIXME around LinearRGB where we were
using sRGBColorSpaceRef() for them. In practice, we don't actually ever create
LinearRGB CGColorRefs right now, but if we ever do in the future, makes sense
to use the right color space.

  • platform/graphics/cg/ColorSpaceCG.cpp: Added.

(WebCore::sRGBColorSpaceRef):
(WebCore::linearRGBColorSpaceRef):
(WebCore::displayP3ColorSpaceRef):
(WebCore::extendedSRGBColorSpaceRef):

  • platform/graphics/cg/ColorSpaceCG.h: Added.

(WebCore::cachedCGColorSpace):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::sRGBColorSpaceRef): Deleted.
(WebCore::linearRGBColorSpaceRef): Deleted.
(WebCore::extendedSRGBColorSpaceRef): Deleted.
(WebCore::displayP3ColorSpaceRef): Deleted.

  • platform/graphics/cg/GraphicsContextCG.h:

(WebCore::cachedCGColorSpace): Deleted.
Moved color space specific CG code to its own files to make it more clear
where to find them.

7:22 AM Changeset in webkit [271088] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Set pre-computed inline box geometries (margin, border and padding)
https://bugs.webkit.org/show_bug.cgi?id=220149

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateInlineBoxDimensions):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

2:20 AM Changeset in webkit [271087] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant LineBox::inlineLevelBoxList()
https://bugs.webkit.org/show_bug.cgi?id=220147

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::inlineLevelBoxList const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::computeLineLevelVisualAdjustmentsForRuns const):

Dec 25, 2020:

9:39 PM Changeset in webkit [271086] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r270662): SourceBufferParserWebM leaks CMSampleBufferRefs
https://bugs.webkit.org/show_bug.cgi?id=220144

Reviewed by Anders Carlsson.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
(WebCore::SourceBufferParserWebM::AudioTrackData::createSampleBuffer): Move the RetainPtr
holding an adopted CMSampleBufferRef rather than leaking it when calling provideMediaData.

1:46 PM Changeset in webkit [271085] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][Integration] Use the pre-computed geometries for the inline level boxes
https://bugs.webkit.org/show_bug.cgi?id=220135
<rdar://problem/72642850>

Reviewed by Antti Koivisto.

Let's skip the tree traversal and recomputing the box geometries in InlineFormattingContext::layoutInFlowContent.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::inlineReplacedContentHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedContentWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::updateLineBreakBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::layout):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • layout/layouttree/LayoutReplacedBox.h:

(WebCore::Layout::ReplacedBox::contentSizeForIntegration const): Deleted.
(WebCore::Layout::ReplacedBox::setContentSizeForIntegration): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

9:53 AM Changeset in webkit [271084] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fast vertical alignment should work with line-height
https://bugs.webkit.org/show_bug.cgi?id=220131

Reviewed by Antti Koivisto.

Adjust the line box height and the root inline box's logical top position as the layout bounds of the inline-block content stretches the line.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::LineBoxBuilder):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

2:35 AM Changeset in webkit [271083] by ysuzuki@apple.com
  • 74 edits
    1 copy
    5 adds
    1 delete in trunk/Source/ThirdParty

Update capstone
https://bugs.webkit.org/show_bug.cgi?id=219941

Reviewed by Michael Catanzaro.

  • capstone/CMakeLists.txt:
  • capstone/Source/.gitignore:
  • capstone/Source/.travis.yml:
  • capstone/Source/CMakeLists.txt:
  • capstone/Source/COMPILE.TXT:
  • capstone/Source/COMPILE_CMAKE.TXT:
  • capstone/Source/COMPILE_MSVC.TXT:
  • capstone/Source/CREDITS.TXT:
  • capstone/Source/ChangeLog-capstone:
  • capstone/Source/HACK.TXT:
  • capstone/Source/LEB128.h:

(decodeULEB128):

  • capstone/Source/MCDisassembler.h:
  • capstone/Source/MCFixedLenDisassembler.h:
  • capstone/Source/MCInst.c:

(MCInst_Init):
(MCInst_clear):
(MCInst_insert0):
(MCInst_setOpcode):
(MCInst_setOpcodePub):
(MCInst_getOpcode):
(MCInst_getOpcodePub):
(MCInst_getOperand):
(MCInst_getNumOperands):
(MCInst_addOperand2):
(MCOperand_isValid):
(MCOperand_isReg):
(MCOperand_isImm):
(MCOperand_isFPImm):
(MCOperand_getReg):
(MCOperand_setReg):
(MCOperand_getImm):
(MCOperand_setImm):
(MCOperand_getFPImm):
(MCOperand_setFPImm):
(MCOperand_CreateReg1):
(MCOperand_CreateReg0):
(MCOperand_CreateImm1):
(MCOperand_CreateImm0):
(MCOperand_Init): Deleted.

  • capstone/Source/MCInst.h:
  • capstone/Source/MCInstrDesc.c:

(MCOperandInfo_isPredicate):
(MCOperandInfo_isOptionalDef):

  • capstone/Source/MCInstrDesc.h:
  • capstone/Source/MCRegisterInfo.c:

(MCRegisterInfo_InitMCRegisterInfo):
(DiffListIterator_init):
(DiffListIterator_getVal):
(DiffListIterator_next):
(DiffListIterator_isValid):
(MCRegisterInfo_getMatchingSuperReg):
(MCRegisterInfo_getSubReg):
(MCRegisterInfo_getRegClass):
(MCRegisterClass_contains):

  • capstone/Source/MCRegisterInfo.h:
  • capstone/Source/Makefile:
  • capstone/Source/MathExtras.h:

(Hi_32):
(Lo_32):
(isUIntN):
(isMask_32):
(isMask_64):
(isShiftedMask_32):
(isShiftedMask_64):
(isPowerOf2_32):
(CountLeadingZeros_32):
(CountLeadingOnes_32):
(CountLeadingZeros_64):
(CountLeadingOnes_64):
(CountTrailingZeros_32):
(CountTrailingOnes_32):
(CountTrailingZeros_64):
(CountTrailingOnes_64):
(CountPopulation_32):
(CountPopulation_64):
(Log2_32):
(Log2_64):
(Log2_32_Ceil):
(Log2_64_Ceil):
(GreatestCommonDivisor64):
(BitsToDouble):
(BitsToFloat):
(DoubleToBits):
(FloatToBits):
(MinAlign):
(NextPowerOf2):
(RoundUpToAlignment):
(OffsetToAlignment):
(abs64):
(SignExtend32):
(SignExtend64):
(countLeadingZeros):

  • capstone/Source/README.md:
  • capstone/Source/SPONSORS.TXT: Added.
  • capstone/Source/SStream.c:

(SStream_Init):
(SStream_concat0):
(SStream_concat):
(printInt64Bang):
(printUInt64Bang):
(printInt64):
(printInt32BangDec):
(printInt32Bang):
(printInt32):
(printUInt32Bang):
(printUInt32):

  • capstone/Source/SStream.h:
  • capstone/Source/arch/ARM/ARMAddressingModes.h:

(ARM_AM_getAddrOpcStr):
(ARM_AM_getShiftOpcStr):
(ARM_AM_getShiftOpcEncoding):
(ARM_AM_getAMSubModeStr):
(rotr32):
(rotl32):
(getSORegOpc):
(getSORegOffset):
(ARM_AM_getSORegShOp):
(getSOImmValImm):
(getSOImmValRot):
(getSOImmValRotate):
(getSOImmVal):
(isSOImmTwoPartVal):
(getSOImmTwoPartFirst):
(getSOImmTwoPartSecond):
(getThumbImmValShift):
(isThumbImmShiftedVal):
(getThumbImm16ValShift):
(isThumbImm16ShiftedVal):
(getThumbImmNonShiftedVal):
(getT2SOImmValSplatVal):
(getT2SOImmValRotateVal):
(getT2SOImmVal):
(getT2SOImmValRotate):
(isT2SOImmTwoPartVal):
(getT2SOImmTwoPartFirst):
(getT2SOImmTwoPartSecond):
(ARM_AM_getAM2Opc):
(getAM2Offset):
(getAM2Op):
(getAM2ShiftOpc):
(getAM2IdxMode):
(getAM3Opc):
(getAM3Offset):
(getAM3Op):
(getAM3IdxMode):
(getAM4SubMode):
(getAM4ModeImm):
(ARM_AM_getAM5Opc):
(ARM_AM_getAM5Offset):
(ARM_AM_getAM5Op):
(createNEONModImm):
(getNEONModImmOpCmode):
(getNEONModImmVal):
(ARM_AM_decodeNEONModImm):
(getFPImmFloat):

  • capstone/Source/arch/ARM/ARMBaseInfo.h:

(ARMCC_getOppositeCondition):
(ARMCC_ARMCondCodeToString):
(ARM_PROC_IFlagsToString):
(ARM_PROC_IModToString):
(ARM_MB_MemBOptToString):
(ARM_ISB_InstSyncBOptToString):
(isARMLowRegister):
(ARMII_AddrModeToString):

  • capstone/Source/arch/ARM/ARMDisassembler.c:

(ITStatus_push_back):
(ITStatus_instrInITBlock):
(ITStatus_instrLastInITBlock):
(ITStatus_getITCC):
(ITStatus_advanceITState):
(ITStatus_setITState):
(Check):
(ARM_getFeatureBits):
(DecodePredicateOperand):
(ARM_init):
(checkDecodedInstruction):
(_ARM_getInstruction):
(AddThumb1SBit):
(AddThumbPredicate):
(UpdateThumbVFPPredicate):
(_Thumb_getInstruction):
(Thumb_getInstruction):
(ARM_getInstruction):
(DecodeGPRnopcRegisterClass):
(DecodeGPRwithAPSRRegisterClass):
(DecodetGPRRegisterClass):
(DecodetcGPRRegisterClass):
(DecoderGPRRegisterClass):
(DecodeDPRRegisterClass):
(DecodeDPR_8RegisterClass):
(DecodeDPR_VFP2RegisterClass):
(DecodeDPairRegisterClass):
(DecodeCCOutOperand):
(DecodeSORegImmOperand):
(DecodeSORegRegOperand):
(DecodeRegListOperand):
(DecodeSPRRegListOperand):
(DecodeDPRRegListOperand):
(DecodeBitfieldMaskOperand):
(DecodeCopMemInstruction):
(DecodeAddrMode2IdxInstruction):
(DecodeSORegMemOperand):
(DecodeAddrMode3Instruction):
(DecodeRFEInstruction):
(DecodeQADDInstruction):
(DecodeMemMultipleWritebackInstruction):
(DecodeCPSInstruction):
(DecodeT2CPSInstruction):
(DecodeT2MOVTWInstruction):
(DecodeArmMOVTWInstruction):
(DecodeSMLAInstruction):
(DecodeAddrModeImm12Operand):
(DecodeAddrMode5Operand):
(DecodeAddrMode7Operand):
(DecodeT2BInstruction):
(DecodeBranchImmInstruction):
(DecodeAddrMode6Operand):
(DecodeVLDInstruction):
(DecodeVLDST1Instruction):
(DecodeVLDST2Instruction):
(DecodeVLDST3Instruction):
(DecodeVLDST4Instruction):
(DecodeVSTInstruction):
(DecodeVLD1DupInstruction):
(DecodeVLD2DupInstruction):
(DecodeVLD3DupInstruction):
(DecodeVLD4DupInstruction):
(DecodeNEONModImmInstruction):
(DecodeVSHLMaxInstruction):
(DecodeShiftRight8Imm):
(DecodeShiftRight16Imm):
(DecodeShiftRight32Imm):
(DecodeShiftRight64Imm):
(DecodeTBLInstruction):
(DecodeThumbAddSpecialReg):
(DecodeThumbBROperand):
(DecodeT2BROperand):
(DecodeThumbCmpBROperand):
(DecodeThumbAddrModeRR):
(DecodeThumbAddrModeIS):
(DecodeThumbAddrModePC):
(DecodeThumbAddrModeSP):
(DecodeT2AddrModeSOReg):
(DecodeT2LoadShift):
(DecodeT2LoadImm8):
(DecodeT2LoadImm12):
(DecodeT2LoadT):
(DecodeT2LoadLabel):
(DecodeT2Imm8S4):
(DecodeT2AddrModeImm8s4):
(DecodeT2AddrModeImm0_1020s4):
(DecodeT2Imm8):
(DecodeT2AddrModeImm8):
(DecodeT2LdStPre):
(DecodeT2AddrModeImm12):
(DecodeThumbAddSPImm):
(DecodeThumbAddSPReg):
(DecodeThumbCPS):
(DecodePostIdxReg):
(DecodeThumbBLXOffset):
(DecodeCoprocessor):
(DecodeThumbTableBranch):
(DecodeThumb2BCCInstruction):
(DecodeT2SOImm):
(DecodeThumbBCCTargetOperand):
(DecodeThumbBLTargetOperand):
(DecodeMemBarrierOption):
(DecodeInstSyncBarrierOption):
(DecodeMSRMask):
(DecodeBankedReg):
(DecodeDoubleRegLoad):
(DecodeDoubleRegStore):
(DecodeLDRPreImm):
(DecodeLDRPreReg):
(DecodeSTRPreImm):
(DecodeSTRPreReg):
(DecodeVLD1LN):
(DecodeVST1LN):
(DecodeVLD2LN):
(DecodeVST2LN):
(DecodeVLD3LN):
(DecodeVST3LN):
(DecodeVLD4LN):
(DecodeVST4LN):
(DecodeVMOVSRR):
(DecodeVMOVRRS):
(DecodeIT):
(DecodeT2LDRDPreInstruction):
(DecodeT2STRDPreInstruction):
(DecodeT2Adr):
(DecodeT2ShifterImmOperand):
(DecodeSwap):
(DecodeVCVTD):
(DecodeVCVTQ):
(DecodeLDR):
(DecodeMRRC2):

  • capstone/Source/arch/ARM/ARMGenAsmWriter.inc:
  • capstone/Source/arch/ARM/ARMGenDisassemblerTables.inc:
  • capstone/Source/arch/ARM/ARMGenInstrInfo.inc:
  • capstone/Source/arch/ARM/ARMGenRegisterInfo.inc:
  • capstone/Source/arch/ARM/ARMInstPrinter.c:

(get_op_access):
(set_mem_access):
(op_addImm):
(ARM_getRegName):
(translateShiftImm):
(printRegImmShift):
(printRegName):
(ARM_printInst):
(printOperand):
(printThumbLdrLabelOperand):
(printSORegRegOperand):
(printSORegImmOperand):
(printAM2PreOrOffsetIndexOp):
(printAddrModeTBB):
(printAddrModeTBH):
(printAddrMode2Operand):
(printAddrMode2OffsetOperand):
(printAM3PreOrOffsetIndexOp):
(printAddrMode3Operand):
(printAddrMode3OffsetOperand):
(printPostIdxImm8Operand):
(printPostIdxRegOperand):
(printPostIdxImm8s4Operand):
(printAddrMode5Operand):
(printAddrMode6Operand):
(printAddrMode7Operand):
(printAddrMode6OffsetOperand):
(printBitfieldInvMaskImmOperand):
(printMemBOption):
(printInstSyncBOption):
(printShiftImmOperand):
(printPKHLSLShiftImm):
(printPKHASRShiftImm):
(printRegisterList):
(printGPRPairOperand):
(printSetendOperand):
(printCPSIMod):
(printCPSIFlag):
(printMSRMaskOperand):
(printBankedRegOperand):
(printPredicateOperand):
(printMandatoryPredicateOperand):
(printSBitModifierOperand):
(printNoHashImmediate):
(printPImmediate):
(printCImmediate):
(printCoprocOptionImm):
(printAdrLabelOperand):
(printThumbS4ImmOperand):
(printThumbSRImm):
(printThumbITMask):
(printThumbAddrModeRROperand):
(printThumbAddrModeImm5SOperand):
(printThumbAddrModeImm5S1Operand):
(printThumbAddrModeImm5S2Operand):
(printThumbAddrModeImm5S4Operand):
(printThumbAddrModeSPOperand):
(printT2SOOperand):
(printAddrModeImm12Operand):
(printT2AddrModeImm8Operand):
(printT2AddrModeImm8s4Operand):
(printT2AddrModeImm0_1020s4Operand):
(printT2AddrModeImm8OffsetOperand):
(printT2AddrModeImm8s4OffsetOperand):
(printT2AddrModeSoRegOperand):
(printFPImmOperand):
(printNEONModImmOperand):
(printImmPlusOneOperand):
(printRotImmOperand):
(printModImmOperand):
(printFBits16):
(printFBits32):
(printVectorIndex):
(printVectorListOne):
(printVectorListTwo):
(printVectorListTwoSpaced):
(printVectorListThree):
(printVectorListFour):
(printVectorListOneAllLanes):
(printVectorListTwoAllLanes):
(printVectorListThreeAllLanes):
(printVectorListFourAllLanes):
(printVectorListTwoSpacedAllLanes):
(printVectorListThreeSpacedAllLanes):
(printVectorListFourSpacedAllLanes):
(printVectorListThreeSpaced):
(printVectorListFourSpaced):
(ARM_addVectorDataType):
(ARM_addVectorDataSize):
(ARM_addReg):
(ARM_addUserMode):
(ARM_addSysReg):

  • capstone/Source/arch/ARM/ARMMapping.c:

(ARM_reg_name2):
(ARM_insn_name):
(ARM_rel_branch):
(ARM_blx_to_arm_mode):
(ARM_reg_access):

  • capstone/Source/arch/ARM/ARMMapping.h:
  • capstone/Source/arch/ARM/ARMMappingInsn.inc:
  • capstone/Source/arch/ARM/ARMMappingInsnOp.inc:
  • capstone/Source/arch/ARM/ARMModule.c:

(ARM_global_init):
(ARM_option):
(init): Deleted.
(option): Deleted.
(ARM_enable): Deleted.

  • capstone/Source/arch/ARM/ARMModule.h: Added.
  • capstone/Source/arch/Mips/MipsDisassembler.c:

(getFeatureBits):
(Mips_init):
(readInstruction16):
(readInstruction32):
(MipsDisassembler_getInstruction):
(Mips_getInstruction):
(getReg):
(DecodeINSVE_DF_4):
(DecodeAddiGroupBranch_4):
(DecodeDaddiGroupBranch_4):
(DecodeBlezlGroupBranch_4):
(DecodeBgtzlGroupBranch_4):
(DecodeBgtzGroupBranch_4):
(DecodeBlezGroupBranch_4):
(DecodeCPU16RegsRegisterClass):
(DecodeGPR64RegisterClass):
(DecodeGPRMM16RegisterClass):
(DecodeGPRMM16ZeroRegisterClass):
(DecodeGPRMM16MovePRegisterClass):
(DecodeGPR32RegisterClass):
(DecodePtrRegisterClass):
(DecodeDSPRRegisterClass):
(DecodeFGR64RegisterClass):
(DecodeFGR32RegisterClass):
(DecodeCCRRegisterClass):
(DecodeFCCRegisterClass):
(DecodeCCRegisterClass):
(DecodeFGRCCRegisterClass):
(DecodeMem):
(DecodeCacheOp):
(DecodeCacheOpMM):
(DecodeCacheOpR6):
(DecodeSyncI):
(DecodeMSA128Mem):
(DecodeMemMMImm4):
(DecodeMemMMSPImm5Lsl2):
(DecodeMemMMGPImm7Lsl2):
(DecodeMemMMReglistImm4Lsl2):
(DecodeMemMMImm12):
(DecodeMemMMImm16):
(DecodeFMem):
(DecodeFMem2):
(DecodeFMem3):
(DecodeFMemCop2R6):
(DecodeSpecial3LlSc):
(DecodeHWRegsRegisterClass):
(DecodeAFGR64RegisterClass):
(DecodeACC64DSPRegisterClass):
(DecodeHI32DSPRegisterClass):
(DecodeLO32DSPRegisterClass):
(DecodeMSA128BRegisterClass):
(DecodeMSA128HRegisterClass):
(DecodeMSA128WRegisterClass):
(DecodeMSA128DRegisterClass):
(DecodeMSACtrlRegisterClass):
(DecodeCOP2RegisterClass):
(DecodeBranchTarget):
(DecodeJumpTarget):
(DecodeBranchTarget21):
(DecodeBranchTarget26):
(DecodeBranchTarget7MM):
(DecodeBranchTarget10MM):
(DecodeBranchTargetMM):
(DecodeJumpTargetMM):
(DecodeAddiur2Simm7):
(DecodeUImm6Lsl2):
(DecodeLiSimm7):
(DecodeSimm4):
(DecodeSimm16):
(DecodeLSAImm):
(DecodeInsSize):
(DecodeExtSize):
(DecodeSimm19Lsl2):
(DecodeSimm18Lsl3):
(DecodeSimm9SP):
(DecodeANDI16Imm):
(DecodeUImm5lsl2):
(DecodeRegListOperand):
(DecodeRegListOperand16):
(DecodeMovePRegPair):
(DecodeSimm23Lsl2):

  • capstone/Source/arch/Mips/MipsDisassembler.h:
  • capstone/Source/arch/Mips/MipsGenAsmWriter.inc:
  • capstone/Source/arch/Mips/MipsGenDisassemblerTables.inc:
  • capstone/Source/arch/Mips/MipsGenInstrInfo.inc:
  • capstone/Source/arch/Mips/MipsGenRegisterInfo.inc:
  • capstone/Source/arch/Mips/MipsInstPrinter.c:

(set_mem_access):
(isReg):
(MipsFCCToString):
(printRegName):
(Mips_printInst):
(printOperand):
(printUnsignedImm):
(printUnsignedImm8):
(printMemOperand):
(printMemOperandEA):
(printFCCOperand):
(printRegisterPair):
(printAlias1):
(printAlias2):
(printAlias):
(printRegisterList):

  • capstone/Source/arch/Mips/MipsMapping.c:

(Mips_get_insn_id):
(Mips_group_name):
(Mips_map_insn):
(Mips_map_register):

  • capstone/Source/arch/Mips/MipsMappingInsn.inc:
  • capstone/Source/arch/Mips/MipsModule.c:

(updated_mode):
(Mips_global_init):
(Mips_option):
(init): Deleted.
(option): Deleted.
(Mips_enable): Deleted.

  • capstone/Source/arch/Mips/MipsModule.h: Added.
  • capstone/Source/capstone.pc.in:
  • capstone/Source/cmake.sh: Added.
  • capstone/Source/config.mk:
  • capstone/Source/cs.c:

(cs_version):
(cs_support):
(cs_errno):
(cs_strerror):
(cs_open):
(cs_close):
(fill_insn):
(skipdata_size):
(cs_option):
(skipdata_opstr):
(cs_disasm):
(cs_disasm_ex):
(cs_free):
(cs_malloc):
(cs_disasm_iter):
(cs_reg_name):
(cs_insn_name):
(cs_group_name):
(cs_insn_group):
(cs_reg_read):
(cs_reg_write):
(cs_op_count):
(cs_op_index):
(cs_regs_access):
(cs_kern_os_calloc): Deleted.

  • capstone/Source/cs_priv.h:
  • capstone/Source/functions.mk:
  • capstone/Source/include/capstone/arm.h:
  • capstone/Source/include/capstone/arm64.h:
  • capstone/Source/include/capstone/capstone.h:
  • capstone/Source/include/capstone/evm.h:
  • capstone/Source/include/capstone/m680x.h:
  • capstone/Source/include/capstone/m68k.h:
  • capstone/Source/include/capstone/mips.h:
  • capstone/Source/include/capstone/mos65xx.h: Added.
  • capstone/Source/include/capstone/platform.h:
  • capstone/Source/include/capstone/ppc.h:
  • capstone/Source/include/capstone/sparc.h:
  • capstone/Source/include/capstone/systemz.h:
  • capstone/Source/include/capstone/tms320c64x.h:
  • capstone/Source/include/capstone/x86.h:
  • capstone/Source/include/capstone/xcore.h:
  • capstone/Source/include/platform.h: Copied from Source/ThirdParty/capstone/Source/include/capstone/platform.h.
  • capstone/Source/include/windowsce/stdint.h:
  • capstone/Source/make.sh:
  • capstone/Source/nmake-x86.bat: Removed.
  • capstone/Source/nmake.bat:
  • capstone/Source/pkgconfig.mk:
  • capstone/Source/utils.c:

(make_id2insn):
(insn_find):
(name2id):
(id2name):
(count_positive):
(count_positive8):
(cs_strdup):
(cs_snprintf):
(arr_exist8):
(arr_exist):

  • capstone/Source/utils.h:
  • capstone/capstone-Revision.txt:
2:28 AM Changeset in webkit [271082] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

VMInspector::dumpRegisters() should not dump beyond the start of the next frame.
https://bugs.webkit.org/show_bug.cgi?id=220136
rdar://64404201

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/dumpRegisters-should-stop-before-next-frame.js: Added.

Source/JavaScriptCore:

VMInspector::dumpRegisters() was dumping stack slots up for up to
codeBlock->numCalleeLocals() slots for any given CallFrame. This is incorrect.
codeBlock->numCalleeLocals() indicates the maximum number of stack slots that the
codeBlock may use. However, the executing codeBlock may not necessary use up that
number of slots before calling another function.

In the attached test case, the global program has 98 callee locals. However, it
was only using a very small number of stack slots to call $vm.dumpRegisters().
On an ASAN build, iterating thru 98 stack slots of the global program (to dump
their contents) ended up reading beyond the top of the stack, and this made ASAN
very unhappy. The fix is simply to ensure that VMInspector::dumpRegisters() never
dumps past the start of the next CallFrame.

  • tools/VMInspector.cpp:

(JSC::VMInspector::dumpRegisters):

Note: See TracTimeline for information about the timeline view.