# Global Metrics

path: .metrics.nom.functions
old: 21.0
new: 4.0
path: .metrics.nom.total
old: 21.0
new: 4.0
path: .metrics.mi.mi_visual_studio
old: 0.0
new: 43.557800183218134
path: .metrics.mi.mi_original
old: -4.211273307478692
new: 74.48383831330301
path: .metrics.mi.mi_sei
old: -43.00487996560617
new: 59.64016990649715
path: .metrics.cognitive.average
old: 4.666666666666667
new: 0.5
path: .metrics.cognitive.sum
old: 98.0
new: 2.0
path: .metrics.cyclomatic.average
old: 4.181818181818182
new: 1.1428571428571428
path: .metrics.cyclomatic.sum
old: 92.0
new: 8.0
path: .metrics.nargs.average
old: 1.1428571428571428
new: 1.0
path: .metrics.nargs.sum
old: 24.0
new: 4.0
path: .metrics.loc.sloc
old: 589.0
new: 44.0
path: .metrics.loc.lloc
old: 196.0
new: 10.0
path: .metrics.loc.ploc
old: 429.0
new: 32.0
path: .metrics.loc.cloc
old: 97.0
new: 6.0
path: .metrics.loc.blank
old: 63.0
new: 6.0
path: .metrics.halstead.vocabulary
old: 182.0
new: 51.0
path: .metrics.halstead.difficulty
old: 94.93333333333334
new: 13.0625
path: .metrics.halstead.n1
old: 32.0
new: 19.0
path: .metrics.halstead.N2
old: 890.0
new: 44.0
path: .metrics.halstead.level
old: 0.01053370786516854
new: 0.07655502392344497
path: .metrics.halstead.purity_ratio
old: 0.5424249361701753
new: 2.2288020625502605
path: .metrics.halstead.time
old: 90834.74965989968
new: 444.57633617701595
path: .metrics.halstead.N1
old: 1404.0
new: 64.0
path: .metrics.halstead.bugs
old: 4.626242894780211
new: 0.13335971037536246
path: .metrics.halstead.effort
old: 1635025.493878194
new: 8002.374051186287
path: .metrics.halstead.estimated_program_length
old: 1244.322803574382
new: 240.71062275542812
path: .metrics.halstead.length
old: 2294.0
new: 108.0
path: .metrics.halstead.n2
old: 150.0
new: 32.0
path: .metrics.halstead.volume
old: 17222.88090461581
new: 612.6219369329215
path: .metrics.nexits.sum
old: 61.0
new: 2.0
path: .metrics.nexits.average
old: 2.9047619047619047
new: 0.5

# Spaces Data

## Minimal test - lines (10, 44)

path: .spaces[0].metrics.cognitive.average
old: 2.0
new: 0.5
path: .spaces[0].metrics.nexits.sum
old: 1.0
new: 2.0
path: .spaces[0].metrics.nexits.average
old: 1.0
new: 0.5
path: .spaces[0].metrics.loc.cloc
old: 0.0
new: 1.0
path: .spaces[0].metrics.loc.lloc
old: 6.0
new: 10.0
path: .spaces[0].metrics.loc.ploc
old: 11.0
new: 29.0
path: .spaces[0].metrics.loc.sloc
old: 11.0
new: 35.0
path: .spaces[0].metrics.loc.blank
old: 0.0
new: 5.0
path: .spaces[0].metrics.nom.total
old: 1.0
new: 4.0
path: .spaces[0].metrics.nom.functions
old: 1.0
new: 4.0
path: .spaces[0].metrics.mi.mi_sei
old: 75.60600960882685
new: 51.42144143209896
path: .spaces[0].metrics.mi.mi_visual_studio
old: 61.24957439827683
new: 45.993194999028574
path: .spaces[0].metrics.mi.mi_original
old: 104.73677222105336
new: 78.64836344833886
path: .spaces[0].metrics.nargs.sum
old: 1.0
new: 4.0
path: .spaces[0].metrics.cyclomatic.average
old: 2.0
new: 1.1666666666666667
path: .spaces[0].metrics.cyclomatic.sum
old: 2.0
new: 7.0
path: .spaces[0].metrics.halstead.estimated_program_length
old: 62.05374780501027
new: 221.5920716141277
path: .spaces[0].metrics.halstead.effort
old: 1962.5425112109365
new: 7876.241512870465
path: .spaces[0].metrics.halstead.difficulty
old: 11.0
new: 13.43103448275862
path: .spaces[0].metrics.halstead.volume
old: 178.41295556463058
new: 586.4210625757214
path: .spaces[0].metrics.halstead.vocabulary
old: 19.0
new: 48.0
path: .spaces[0].metrics.halstead.level
old: 0.09090909090909093
new: 0.07445442875481387
path: .spaces[0].metrics.halstead.n1
old: 11.0
new: 19.0
path: .spaces[0].metrics.halstead.n2
old: 8.0
new: 29.0
path: .spaces[0].metrics.halstead.N2
old: 16.0
new: 41.0
path: .spaces[0].metrics.halstead.time
old: 109.03013951171867
new: 437.5689729372481
path: .spaces[0].metrics.halstead.bugs
old: 0.05225062149710146
new: 0.13195466902514008
path: .spaces[0].metrics.halstead.length
old: 42.0
new: 105.0
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.4774701858335777
new: 2.1104006820393115
path: .spaces[0].metrics.halstead.N1
old: 26.0
new: 64.0

### Code

    namespace mozilla {
    namespace widget {

    CompositorWidgetParent::CompositorWidgetParent(
        const CompositorWidgetInitData& aInitData,
        const layers::CompositorOptions& aOptions)
        : GtkCompositorWidget(aInitData.get_GtkCompositorWidgetInitData(), aOptions,
                              nullptr) {
      MOZ_ASSERT(XRE_GetProcessType() == GeckoProcessType_GPU);
    }

    CompositorWidgetParent::~CompositorWidgetParent() = default;

    void CompositorWidgetParent::ObserveVsync(VsyncObserver* aObserver) {
      if (aObserver) {
        Unused << SendObserveVsync();
      } else {
        Unused << SendUnobserveVsync();
      }
      mVsyncObserver = aObserver;
    }

    RefPtr CompositorWidgetParent::GetVsyncObserver() const {
      MOZ_ASSERT(XRE_GetProcessType() == GeckoProcessType_GPU);
      return mVsyncObserver;
    }

    mozilla::ipc::IPCResult CompositorWidgetParent::RecvNotifyClientSizeChanged(
        const LayoutDeviceIntSize& aClientSize) {
      NotifyClientSizeChanged(aClientSize);
      return IPC_OK();
    }

    }  // namespace widget
    }  // namespace mozilla