Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
Перейти к файлу
Julian Seward 7eda9d1a96 Bug 1374248 - LUL: remove stack scanning. r=njn.
This removes LUL's ability to recover frames by the heuristic mechanism of
stack scanning.  Stack scanning is a last-ditch way to try to recover the
unwind when all other methods (metadata-based, frame-pointer chasing) have
failed, by scanning back up the stack and looking for the first word that
could plausibly be a return address.  It often mis-identifies return addresses
because it has no way to distinguish live ones from dead ones that have not
been overwritten, and very often causes the unwind to fail as a result.

In any case LUL's stack scanning ability has actually been switched off (by
the parameters passed to LUL::Unwind) for some considerable time now, so this
change should make no observable difference to behaviour.  Specific changes:

In LUL::Unwind():

* Removes formal parameters |scannedFramesAcquired| and |scannedFramesAllowed|

* Removes code that does stack scanning

* Simplifies control flow in the main unwind loop, so that loop now
  has the easier-to-follow structure

  while (true) {
    // preliminary stuff

    if (CFI data available for current PC) {
       do CFI step;
       continue;
    }

    if (FP chasing possible for current PC) {
       do FP step;
       continue;
    }

    // give up
    break;
  }

* Moves two #ifdefs upwards to enclose the comments pertaining to them, as
  well as the code.  This makes the top level structure easier to follow.  The
  corresponding #endifs are likewise commented with the condition.

From class LULStats, removes |mScanned|.

Removes PriMap::MaybeIsReturnPoint() entirely.  This is a heuristic helper
only used by stack scanning.

In all, 395 lines of code are removed, according to hg diff --stat.

--HG--
extra : rebase_source : 5ffa73c64923149a58df3228cf940cb539f8f707
2017-06-19 16:21:59 +02:00
.cargo Bug 1277338 - Part 1: Turn js/src into the mozjs-sys crate; r=sfink 2016-10-13 16:12:42 -07:00
.vscode Add some task definitions to run mach from VSCode (bug 1323308). r=gps 2017-05-04 18:03:54 +03:00
accessible Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
addon-sdk Bug 1362970 - Part 2 - Script-generated patch to convert .then(null, ...) to .catch(...). r=florian 2017-06-19 11:32:37 +01:00
browser Bug 1368072 - Use idleDispatchToMainThread instead. r=mconley 2017-06-21 12:36:41 +02:00
build Bug 1372987 - move library/object prefix/suffix configuration to moz.configure; r=mshal 2017-06-19 14:20:29 -04:00
caps Bug 1319111 - Expose 'result principal URI' on LoadInfo as a source for NS_GetFinalChannelURI (removes some use of LOAD_REPLACE flag). r=bz, r=mikedeboer 2017-05-30 18:07:59 +02:00
chrome Bug 1319111 - Expose 'result principal URI' on LoadInfo as a source for NS_GetFinalChannelURI (removes some use of LOAD_REPLACE flag). r=bz, r=mikedeboer 2017-05-30 18:07:59 +02:00
config Bug 1370695 - Remove build system code handling binary components. r=glandium 2017-06-13 16:01:45 -07:00
db Bug 1371364 - Upgrade to SQLite 3.19.3. r=mak 2017-06-08 15:23:34 -04:00
devtools Merge autoland to m-c a=merge 2017-06-20 18:24:29 -07:00
docshell Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
dom Bug 1368859 - Test that the Web Crypto API rejects 0-length AES-GCM IVs r=keeler 2017-06-21 12:48:04 +02:00
editor Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
embedding Bug 1356569 - Remove notifyObservers' last parameter when it is falsy, r=jaws. 2017-04-14 21:51:39 +02:00
extensions Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
gfx Backed out changeset 08e38bcd123b (bug 1367987) for causing new intermittent failure in reftests/image/image-seam-2.html 2017-06-21 12:22:42 +02:00
gradle/wrapper Bug 1300094 - Update Gradle to 2.14.1 and Gradle Plugin to 2.1.3 r=sebastian 2016-09-22 14:31:01 -07:00
hal Bug 1366356 - Decrease the process priority of content processes that are not running a foreground tab - part 2 - enabled if the platform specific code is ready, r=smaug 2017-06-07 09:59:00 +02:00
image Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
intl Bug 1372886 - Remove dead parameters from nsIConverterInputStream.init(). r=hsivonen 2017-06-17 19:30:09 +09:00
ipc Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
js Bug 1366217 - Add assertions to GC stats code that time increases monotonically r=sfink 2017-06-21 10:55:47 +01:00
layout Bug 1363428 - Add reftest-specific endpoints to Marionette, r=ato 2017-06-21 11:25:57 +01:00
media Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
memory Bug 1369626 - Remove MALLOC_XMALLOC. r=njn 2017-06-02 15:19:20 +09:00
mfbt Bug 1368616 - Error compiling TestBlockingProcess.exe with MinGW: undefined reference to _imp___ZN7mozilla6UnusedE r=froydnj 2017-06-21 11:47:11 +02:00
mobile Bug 1372486 - Part 5: Fix Fennec resources path defined in moz.build to pass `mach build check`. r=nalexander,nechen 2017-06-19 23:30:10 +08:00
modules Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
mozglue Bug 1345939 - Protect TimeStamp::Now() from going backwards on hardware with non-stable TSC. r=nfroyd 2017-06-13 05:12:00 -04:00
netwerk Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
nsprpub Bug 1350291, landing final NSPR 4.15 RTM tag, no code change, just version number, r=me 2017-06-06 12:19:16 +02:00
other-licenses Bug 1343537 - Implement ARIA DPUB extension. r=surkov 2017-06-13 15:06:08 -04:00
parser Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
probes Bug 1344878 - add BUG_COMPONENT to probes/* files. r=Ms2ger 2017-03-24 09:50:48 -04:00
python Syntax fixup for bug 1364695 for bustage. r=me 2017-06-21 13:25:56 +09:00
rdf Bug 1330235 - Remove NS_STDCALL_FUNCPROTO and replace its usage with decltype. r=froydnj 2017-05-09 23:00:37 +10:00
security Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
services Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
servo servo: Merge #17431 - style: Cleanup after #17427, and remove extra-optimistic optimization added in #17429 (from emilio:restyle-hints-xbl); r=emilio 2017-06-20 08:13:05 -07:00
startupcache Backed out 6 changesets (bug 1371699) for various failures including frequent img-blobURI-2.html failures and leaks a=backout 2017-06-13 17:50:11 -07:00
storage Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
taskcluster Merge autoland to m-c a=merge 2017-06-20 18:24:29 -07:00
testing Bug 1368072 - Use idleDispatchToMainThread instead. r=ato 2017-06-21 12:36:41 +02:00
third_party Bug 1369156 - Re-vendor third-party rust libraries with latest cargo-vendor. r=froydnj 2017-06-20 16:05:17 -04:00
toolkit Bug 1374106, part 4 - Split up the video control enter/exit fullscreen icon and convert it to use SVG context paint. r=dao 2017-05-26 20:36:36 +01:00
tools Bug 1374248 - LUL: remove stack scanning. r=njn. 2017-06-19 16:21:59 +02:00
uriloader Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
view Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-20 21:44:11 -07:00
widget Bug 1236512 - Part 1: Send "occlusionstatechange" custom event when occlusion state in Mac is changed; f=spohl; r=mstange 2017-05-26 18:09:34 +08:00
xpcom Bug 1368072 - Move idle dispatch to thread manager. r=froydnj 2017-06-21 12:36:41 +02:00
xpfe Bug 1236512 - Part 1: Send "occlusionstatechange" custom event when occlusion state in Mac is changed; f=spohl; r=mstange 2017-05-26 18:09:34 +08:00
.clang-format Bug 1322321 - Update the clang format file to match more our coding style r=ehsan 2016-12-06 17:43:17 -10:00
.clang-format-ignore Bug 1374720 - Refresh .clang-format-ignore with the recent update of thirdparty libs r=andi 2017-06-20 19:33:12 +02:00
.clang-tidy Bug 1319396 - Update the list of checkers in the .clang-tidy file r=Ehsan 2016-11-22 12:30:19 +01:00
.cron.yml Bug 1369908 - Schedule linux64-ccov, and linux64-jsdcov on all mozilla-central pushes. r=jmaher 2017-06-13 13:04:08 -04:00
.eslintignore Bug 1369028 - Add build infrastructure for follow-on search telemetry system add-on. r=Mossop 2017-06-08 15:57:08 +01:00
.eslintrc.js Bug 1359011 - Make the mozilla/recommended eslint configuration the default for the whole tree. r=mossop 2017-04-25 20:12:21 +01:00
.flake8 Bug 1288432 - Use new mozlint configuration for flake8 linter, r=bc 2017-06-02 09:46:01 -04:00
.gdbinit Bug 1317802 - don't stop for SIGSYS in .gdbinit; r=jld 2016-11-16 01:13:22 -05:00
.gdbinit_python Bug 1346025 - Move vendored python modules from /python to /third_party/python, r=ted 2017-05-25 11:48:03 -04:00
.gitignore Bug 1367041 - Add |mach wpt| support for Chrome, Edge and Servo, r=AutomatedTester 2017-05-31 15:45:47 +01:00
.hgignore Bug 1364410 - Fix quantum-pageload test so it runs locally on windows via mach; r=jmaher 2017-06-05 14:51:06 -04:00
.hgtags No bug - Tagging mozilla-central f9605772a0c9098ed1bcaa98089b2c944ed69e9b with FIREFOX_BETA_55_BASE a=release DONTBUILD CLOSED TREE 2017-06-12 12:50:30 +01:00
.inferconfig Bug 1357629 - Add httpclientandroidlib to .inferconfig ignore list r=nalexander,njpark 2017-04-18 20:05:25 -07:00
.lldbinit Bug 1346025 - Move vendored python modules from /python to /third_party/python, r=ted 2017-05-25 11:48:03 -04:00
.taskcluster.yml Bug 591688 - Notify when decision task fails r=dustin,gps 2017-04-12 21:01:46 -07:00
.ycm_extra_conf.py
AUTHORS Bug 1111333 - Enable double-tap-drag to zoom. r=kats 2017-05-23 19:53:06 +02:00
Android.mk
CLOBBER Update configs. IGNORE BROKEN CHANGESETS CLOSED TREE NO BUG a=release ba=release 2017-06-12 13:48:15 +01:00
GNUmakefile
LEGAL
LICENSE
Makefile.in Bug 1307301 - Don't attempt to compress compressed files when packing the symbols archive. r=ted 2017-04-27 22:51:19 -07:00
README.txt Bug 1349108 - Update links in README.txt to HTTPS r=RyanVM 2017-03-21 00:11:02 -04:00
aclocal.m4 Bug 1363992 - Remove jemalloc 4. r=njn 2017-05-11 13:23:07 +09:00
build.gradle Bug 1318823 - Use com.getkeepsafe.dexcount in Gradle builds. r=sebastian 2016-11-18 18:28:58 -08:00
client.mk Bug 1317778 - Emit a depfile with python configure dependencies so Make will know when to re-run configure. r=glandium 2016-12-02 10:05:57 -08:00
client.py
configure.in Bug 1295751 - Make it possible to copy configure.in to configure. r=gps 2016-08-16 19:35:00 -07:00
configure.py Bug 1316140 - Allow use of multiprocessing from config.status on windows. r=mshal 2016-12-21 16:28:28 -08:00
gradle.properties
gradlew
mach Bug 1316140 - Allow use of multiprocessing from config.status on windows. r=mshal 2016-12-21 16:28:28 -08:00
moz.build bug 1370176, generic configuration for l10n, r=flod,gps 2017-06-05 10:28:33 +02:00
moz.configure Bug 1372987 - move library/object prefix/suffix configuration to moz.configure; r=mshal 2017-06-19 14:20:29 -04:00
mozilla-config.h.in Bug 1371266 - libpng should be built with -std=c89. r=glennrp 2017-06-08 06:29:03 -07:00
npm-shrinkwrap.json Bug 1371669 - Add support for npm 5. r=standard8 2017-06-09 17:18:52 +03:00
old-configure.in Bug 1372987 - move library/object prefix/suffix configuration to moz.configure; r=mshal 2017-06-19 14:20:29 -04:00
package.json Bug 1371669 - Add support for npm 5. r=standard8 2017-06-09 17:18:52 +03:00
settings.gradle Bug 1291363 - Add geckoview and geckoview_example Gradle projects. r=jchen,sebastian 2016-10-05 20:23:38 -07:00
test.mozbuild

README.txt

An explanation of the Mozilla Source Code Directory Structure and links to
project pages with documentation can be found at:

    https://developer.mozilla.org/en/Mozilla_Source_Code_Directory_Structure

For information on how to build Mozilla from the source code, see:

    https://developer.mozilla.org/en/docs/Build_Documentation

To have your bug fix / feature added to Mozilla, you should create a patch and
submit it to Bugzilla (https://bugzilla.mozilla.org). Instructions are at:

    https://developer.mozilla.org/en/docs/Creating_a_patch
    https://developer.mozilla.org/en/docs/Getting_your_patch_in_the_tree

If you have a question about developing Mozilla, and can't find the solution
on https://developer.mozilla.org, you can try asking your question in a
mozilla.* Usenet group, or on IRC at irc.mozilla.org. [The Mozilla news groups
are accessible on Google Groups, or news.mozilla.org with a NNTP reader.]

You can download nightly development builds from the Mozilla FTP server.
Keep in mind that nightly builds, which are used by Mozilla developers for
testing, may be buggy. Firefox nightlies, for example, can be found at:

    https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/
            - or -
    https://nightly.mozilla.org/