INNER CODE UNIT · Java

setup

M66B/FairEmail · app/src/debug/java/eu.faircode.email/CoalMine.java:46

    static void setup(boolean enabled) {
        List<ObjectInspector> inspectors = new ArrayList<>(LeakCanary.getConfig().getObjectInspectors());

        // https://square.github.io/leakcanary/recipes/#identifying-leaking-objects-and-labeling-objects
        for (Class<?> clazz : new Class<?>[]{SimpleTask.class, TwoStateOwner.class, RunnableEx.class})
            inspectors.add(new ObjectInspector() {
                @Override
                public void inspect(@NonNull ObjectReporter reporter) {
                    String className = clazz.getName();
                    reporter.whenInstanceOf(className, new Function2<ObjectReporter, HeapObject.HeapInstance, Unit>() {
                        @Override
                        public Unit invoke(ObjectReporter reporter, HeapObject.HeapInstance instance) {
                            HeapField hfName = instance.get(className, "name");
                            if (hfName != null) {
                                String label = hfName.getValue().readAsJavaString();
                                reporter.getLabels().add("name=" + label);
                            }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…