# Global Metrics

path: .metrics.halstead.length
old: 266.0
new: 524.0
path: .metrics.halstead.volume
old: 1601.9498382655688
new: 3082.504957865605
path: .metrics.halstead.bugs
old: 0.3583107250549919
new: 1.048090134535761
path: .metrics.halstead.N1
old: 167.0
new: 317.0
path: .metrics.halstead.difficulty
old: 22.0
new: 57.19736842105263
path: .metrics.halstead.n2
old: 45.0
new: 38.0
path: .metrics.halstead.estimated_program_length
old: 333.5719512325826
new: 291.6599113892102
path: .metrics.halstead.purity_ratio
old: 1.2540298918518142
new: 0.5566028843305538
path: .metrics.halstead.time
old: 1957.9386912134732
new: 9795.065096375572
path: .metrics.halstead.level
old: 0.045454545454545456
new: 0.017483321831147917
path: .metrics.halstead.vocabulary
old: 65.0
new: 59.0
path: .metrics.halstead.n1
old: 20.0
new: 21.0
path: .metrics.halstead.N2
old: 99.0
new: 207.0
path: .metrics.halstead.effort
old: 35242.89644184252
new: 176311.1717347603
path: .metrics.mi.mi_original
old: 52.34436818816289
new: 35.60650903734684
path: .metrics.mi.mi_visual_studio
old: 30.610741630504613
new: 20.822519904881194
path: .metrics.mi.mi_sei
old: 35.94758039359622
new: 12.6534410972518
path: .metrics.nexits.sum
old: 6.0
new: 17.0
path: .metrics.nexits.average
old: 0.5
new: 0.6538461538461539
path: .metrics.loc.ploc
old: 65.0
new: 116.0
path: .metrics.loc.cloc
old: 23.0
new: 43.0
path: .metrics.loc.sloc
old: 101.0
new: 194.0
path: .metrics.loc.lloc
old: 24.0
new: 35.0
path: .metrics.loc.blank
old: 13.0
new: 35.0
path: .metrics.cyclomatic.sum
old: 24.0
new: 36.0
path: .metrics.cyclomatic.average
old: 1.7142857142857142
new: 1.2
path: .metrics.cognitive.average
old: 0.16666666666666666
new: 0.1153846153846154
path: .metrics.cognitive.sum
old: 2.0
new: 3.0
path: .metrics.nargs.average
old: 0.5833333333333334
new: 0.7692307692307693
path: .metrics.nargs.sum
old: 7.0
new: 20.0
path: .metrics.nom.total
old: 12.0
new: 26.0
path: .metrics.nom.functions
old: 12.0
new: 26.0

# Spaces Data

## Minimal test - lines (99, 102)

path: .spaces[0].spaces[10].metrics.halstead.estimated_program_length
old: 17.509775004326936
new: 40.13896548741762
path: .spaces[0].spaces[10].metrics.halstead.level
old: 0.3333333333333333
new: 0.1388888888888889
path: .spaces[0].spaces[10].metrics.halstead.time
old: 4.5
new: 33.50472331410692
path: .spaces[0].spaces[10].metrics.halstead.difficulty
old: 3.0
new: 7.2
path: .spaces[0].spaces[10].metrics.halstead.purity_ratio
old: 1.9455305560363263
new: 1.8244984312462555
path: .spaces[0].spaces[10].metrics.halstead.n1
old: 6.0
new: 9.0
path: .spaces[0].spaces[10].metrics.halstead.N1
old: 7.0
new: 14.0
path: .spaces[0].spaces[10].metrics.halstead.effort
old: 81.0
new: 603.0850196539245
path: .spaces[0].spaces[10].metrics.halstead.bugs
old: 0.006240251469155711
new: 0.023793834650606825
path: .spaces[0].spaces[10].metrics.halstead.n2
old: 2.0
new: 5.0
path: .spaces[0].spaces[10].metrics.halstead.length
old: 9.0
new: 22.0
path: .spaces[0].spaces[10].metrics.halstead.vocabulary
old: 8.0
new: 14.0
path: .spaces[0].spaces[10].metrics.halstead.N2
old: 2.0
new: 8.0
path: .spaces[0].spaces[10].metrics.halstead.volume
old: 27.0
new: 83.76180828526729
path: .spaces[0].spaces[10].metrics.mi.mi_sei
old: 120.36819247706724
new: 105.15125244839123
path: .spaces[0].spaces[10].metrics.mi.mi_original
old: 135.83412922035413
new: 125.2865501427276
path: .spaces[0].spaces[10].metrics.mi.mi_visual_studio
old: 79.4351632867568
new: 73.26698838756
path: .spaces[0].spaces[10].metrics.loc.lloc
old: 1.0
new: 2.0
path: .spaces[0].spaces[10].metrics.loc.ploc
old: 3.0
new: 4.0
path: .spaces[0].spaces[10].metrics.loc.sloc
old: 3.0
new: 4.0

### Code

      CFTypeRefPtr& operator=(const CFTypeRefPtr& aRhs) {
        assign_with_CFRetain(aRhs.mRawPtr);
        return *this;
      }

## Minimal test - lines (86, 90)

path: .spaces[0].spaces[8].metrics.loc.cloc
old: 1.0
new: 0.0
path: .spaces[0].spaces[8].metrics.loc.ploc
old: 2.0
new: 5.0
path: .spaces[0].spaces[8].metrics.loc.lloc
old: 0.0
new: 2.0
path: .spaces[0].spaces[8].metrics.loc.sloc
old: 3.0
new: 5.0
path: .spaces[0].spaces[8].metrics.mi.mi_original
old: 139.2748625208651
new: 121.36727729304344
path: .spaces[0].spaces[8].metrics.mi.mi_sei
old: 164.32465386598284
new: 99.4969369442612
path: .spaces[0].spaces[8].metrics.mi.mi_visual_studio
old: 81.44728802389771
new: 70.9750159608441
path: .spaces[0].spaces[8].metrics.nexits.average
old: 0.0
new: 1.0
path: .spaces[0].spaces[8].metrics.nexits.sum
old: 0.0
new: 1.0
path: .spaces[0].spaces[8].metrics.halstead.time
old: 1.5479520632582415
new: 34.537437369316855
path: .spaces[0].spaces[8].metrics.halstead.difficulty
old: 2.0
new: 7.0
path: .spaces[0].spaces[8].metrics.halstead.length
old: 6.0
new: 24.0
path: .spaces[0].spaces[8].metrics.halstead.vocabulary
old: 5.0
new: 13.0
path: .spaces[0].spaces[8].metrics.halstead.estimated_program_length
old: 8.0
new: 35.161259458730164
path: .spaces[0].spaces[8].metrics.halstead.n1
old: 4.0
new: 7.0
path: .spaces[0].spaces[8].metrics.halstead.effort
old: 27.863137138648348
new: 621.6738726477034
path: .spaces[0].spaces[8].metrics.halstead.N2
old: 1.0
new: 12.0
path: .spaces[0].spaces[8].metrics.halstead.level
old: 0.5
new: 0.14285714285714285
path: .spaces[0].spaces[8].metrics.halstead.n2
old: 1.0
new: 6.0
path: .spaces[0].spaces[8].metrics.halstead.purity_ratio
old: 1.3333333333333333
new: 1.46505247744709
path: .spaces[0].spaces[8].metrics.halstead.N1
old: 5.0
new: 12.0
path: .spaces[0].spaces[8].metrics.halstead.volume
old: 13.931568569324174
new: 88.81055323538621
path: .spaces[0].spaces[8].metrics.halstead.bugs
old: 0.003063600184050184
new: 0.02428028735459271
path: .spaces[0].spaces[8].metrics.nargs.sum
old: 0.0
new: 1.0
path: .spaces[0].spaces[8].metrics.nargs.average
old: 0.0
new: 1.0

### Code

      static CFTypeRefPtr WrapUnderGetRule(PtrT aRawPtr) {
        CFTypeRefPtr ptr;
        ptr.AssignUnderGetRule(aRawPtr);
        return ptr;
      }

## Minimal test - lines (54, 58)

path: .spaces[0].spaces[2].metrics.cognitive.average
old: 0.0
new: 1.0
path: .spaces[0].spaces[2].metrics.cognitive.sum
old: 0.0
new: 1.0
path: .spaces[0].spaces[2].metrics.nargs.sum
old: 2.0
new: 0.0
path: .spaces[0].spaces[2].metrics.nargs.average
old: 2.0
new: 0.0
path: .spaces[0].spaces[2].metrics.halstead.level
old: 0.21428571428571427
new: 0.3
path: .spaces[0].spaces[2].metrics.halstead.bugs
old: 0.015295622567773837
new: 0.008109602660764532
path: .spaces[0].spaces[2].metrics.halstead.time
old: 17.26871868465843
new: 6.666666666666667
path: .spaces[0].spaces[2].metrics.halstead.difficulty
old: 4.666666666666667
new: 3.3333333333333335
path: .spaces[0].spaces[2].metrics.halstead.N2
old: 8.0
new: 4.0
path: .spaces[0].spaces[2].metrics.halstead.length
old: 18.0
new: 12.0
path: .spaces[0].spaces[2].metrics.halstead.purity_ratio
old: 1.9534033032627869
new: 1.36371066471669
path: .spaces[0].spaces[2].metrics.halstead.vocabulary
old: 13.0
new: 8.0
path: .spaces[0].spaces[2].metrics.halstead.effort
old: 310.8369363238518
new: 120.0
path: .spaces[0].spaces[2].metrics.halstead.n1
old: 7.0
new: 5.0
path: .spaces[0].spaces[2].metrics.halstead.N1
old: 10.0
new: 8.0
path: .spaces[0].spaces[2].metrics.halstead.estimated_program_length
old: 35.161259458730164
new: 16.36452797660028
path: .spaces[0].spaces[2].metrics.halstead.n2
old: 6.0
new: 3.0
path: .spaces[0].spaces[2].metrics.halstead.volume
old: 66.60791492653966
new: 36.0
path: .spaces[0].spaces[2].metrics.mi.mi_sei
old: 113.59397456600368
new: 106.04115485532472
path: .spaces[0].spaces[2].metrics.mi.mi_visual_studio
old: 76.68923928350978
new: 73.5864370401145
path: .spaces[0].spaces[2].metrics.mi.mi_original
old: 131.13859917480173
new: 125.8328073385958
path: .spaces[0].spaces[2].metrics.loc.ploc
old: 3.0
new: 5.0
path: .spaces[0].spaces[2].metrics.loc.sloc
old: 3.0
new: 5.0
path: .spaces[0].spaces[2].metrics.loc.lloc
old: 0.0
new: 2.0
path: .spaces[0].spaces[2].metrics.cyclomatic.average
old: 1.0
new: 2.0
path: .spaces[0].spaces[2].metrics.cyclomatic.sum
old: 1.0
new: 2.0

### Code

      ~CFTypeRefPtr() {
        if (mRawPtr) {
          CFRelease(mRawPtr);
        }
      }

## Minimal test - lines (80, 84)

path: .spaces[0].spaces[7].metrics.loc.ploc
old: 4.0
new: 5.0
path: .spaces[0].spaces[7].metrics.loc.sloc
old: 4.0
new: 5.0
path: .spaces[0].spaces[7].metrics.nargs.average
old: 0.0
new: 1.0
path: .spaces[0].spaces[7].metrics.nargs.sum
old: 0.0
new: 1.0
path: .spaces[0].spaces[7].metrics.halstead.length
old: 17.0
new: 24.0
path: .spaces[0].spaces[7].metrics.halstead.difficulty
old: 3.5
new: 7.0
path: .spaces[0].spaces[7].metrics.halstead.volume
old: 60.94436251225965
new: 88.81055323538621
path: .spaces[0].spaces[7].metrics.halstead.N2
old: 7.0
new: 12.0
path: .spaces[0].spaces[7].metrics.halstead.bugs
old: 0.011899986460347829
new: 0.02428028735459271
path: .spaces[0].spaces[7].metrics.halstead.level
old: 0.2857142857142857
new: 0.14285714285714285
path: .spaces[0].spaces[7].metrics.halstead.time
old: 11.850292710717154
new: 34.537437369316855
path: .spaces[0].spaces[7].metrics.halstead.N1
old: 10.0
new: 12.0
path: .spaces[0].spaces[7].metrics.halstead.effort
old: 213.3052687929088
new: 621.6738726477034
path: .spaces[0].spaces[7].metrics.halstead.n1
old: 6.0
new: 7.0
path: .spaces[0].spaces[7].metrics.halstead.purity_ratio
old: 1.8246794122737573
new: 1.46505247744709
path: .spaces[0].spaces[7].metrics.halstead.estimated_program_length
old: 31.019550008653873
new: 35.161259458730164
path: .spaces[0].spaces[7].metrics.halstead.vocabulary
old: 12.0
new: 13.0
path: .spaces[0].spaces[7].metrics.mi.mi_visual_studio
old: 74.23405396973165
new: 70.9750159608441
path: .spaces[0].spaces[7].metrics.mi.mi_sei
old: 107.53701147893022
new: 99.4969369442612
path: .spaces[0].spaces[7].metrics.mi.mi_original
old: 126.9402322882411
new: 121.36727729304344

### Code

      static CFTypeRefPtr WrapUnderCreateRule(PtrT aRawPtr) {
        CFTypeRefPtr ptr;
        ptr.AssignUnderCreateRule(aRawPtr);
        return ptr;
      }

## Minimal test - lines (42, 48)

path: .spaces[0].spaces[1].metrics.halstead.time
old: 146.68450572150317
new: 25.19431979673479
path: .spaces[0].spaces[1].metrics.halstead.n2
old: 14.0
new: 6.0
path: .spaces[0].spaces[1].metrics.halstead.vocabulary
old: 27.0
new: 12.0
path: .spaces[0].spaces[1].metrics.halstead.level
old: 0.09364548494983276
new: 0.18181818181818185
path: .spaces[0].spaces[1].metrics.halstead.purity_ratio
old: 1.9501670239353972
new: 1.348676087332777
path: .spaces[0].spaces[1].metrics.halstead.n1
old: 13.0
new: 6.0
path: .spaces[0].spaces[1].metrics.halstead.N1
old: 29.0
new: 12.0
path: .spaces[0].spaces[1].metrics.halstead.volume
old: 247.25415011250035
new: 82.45413751658658
path: .spaces[0].spaces[1].metrics.halstead.length
old: 52.0
new: 23.0
path: .spaces[0].spaces[1].metrics.halstead.effort
old: 2640.321102987057
new: 453.4977563412262
path: .spaces[0].spaces[1].metrics.halstead.N2
old: 23.0
new: 11.0
path: .spaces[0].spaces[1].metrics.halstead.estimated_program_length
old: 101.40868524464064
new: 31.019550008653873
path: .spaces[0].spaces[1].metrics.halstead.bugs
old: 0.06367709512717437
new: 0.019675638761305608
path: .spaces[0].spaces[1].metrics.halstead.difficulty
old: 10.678571428571429
new: 5.5
path: .spaces[0].spaces[1].metrics.nargs.sum
old: 0.0
new: 1.0
path: .spaces[0].spaces[1].metrics.nargs.average
old: 0.0
new: 1.0
path: .spaces[0].spaces[1].metrics.loc.sloc
old: 10.0
new: 7.0
path: .spaces[0].spaces[1].metrics.loc.lloc
old: 4.0
new: 3.0
path: .spaces[0].spaces[1].metrics.loc.ploc
old: 10.0
new: 7.0
path: .spaces[0].spaces[1].metrics.mi.mi_sei
old: 75.38554004598082
new: 91.96014634460232
path: .spaces[0].spaces[1].metrics.mi.mi_visual_studio
old: 61.16020723109203
new: 67.87871110523274
path: .spaces[0].spaces[1].metrics.mi.mi_original
old: 104.58395436516736
new: 116.07259598994798
path: .spaces[0].spaces[1].metrics.nexits.average
old: 1.0
new: 0.0
path: .spaces[0].spaces[1].metrics.nexits.sum
old: 1.0
new: 0.0

### Code

      void assign_assuming_CFRetain(PtrT aNewPtr) {
        PtrT oldPtr = mRawPtr;
        mRawPtr = aNewPtr;
        if (oldPtr) {
          CFRelease(oldPtr);
        }
      }

## Minimal test - lines (75, 75)

path: .spaces[0].spaces[6].metrics.loc.ploc
old: 3.0
new: 1.0
path: .spaces[0].spaces[6].metrics.loc.sloc
old: 3.0
new: 1.0
path: .spaces[0].spaces[6].metrics.nargs.average
old: 2.0
new: 1.0
path: .spaces[0].spaces[6].metrics.nargs.sum
old: 2.0
new: 1.0
path: .spaces[0].spaces[6].metrics.mi.mi_original
old: 130.75558342857153
new: 154.40593499075715
path: .spaces[0].spaces[6].metrics.mi.mi_sei
old: 113.041399648335
new: 147.1616445623808
path: .spaces[0].spaces[6].metrics.mi.mi_visual_studio
old: 76.46525346700089
new: 90.29586841564748
path: .spaces[0].spaces[6].metrics.halstead.estimated_program_length
old: 31.26112492884004
new: 9.509775004326936
path: .spaces[0].spaces[6].metrics.halstead.bugs
old: 0.01814180544564004
new: 0.004312177013671752
path: .spaces[0].spaces[6].metrics.halstead.vocabulary
old: 12.0
new: 6.0
path: .spaces[0].spaces[6].metrics.halstead.difficulty
old: 5.6
new: 2.0
path: .spaces[0].spaces[6].metrics.halstead.length
old: 20.0
new: 9.0
path: .spaces[0].spaces[6].metrics.halstead.n1
old: 7.0
new: 3.0
path: .spaces[0].spaces[6].metrics.halstead.N1
old: 12.0
new: 5.0
path: .spaces[0].spaces[6].metrics.halstead.volume
old: 71.69925001442311
new: 23.264662506490403
path: .spaces[0].spaces[6].metrics.halstead.effort
old: 401.5158000807694
new: 46.529325012980806
path: .spaces[0].spaces[6].metrics.halstead.purity_ratio
old: 1.563056246442002
new: 1.0566416671474377
path: .spaces[0].spaces[6].metrics.halstead.time
old: 22.30643333782052
new: 2.584962500721156
path: .spaces[0].spaces[6].metrics.halstead.N2
old: 8.0
new: 4.0
path: .spaces[0].spaces[6].metrics.halstead.n2
old: 5.0
new: 3.0
path: .spaces[0].spaces[6].metrics.halstead.level
old: 0.17857142857142858
new: 0.5

### Code

      MOZ_IMPLICIT CFTypeRefPtr(decltype(nullptr)) : mRawPtr(nullptr) {}

## Minimal test - lines (71, 73)

path: .spaces[0].spaces[5].metrics.loc.lloc
old: 0.0
new: 1.0
path: .spaces[0].spaces[5].metrics.cyclomatic.sum
old: 1.0
new: 2.0
path: .spaces[0].spaces[5].metrics.cyclomatic.average
old: 1.0
new: 2.0
path: .spaces[0].spaces[5].metrics.mi.mi_visual_studio
old: 76.46525346700089
new: 75.99935894605139
path: .spaces[0].spaces[5].metrics.mi.mi_sei
old: 113.041399648335
new: 111.99385375517288
path: .spaces[0].spaces[5].metrics.mi.mi_original
old: 130.75558342857153
new: 129.9589037977479
path: .spaces[0].spaces[5].metrics.nargs.average
old: 2.0
new: 1.0
path: .spaces[0].spaces[5].metrics.nargs.sum
old: 2.0
new: 1.0
path: .spaces[0].spaces[5].metrics.halstead.level
old: 0.17857142857142858
new: 0.1111111111111111
path: .spaces[0].spaces[5].metrics.halstead.n1
old: 7.0
new: 9.0
path: .spaces[0].spaces[5].metrics.halstead.difficulty
old: 5.6
new: 9.0
path: .spaces[0].spaces[5].metrics.halstead.volume
old: 71.69925001442311
new: 79.9544533632097
path: .spaces[0].spaces[5].metrics.halstead.effort
old: 401.5158000807694
new: 719.5900802688873
path: .spaces[0].spaces[5].metrics.halstead.estimated_program_length
old: 31.26112492884004
new: 40.13896548741762
path: .spaces[0].spaces[5].metrics.halstead.bugs
old: 0.01814180544564004
new: 0.026767153565498338
path: .spaces[0].spaces[5].metrics.halstead.N2
old: 8.0
new: 10.0
path: .spaces[0].spaces[5].metrics.halstead.N1
old: 12.0
new: 11.0
path: .spaces[0].spaces[5].metrics.halstead.time
old: 22.30643333782052
new: 39.97722668160485
path: .spaces[0].spaces[5].metrics.halstead.length
old: 20.0
new: 21.0
path: .spaces[0].spaces[5].metrics.halstead.purity_ratio
old: 1.563056246442002
new: 1.9113793089246487
path: .spaces[0].spaces[5].metrics.halstead.vocabulary
old: 12.0
new: 14.0

### Code

      CFTypeRefPtr(CFTypeRefPtr&& aRefPtr) : mRawPtr(aRefPtr.mRawPtr) {
        aRefPtr.mRawPtr = nullptr;
      }

## Minimal test - lines (62, 62)

path: .spaces[0].spaces[3].metrics.halstead.N2
old: 1.0
new: 3.0
path: .spaces[0].spaces[3].metrics.halstead.bugs
old: 0.003063600184050184
new: 0.003010517177243676
path: .spaces[0].spaces[3].metrics.halstead.level
old: 0.5
new: 0.6666666666666666
path: .spaces[0].spaces[3].metrics.halstead.purity_ratio
old: 1.3333333333333333
new: 1.3585392863324195
path: .spaces[0].spaces[3].metrics.halstead.N1
old: 5.0
new: 4.0
path: .spaces[0].spaces[3].metrics.halstead.estimated_program_length
old: 8.0
new: 9.509775004326936
path: .spaces[0].spaces[3].metrics.halstead.length
old: 6.0
new: 7.0
path: .spaces[0].spaces[3].metrics.halstead.difficulty
old: 2.0
new: 1.5
path: .spaces[0].spaces[3].metrics.halstead.time
old: 1.5479520632582415
new: 1.5078947920873411
path: .spaces[0].spaces[3].metrics.halstead.n1
old: 4.0
new: 3.0
path: .spaces[0].spaces[3].metrics.halstead.n2
old: 1.0
new: 3.0
path: .spaces[0].spaces[3].metrics.halstead.volume
old: 13.931568569324174
new: 18.094737505048094
path: .spaces[0].spaces[3].metrics.halstead.effort
old: 27.863137138648348
new: 27.14210625757214
path: .spaces[0].spaces[3].metrics.halstead.vocabulary
old: 5.0
new: 6.0
path: .spaces[0].spaces[3].metrics.loc.sloc
old: 2.0
new: 1.0
path: .spaces[0].spaces[3].metrics.loc.ploc
old: 2.0
new: 1.0
path: .spaces[0].spaces[3].metrics.mi.mi_sei
old: 134.8085138584187
new: 149.04700897518126
path: .spaces[0].spaces[3].metrics.mi.mi_original
old: 145.84339727221737
new: 155.7127700178179
path: .spaces[0].spaces[3].metrics.mi.mi_visual_studio
old: 85.28853641650139
new: 91.0600994256245

### Code

      CFTypeRefPtr() : mRawPtr(nullptr) {}

## Minimal test - lines (104, 108)

path: .spaces[0].spaces[11].metrics.halstead.time
old: 16.77532672223962
new: 64.11261160257476
path: .spaces[0].spaces[11].metrics.halstead.bugs
old: 0.015002872101374016
new: 0.036673812538828544
path: .spaces[0].spaces[11].metrics.halstead.vocabulary
old: 13.0
new: 17.0
path: .spaces[0].spaces[11].metrics.halstead.N1
old: 11.0
new: 17.0
path: .spaces[0].spaces[11].metrics.halstead.N2
old: 6.0
new: 11.0
path: .spaces[0].spaces[11].metrics.halstead.level
old: 0.20833333333333337
new: 0.09917355371900824
path: .spaces[0].spaces[11].metrics.halstead.effort
old: 301.9558810003131
new: 1154.0270088463458
path: .spaces[0].spaces[11].metrics.halstead.n2
old: 5.0
new: 6.0
path: .spaces[0].spaces[11].metrics.halstead.purity_ratio
old: 2.0946847337904004
new: 1.9129829574763288
path: .spaces[0].spaces[11].metrics.halstead.estimated_program_length
old: 35.60964047443681
new: 53.5635228093372
path: .spaces[0].spaces[11].metrics.halstead.n1
old: 8.0
new: 11.0
path: .spaces[0].spaces[11].metrics.halstead.volume
old: 62.907475208398566
new: 114.4489595550095
path: .spaces[0].spaces[11].metrics.halstead.length
old: 17.0
new: 28.0
path: .spaces[0].spaces[11].metrics.halstead.difficulty
old: 4.8
new: 10.083333333333334
path: .spaces[0].spaces[11].metrics.nargs.average
old: 1.0
new: 0.0
path: .spaces[0].spaces[11].metrics.nargs.sum
old: 1.0
new: 0.0
path: .spaces[0].spaces[11].metrics.cyclomatic.average
old: 1.0
new: 2.0
path: .spaces[0].spaces[11].metrics.cyclomatic.sum
old: 1.0
new: 2.0
path: .spaces[0].spaces[11].metrics.mi.mi_visual_studio
old: 76.86305434314004
new: 70.06926038000175
path: .spaces[0].spaces[11].metrics.mi.mi_original
old: 131.43582292676948
new: 119.818435249803
path: .spaces[0].spaces[11].metrics.mi.mi_sei
old: 114.02277779900194
new: 97.36425006876236
path: .spaces[0].spaces[11].metrics.loc.ploc
old: 3.0
new: 5.0
path: .spaces[0].spaces[11].metrics.loc.lloc
old: 1.0
new: 3.0
path: .spaces[0].spaces[11].metrics.loc.sloc
old: 3.0
new: 5.0

### Code

      CFTypeRefPtr& operator=(CFTypeRefPtr&& aRefPtr) {
        assign_assuming_CFRetain(aRefPtr.mRawPtr);
        aRefPtr.mRawPtr = nullptr;
        return *this;
      }

## Minimal test - lines (37, 40)

path: .spaces[0].spaces[0].metrics.nargs.average
old: 0.0
new: 1.0
path: .spaces[0].spaces[0].metrics.nargs.sum
old: 0.0
new: 1.0
path: .spaces[0].spaces[0].metrics.loc.lloc
old: 0.0
new: 2.0
path: .spaces[0].spaces[0].metrics.loc.sloc
old: 2.0
new: 4.0
path: .spaces[0].spaces[0].metrics.loc.ploc
old: 2.0
new: 4.0
path: .spaces[0].spaces[0].metrics.halstead.estimated_program_length
old: 8.0
new: 19.60964047443681
path: .spaces[0].spaces[0].metrics.halstead.purity_ratio
old: 1.6
new: 1.400688605316915
path: .spaces[0].spaces[0].metrics.halstead.n2
old: 1.0
new: 5.0
path: .spaces[0].spaces[0].metrics.halstead.effort
old: 23.21928094887362
new: 124.26106005653862
path: .spaces[0].spaces[0].metrics.halstead.bugs
old: 0.002712967490108627
new: 0.008300459115293854
path: .spaces[0].spaces[0].metrics.halstead.N1
old: 4.0
new: 7.0
path: .spaces[0].spaces[0].metrics.halstead.time
old: 1.289960052715201
new: 6.903392225363257
path: .spaces[0].spaces[0].metrics.halstead.N2
old: 1.0
new: 7.0
path: .spaces[0].spaces[0].metrics.halstead.vocabulary
old: 5.0
new: 9.0
path: .spaces[0].spaces[0].metrics.halstead.volume
old: 11.60964047443681
new: 44.37895002019237
path: .spaces[0].spaces[0].metrics.halstead.difficulty
old: 2.0
new: 2.8
path: .spaces[0].spaces[0].metrics.halstead.length
old: 5.0
new: 14.0
path: .spaces[0].spaces[0].metrics.halstead.level
old: 0.5
new: 0.35714285714285715
path: .spaces[0].spaces[0].metrics.mi.mi_original
old: 146.79146936754594
new: 128.58965200631525
path: .spaces[0].spaces[0].metrics.mi.mi_sei
old: 136.17629276875445
new: 109.91662112654024
path: .spaces[0].spaces[0].metrics.mi.mi_visual_studio
old: 85.84296454242453
new: 75.19862690427792

### Code

      void assign_with_CFRetain(PtrT aRawPtr) {
        CFRetain(aRawPtr);
        assign_assuming_CFRetain(aRawPtr);
      }

## Minimal test - lines (64, 69)

path: .spaces[0].spaces[4].metrics.nexits.average
old: 1.0
new: 0.0
path: .spaces[0].spaces[4].metrics.nexits.sum
old: 1.0
new: 0.0
path: .spaces[0].spaces[4].metrics.halstead.effort
old: 4426.455839737043
new: 788.122468865924
path: .spaces[0].spaces[4].metrics.halstead.n1
old: 15.0
new: 9.0
path: .spaces[0].spaces[4].metrics.halstead.N2
old: 27.0
new: 10.0
path: .spaces[0].spaces[4].metrics.halstead.N1
old: 51.0
new: 13.0
path: .spaces[0].spaces[4].metrics.halstead.estimated_program_length
old: 133.6620089600894
new: 40.13896548741762
path: .spaces[0].spaces[4].metrics.halstead.difficulty
old: 11.25
new: 9.0
path: .spaces[0].spaces[4].metrics.halstead.level
old: 0.08888888888888889
new: 0.1111111111111111
path: .spaces[0].spaces[4].metrics.halstead.vocabulary
old: 33.0
new: 14.0
path: .spaces[0].spaces[4].metrics.halstead.volume
old: 393.46274130995937
new: 87.56916320732489
path: .spaces[0].spaces[4].metrics.halstead.n2
old: 18.0
new: 5.0
path: .spaces[0].spaces[4].metrics.halstead.bugs
old: 0.08986339786239265
new: 0.028440761343675472
path: .spaces[0].spaces[4].metrics.halstead.purity_ratio
old: 1.7136154994883257
new: 1.7451724124964183
path: .spaces[0].spaces[4].metrics.halstead.time
old: 245.9142133187246
new: 43.784581603662446
path: .spaces[0].spaces[4].metrics.halstead.length
old: 78.0
new: 23.0
path: .spaces[0].spaces[4].metrics.cyclomatic.average
old: 10.0
new: 2.0
path: .spaces[0].spaces[4].metrics.cyclomatic.sum
old: 10.0
new: 2.0
path: .spaces[0].spaces[4].metrics.loc.lloc
old: 15.0
new: 2.0
path: .spaces[0].spaces[4].metrics.loc.ploc
old: 21.0
new: 6.0
path: .spaces[0].spaces[4].metrics.loc.sloc
old: 21.0
new: 6.0
path: .spaces[0].spaces[4].metrics.nargs.sum
old: 0.0
new: 1.0
path: .spaces[0].spaces[4].metrics.nargs.average
old: 0.0
new: 1.0
path: .spaces[0].spaces[4].metrics.mi.mi_sei
old: 52.72002502290947
new: 95.111382182126
path: .spaces[0].spaces[4].metrics.mi.mi_original
old: 88.3088073432167
new: 118.25686622600696
path: .spaces[0].spaces[4].metrics.mi.mi_visual_studio
old: 51.642577393693976
new: 69.15606212047192

### Code

      CFTypeRefPtr(const CFTypeRefPtr& aSmartPtr)
          : mRawPtr(aSmartPtr.mRawPtr) {
        if (mRawPtr) {
          CFRetain(mRawPtr);
        }
      }

## Minimal test - lines (35, 139)

path: .spaces[0].metrics.loc.cloc
old: 7.0
new: 15.0
path: .spaces[0].metrics.loc.lloc
old: 24.0
new: 27.0
path: .spaces[0].metrics.loc.blank
old: 12.0
new: 22.0
path: .spaces[0].metrics.loc.sloc
old: 81.0
new: 105.0
path: .spaces[0].metrics.loc.ploc
old: 62.0
new: 68.0
path: .spaces[0].metrics.cognitive.sum
old: 2.0
new: 3.0
path: .spaces[0].metrics.nom.functions
old: 12.0
new: 18.0
path: .spaces[0].metrics.nom.total
old: 12.0
new: 18.0
path: .spaces[0].metrics.halstead.bugs
old: 0.3620311769857549
new: 0.6063297346551968
path: .spaces[0].metrics.halstead.length
old: 263.0
new: 292.0
path: .spaces[0].metrics.halstead.effort
old: 35793.22582015424
new: 77579.17952094632
path: .spaces[0].metrics.halstead.vocabulary
old: 62.0
new: 37.0
path: .spaces[0].metrics.halstead.level
old: 0.04375
new: 0.0196078431372549
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.1897942724504
new: 0.5339911993116542
path: .spaces[0].metrics.halstead.N2
old: 96.0
new: 120.0
path: .spaces[0].metrics.halstead.time
old: 1988.5125455641248
new: 4309.954417830351
path: .spaces[0].metrics.halstead.N1
old: 167.0
new: 172.0
path: .spaces[0].metrics.halstead.n2
old: 42.0
new: 20.0
path: .spaces[0].metrics.halstead.n1
old: 20.0
new: 17.0
path: .spaces[0].metrics.halstead.difficulty
old: 22.857142857142858
new: 51.0
path: .spaces[0].metrics.halstead.volume
old: 1565.953629631748
new: 1521.1603827636534
path: .spaces[0].metrics.halstead.estimated_program_length
old: 312.9158936544552
new: 155.92543019900302
path: .spaces[0].metrics.nargs.average
old: 0.5833333333333334
new: 0.3888888888888889
path: .spaces[0].metrics.nexits.sum
old: 6.0
new: 9.0
path: .spaces[0].metrics.mi.mi_sei
old: 29.809714672540547
new: 29.142725665017668
path: .spaces[0].metrics.mi.mi_original
old: 56.267422314202335
new: 51.7542529194659
path: .spaces[0].metrics.mi.mi_visual_studio
old: 32.904925329942884
new: 30.2656449821438
path: .spaces[0].metrics.cyclomatic.average
old: 1.7692307692307692
new: 1.3157894736842106
path: .spaces[0].metrics.cyclomatic.sum
old: 23.0
new: 25.0

### Code

    class CFTypeRefPtr {
     private:
      void assign_with_CFRetain(PtrT aRawPtr) {
        CFRetain(aRawPtr);
        assign_assuming_CFRetain(aRawPtr);
      }

      void assign_assuming_CFRetain(PtrT aNewPtr) {
        PtrT oldPtr = mRawPtr;
        mRawPtr = aNewPtr;
        if (oldPtr) {
          CFRelease(oldPtr);
        }
      }

     private:
      PtrT mRawPtr;

     public:
      ~CFTypeRefPtr() {
        if (mRawPtr) {
          CFRelease(mRawPtr);
        }
      }

      // Constructors

      CFTypeRefPtr() : mRawPtr(nullptr) {}

      CFTypeRefPtr(const CFTypeRefPtr& aSmartPtr)
          : mRawPtr(aSmartPtr.mRawPtr) {
        if (mRawPtr) {
          CFRetain(mRawPtr);
        }
      }

      CFTypeRefPtr(CFTypeRefPtr&& aRefPtr) : mRawPtr(aRefPtr.mRawPtr) {
        aRefPtr.mRawPtr = nullptr;
      }

      MOZ_IMPLICIT CFTypeRefPtr(decltype(nullptr)) : mRawPtr(nullptr) {}

      // There is no constructor from a raw pointer value.
      // Use one of the static WrapUnder*Rule methods below instead.

      static CFTypeRefPtr WrapUnderCreateRule(PtrT aRawPtr) {
        CFTypeRefPtr ptr;
        ptr.AssignUnderCreateRule(aRawPtr);
        return ptr;
      }

      static CFTypeRefPtr WrapUnderGetRule(PtrT aRawPtr) {
        CFTypeRefPtr ptr;
        ptr.AssignUnderGetRule(aRawPtr);
        return ptr;
      }

      // Assignment operators

      CFTypeRefPtr& operator=(decltype(nullptr)) {
        assign_assuming_CFRetain(nullptr);
        return *this;
      }

      CFTypeRefPtr& operator=(const CFTypeRefPtr& aRhs) {
        assign_with_CFRetain(aRhs.mRawPtr);
        return *this;
      }

      CFTypeRefPtr& operator=(CFTypeRefPtr&& aRefPtr) {
        assign_assuming_CFRetain(aRefPtr.mRawPtr);
        aRefPtr.mRawPtr = nullptr;
        return *this;
      }

      // There is no operator= for a raw pointer value.
      // Use one of the AssignUnder*Rule methods below instead.

      CFTypeRefPtr& AssignUnderCreateRule(PtrT aRawPtr) {
        // Freshly-created objects come with a retain count of 1.
        assign_assuming_CFRetain(aRawPtr);
        return *this;
      }

      CFTypeRefPtr& AssignUnderGetRule(PtrT aRawPtr) {
        assign_with_CFRetain(aRawPtr);
        return *this;
      }

      // Other pointer operators

      // This is the only way to get the raw pointer out of the smart pointer.
      // There is no implicit conversion to a raw pointer.
      PtrT get() const { return mRawPtr; }

      // Don't allow implicit conversion of temporary CFTypeRefPtr to raw pointer,
      // because the refcount might be one and the pointer will immediately become
      // invalid.
      operator PtrT() const&& = delete;
      // Also don't allow implicit conversion of non-temporary CFTypeRefPtr.
      operator PtrT() const& = delete;

      // These let you null-check a pointer without calling get().
      explicit operator bool() const { return !!mRawPtr; }
    };

## Minimal test - lines (94, 97)

path: .spaces[0].spaces[9].metrics.mi.mi_visual_studio
old: 78.00696395465648
new: 74.41840954484594
path: .spaces[0].spaces[9].metrics.mi.mi_original
old: 133.3919083624626
new: 127.25548032168658
path: .spaces[0].spaces[9].metrics.mi.mi_sei
old: 116.84481255663158
new: 107.991818253432
path: .spaces[0].spaces[9].metrics.loc.lloc
old: 1.0
new: 2.0
path: .spaces[0].spaces[9].metrics.loc.sloc
old: 3.0
new: 4.0
path: .spaces[0].spaces[9].metrics.loc.ploc
old: 3.0
new: 4.0
path: .spaces[0].spaces[9].metrics.halstead.purity_ratio
old: 1.8774132274282072
new: 2.0
path: .spaces[0].spaces[9].metrics.halstead.time
old: 8.397096017631943
new: 15.933166669871802
path: .spaces[0].spaces[9].metrics.halstead.length
old: 13.0
new: 16.0
path: .spaces[0].spaces[9].metrics.halstead.n2
old: 3.0
new: 4.0
path: .spaces[0].spaces[9].metrics.halstead.effort
old: 151.14772831737497
new: 286.79700005769246
path: .spaces[0].spaces[9].metrics.halstead.difficulty
old: 3.5
new: 5.0
path: .spaces[0].spaces[9].metrics.halstead.vocabulary
old: 10.0
new: 12.0
path: .spaces[0].spaces[9].metrics.halstead.bugs
old: 0.009458301667417108
new: 0.014496455101021127
path: .spaces[0].spaces[9].metrics.halstead.estimated_program_length
old: 24.406371956566694
new: 32.0
path: .spaces[0].spaces[9].metrics.halstead.n1
old: 7.0
new: 8.0
path: .spaces[0].spaces[9].metrics.halstead.volume
old: 43.18506523353571
new: 57.3594000115385
path: .spaces[0].spaces[9].metrics.halstead.N2
old: 3.0
new: 5.0
path: .spaces[0].spaces[9].metrics.halstead.level
old: 0.2857142857142857
new: 0.2
path: .spaces[0].spaces[9].metrics.halstead.N1
old: 10.0
new: 11.0

### Code

      CFTypeRefPtr& operator=(decltype(nullptr)) {
        assign_assuming_CFRetain(nullptr);
        return *this;
      }