Skip over objects which are known dead ends

Step 1 of #1943

Remove reads for instances of classes that don't hold any reference, at the minor cost of less skipping while indexing.

Also requires up to 1 more byte per class though not necessarily: we need one extra bit for "does this class have any reference field" but we actually pack it in the size field if there's room.
7 files changed
tree: 4aebf4558cb8e61da4522677da1aa5995f2d3f48
  1. .buildscript/
  2. .github/
  3. docs/
  4. gradle/
  5. hooks/
  6. leakcanary-android/
  7. leakcanary-android-core/
  8. leakcanary-android-instrumentation/
  9. leakcanary-android-process/
  10. leakcanary-android-sample/
  11. leakcanary-deobfuscation-gradle-plugin/
  12. leakcanary-object-watcher/
  13. leakcanary-object-watcher-android/
  14. leakcanary-object-watcher-android-androidx/
  15. leakcanary-object-watcher-android-support-fragments/
  16. plumber-android/
  17. shark/
  18. shark-android/
  19. shark-cli/
  20. shark-graph/
  21. shark-hprof/
  22. shark-hprof-test/
  23. shark-log/
  24. shark-test/
  25. .gitignore
  26. .travis.yml
  27. build.gradle
  28. detekt-config.yml
  29. gradle.properties
  30. gradlew
  31. LICENSE.txt
  32. mkdocs.yml
  33. README.md
  34. settings.gradle
  35. shark-cli.sh
README.md

LeakCanary 🐤

A memory leak detection library for Android.

square.github.io/leakcanary

License

Copyright 2015 Square, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.