# Global Metrics

path: .metrics.nom.functions
old: 9.0
new: 2.0
path: .metrics.nom.total
old: 9.0
new: 2.0
path: .metrics.loc.lloc
old: 265.0
new: 2.0
path: .metrics.loc.cloc
old: 207.0
new: 6.0
path: .metrics.loc.ploc
old: 477.0
new: 18.0
path: .metrics.loc.blank
old: 53.0
new: 8.0
path: .metrics.loc.sloc
old: 737.0
new: 32.0
path: .metrics.halstead.estimated_program_length
old: 1815.2692288691392
new: 72.10571633583419
path: .metrics.halstead.purity_ratio
old: 0.6203927644802254
new: 1.2221307853531218
path: .metrics.halstead.difficulty
old: 111.41232227488152
new: 7.384615384615385
path: .metrics.halstead.N1
old: 1620.0
new: 35.0
path: .metrics.halstead.volume
old: 23256.922519616768
new: 259.14672794394687
path: .metrics.halstead.n1
old: 36.0
new: 8.0
path: .metrics.halstead.time
old: 143950.43038208294
new: 106.3166063359782
path: .metrics.halstead.vocabulary
old: 247.0
new: 21.0
path: .metrics.halstead.effort
old: 2591107.746877493
new: 1913.698914047608
path: .metrics.halstead.length
old: 2926.0
new: 59.0
path: .metrics.halstead.n2
old: 211.0
new: 13.0
path: .metrics.halstead.bugs
old: 6.2883358282803465
new: 0.05138004562302475
path: .metrics.halstead.N2
old: 1306.0
new: 24.0
path: .metrics.halstead.level
old: 0.008975667857750553
new: 0.13541666666666666
path: .metrics.cyclomatic.average
old: 13.0
new: 1.0
path: .metrics.cyclomatic.sum
old: 130.0
new: 7.0
path: .metrics.cognitive.sum
old: 115.0
new: 0.0
path: .metrics.cognitive.average
old: 12.77777777777778
new: 0.0
path: .metrics.nexits.average
old: 0.8888888888888888
new: 0.0
path: .metrics.nexits.sum
old: 8.0
new: 0.0
path: .metrics.mi.mi_visual_studio
old: 0.0
new: 49.32551309866555
path: .metrics.mi.mi_original
old: -18.144586022753543
new: 84.3466273987181
path: .metrics.mi.mi_sei
old: -52.049095389341616
new: 77.77978908728319
path: .metrics.nargs.sum
old: 9.0
new: 2.0

# Spaces Data

## Minimal test - lines (15, 30)

path: .spaces[0].metrics.cognitive.average
old: 27.0
new: 0.0
path: .spaces[0].metrics.cognitive.sum
old: 27.0
new: 0.0
path: .spaces[0].metrics.nargs.sum
old: 1.0
new: 2.0
path: .spaces[0].metrics.nom.functions
old: 1.0
new: 2.0
path: .spaces[0].metrics.nom.total
old: 1.0
new: 2.0
path: .spaces[0].metrics.mi.mi_visual_studio
old: 34.279697523638525
new: 56.28701261014811
path: .spaces[0].metrics.mi.mi_sei
old: 41.729625388233025
new: 63.770606834501095
path: .spaces[0].metrics.mi.mi_original
old: 58.61828276542188
new: 96.25079156335327
path: .spaces[0].metrics.nexits.average
old: 8.0
new: 0.0
path: .spaces[0].metrics.nexits.sum
old: 8.0
new: 0.0
path: .spaces[0].metrics.cyclomatic.sum
old: 37.0
new: 6.0
path: .spaces[0].metrics.cyclomatic.average
old: 37.0
new: 1.0
path: .spaces[0].metrics.halstead.n2
old: 39.0
new: 11.0
path: .spaces[0].metrics.halstead.effort
old: 47256.537818365265
new: 1816.5682748398751
path: .spaces[0].metrics.halstead.n1
old: 16.0
new: 8.0
path: .spaces[0].metrics.halstead.purity_ratio
old: 0.9219477356164768
new: 1.1081026393751834
path: .spaces[0].metrics.halstead.length
old: 293.0
new: 56.0
path: .spaces[0].metrics.halstead.N1
old: 157.0
new: 35.0
path: .spaces[0].metrics.halstead.bugs
old: 0.4356991161657609
new: 0.04962645222642731
path: .spaces[0].metrics.halstead.estimated_program_length
old: 270.13068653562766
new: 62.05374780501027
path: .spaces[0].metrics.halstead.level
old: 0.035845588235294115
new: 0.13095238095238096
path: .spaces[0].metrics.halstead.N2
old: 136.0
new: 21.0
path: .spaces[0].metrics.halstead.time
old: 2625.3632121314035
new: 100.9204597133264
path: .spaces[0].metrics.halstead.difficulty
old: 27.897435897435894
new: 7.636363636363637
path: .spaces[0].metrics.halstead.vocabulary
old: 55.0
new: 19.0
path: .spaces[0].metrics.halstead.volume
old: 1693.9383960627254
new: 237.88394075284077
path: .spaces[0].metrics.loc.lloc
old: 14.0
new: 2.0
path: .spaces[0].metrics.loc.ploc
old: 48.0
new: 12.0
path: .spaces[0].metrics.loc.sloc
old: 56.0
new: 16.0
path: .spaces[0].metrics.loc.cloc
old: 9.0
new: 0.0
path: .spaces[0].metrics.loc.blank
old: 0.0
new: 4.0

### Code

    namespace mozilla {

    template
    struct GObjectRefPtrTraits {
      static void AddRef(T* aObject) { g_object_ref(aObject); }
      static void Release(T* aObject) { g_object_unref(aObject); }
    };

    template <>
    struct RefPtrTraits : public GObjectRefPtrTraits {};

    template <>
    struct RefPtrTraits
        : public GObjectRefPtrTraits {};

    }  // namespace mozilla