Simplify Truncate(), SetLength() and Capacity() and write them in terms of StartBulkWriteImpl()

RESOLVED FIXED in Firefox 64

Status

()

enhancement
RESOLVED FIXED
11 months ago
10 months ago

People

(Reporter: hsivonen, Assigned: hsivonen)

Tracking

({perf})

unspecified
mozilla64
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox64 fixed)

Details

Attachments

(1 attachment)

Once bug 1486711 has landed successfully, Truncate(), SetLength() and Capacity() can become simpler and faster.
Note to self: Search for SetCapacity(0) and replace with Truncate().
(In reply to Henri Sivonen (:hsivonen) from comment #3)
> Try run:
> https://treeherder.mozilla.org/#/
> jobs?repo=try&revision=e48f40d3918333a5c97c6a79ed9145da3b8e2811

Lots and lots of
application crashed [@ mozilla::Base64URLEncode(unsigned int, unsigned char const*, mozilla::Base64URLEncodePaddingPolicy, nsTSubstring<char>&)]
I managed to miss a SetCapacity() call in Base64.cpp!
Attachment #9005160 - Attachment description: Bug 1487341 - Simplify Truncate(), SetLength() and Capacity() by writing them in terms of StartBulkWriteImpl(). → Bug 1487341 - Make Truncate(), SetLength() and Capacity() more efficient by keeping memcpying to the minimum.
Comment on attachment 9005160 [details]
Bug 1487341 - Make Truncate(), SetLength() and Capacity() more efficient by keeping memcpying to the minimum.

Nathan Froyd [:froydnj] has approved the revision.
Attachment #9005160 - Flags: review+
(In reply to Henri Sivonen (:hsivonen) from comment #10)
> Opt try run after rebase:
> https://treeherder.mozilla.org/#/
> jobs?repo=try&revision=125dda84e41afb61428bd18a8d10552dff5107d1

This is full of fail.

I'll try to track down what goes wrong. For starters, trying to repro locally leads to a hang when the sandboxing code calls lstat for /sys/dev/char/ . I'll try to see if I get something more tractable in gtest with the sandbox disabled.
Oops. I had a function call whose side effects mattered within the argument of a MOZ_ASSERT.
Pushed by hsivonen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0bb09351c1c1
Make Truncate(), SetLength() and Capacity() more efficient by keeping memcpying to the minimum. r=froydnj
https://hg.mozilla.org/mozilla-central/rev/0bb09351c1c1
Status: ASSIGNED → RESOLVED
Closed: 10 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Need to investigate if bug 1494634 is fallout from this one in the sense of this change exposing some edge case bug that has remained hidden for a decade.
You need to log in before you can comment on or make changes to this bug.