# Global Metrics

path: .metrics.nargs.sum
old: 55.0
new: 25.0
path: .metrics.nargs.average
old: 2.037037037037037
new: 1.3157894736842106
path: .metrics.nexits.average
old: 0.07407407407407407
new: 2.1578947368421053
path: .metrics.nexits.sum
old: 2.0
new: 41.0
path: .metrics.loc.ploc
old: 371.0
new: 376.0
path: .metrics.loc.lloc
old: 83.0
new: 152.0
path: .metrics.loc.blank
old: 44.0
new: 64.0
path: .metrics.loc.cloc
old: 105.0
new: 22.0
path: .metrics.loc.sloc
old: 520.0
new: 462.0
path: .metrics.cognitive.sum
old: 6.0
new: 70.0
path: .metrics.cognitive.average
old: 0.2222222222222222
new: 3.6842105263157894
path: .metrics.nom.total
old: 27.0
new: 19.0
path: .metrics.nom.functions
old: 27.0
new: 18.0
path: .metrics.nom.closures
old: 0.0
new: 1.0
path: .metrics.mi.mi_sei
old: -26.86635664349331
new: -44.02420443444564
path: .metrics.mi.mi_visual_studio
old: 4.569529872914892
new: 3.146588775648107
path: .metrics.mi.mi_original
old: 7.813896082684465
new: 5.380666806358263
path: .metrics.cyclomatic.average
old: 1.8
new: 3.6
path: .metrics.cyclomatic.sum
old: 54.0
new: 72.0
path: .metrics.halstead.n2
old: 123.0
new: 211.0
path: .metrics.halstead.volume
old: 13499.385646568184
new: 14053.291461144412
path: .metrics.halstead.N1
old: 1053.0
new: 1020.0
path: .metrics.halstead.difficulty
old: 80.1951219512195
new: 53.74407582938389
path: .metrics.halstead.n1
old: 24.0
new: 30.0
path: .metrics.halstead.effort
old: 1082584.8781930776
new: 755281.1619401784
path: .metrics.halstead.estimated_program_length
old: 963.9683841740342
new: 1776.3586466854715
path: .metrics.halstead.time
old: 60143.604344059866
new: 41960.06455223213
path: .metrics.halstead.level
old: 0.012469586374695864
new: 0.01860670194003527
path: .metrics.halstead.length
old: 1875.0
new: 1776.0
path: .metrics.halstead.N2
old: 822.0
new: 756.0
path: .metrics.halstead.bugs
old: 3.514417743563074
new: 2.7645079749657993
path: .metrics.halstead.vocabulary
old: 147.0
new: 241.0
path: .metrics.halstead.purity_ratio
old: 0.5141164715594849
new: 1.0002019407012792

# Spaces Data

## Minimal test - lines (112, 119)

path: .spaces[5].metrics.loc.lloc
old: 5.0
new: 3.0
path: .spaces[5].metrics.loc.blank
old: 0.0
new: 1.0
path: .spaces[5].metrics.loc.ploc
old: 10.0
new: 7.0
path: .spaces[5].metrics.loc.sloc
old: 17.0
new: 8.0
path: .spaces[5].metrics.loc.cloc
old: 7.0
new: 0.0
path: .spaces[5].metrics.cognitive.average
old: 0.0
new: 1.0
path: .spaces[5].metrics.cognitive.sum
old: 0.0
new: 1.0
path: .spaces[5].metrics.mi.mi_sei
old: 105.21371300387234
new: 84.26347940245037
path: .spaces[5].metrics.mi.mi_original
old: 96.27766497043206
new: 110.66709685081524
path: .spaces[5].metrics.mi.mi_visual_studio
old: 56.30272805288424
new: 64.71760049755277
path: .spaces[5].metrics.nargs.sum
old: 2.0
new: 1.0
path: .spaces[5].metrics.nargs.average
old: 2.0
new: 1.0
path: .spaces[5].metrics.halstead.estimated_program_length
old: 99.0586500259616
new: 76.2388309575275
path: .spaces[5].metrics.halstead.vocabulary
old: 26.0
new: 22.0
path: .spaces[5].metrics.halstead.time
old: 75.43915597016567
new: 63.76987214651334
path: .spaces[5].metrics.halstead.effort
old: 1357.904807462982
new: 1147.8576986372402
path: .spaces[5].metrics.halstead.volume
old: 244.4228653433368
new: 147.1612434150308
path: .spaces[5].metrics.halstead.N1
old: 27.0
new: 20.0
path: .spaces[5].metrics.halstead.length
old: 52.0
new: 33.0
path: .spaces[5].metrics.halstead.purity_ratio
old: 1.9049740389608003
new: 2.3102676047735606
path: .spaces[5].metrics.halstead.level
old: 0.18
new: 0.12820512820512822
path: .spaces[5].metrics.halstead.n2
old: 18.0
new: 10.0
path: .spaces[5].metrics.halstead.difficulty
old: 5.555555555555555
new: 7.8
path: .spaces[5].metrics.halstead.N2
old: 25.0
new: 13.0
path: .spaces[5].metrics.halstead.n1
old: 8.0
new: 12.0
path: .spaces[5].metrics.halstead.bugs
old: 0.04087504990121647
new: 0.03654299284303898
path: .spaces[5].metrics.nexits.sum
old: 0.0
new: 2.0
path: .spaces[5].metrics.nexits.average
old: 0.0
new: 2.0
path: .spaces[5].metrics.cyclomatic.average
old: 1.0
new: 3.0
path: .spaces[5].metrics.cyclomatic.sum
old: 1.0
new: 3.0

### Code

    nsDirectoryService::Undefine(const char* aProp) {
      if (NS_WARN_IF(!aProp)) {
        return NS_ERROR_INVALID_ARG;
      }

      nsDependentCString key(aProp);
      return mHashtable.Remove(key) ? NS_OK : NS_ERROR_FAILURE;
    }

## Minimal test - lines (455, 462)

path: .spaces[17].metrics.cognitive.average
old: 0.0
new: 1.0
path: .spaces[17].metrics.cognitive.sum
old: 0.0
new: 1.0
path: .spaces[17].metrics.halstead.bugs
old: 0.02658160373607531
new: 0.03052057994028291
path: .spaces[17].metrics.halstead.volume
old: 155.58941141594505
new: 127.43782540330756
path: .spaces[17].metrics.halstead.estimated_program_length
old: 67.75720079023742
new: 62.05374780501027
path: .spaces[17].metrics.halstead.length
old: 36.0
new: 30.0
path: .spaces[17].metrics.halstead.time
old: 39.56226486858432
new: 48.674169424874414
path: .spaces[17].metrics.halstead.N1
old: 19.0
new: 20.0
path: .spaces[17].metrics.halstead.level
old: 0.2184873949579832
new: 0.14545454545454545
path: .spaces[17].metrics.halstead.n2
old: 13.0
new: 8.0
path: .spaces[17].metrics.halstead.effort
old: 712.1207676345177
new: 876.1350496477395
path: .spaces[17].metrics.halstead.n1
old: 7.0
new: 11.0
path: .spaces[17].metrics.halstead.purity_ratio
old: 1.882144466395484
new: 2.068458260167009
path: .spaces[17].metrics.halstead.N2
old: 17.0
new: 10.0
path: .spaces[17].metrics.halstead.vocabulary
old: 20.0
new: 19.0
path: .spaces[17].metrics.halstead.difficulty
old: 4.576923076923077
new: 6.875
path: .spaces[17].metrics.nexits.average
old: 0.0
new: 2.0
path: .spaces[17].metrics.nexits.sum
old: 0.0
new: 2.0
path: .spaces[17].metrics.cyclomatic.sum
old: 1.0
new: 2.0
path: .spaces[17].metrics.cyclomatic.average
old: 1.0
new: 2.0
path: .spaces[17].metrics.loc.sloc
old: 7.0
new: 8.0
path: .spaces[17].metrics.loc.lloc
old: 2.0
new: 4.0
path: .spaces[17].metrics.loc.blank
old: 0.0
new: 1.0
path: .spaces[17].metrics.loc.ploc
old: 5.0
new: 7.0
path: .spaces[17].metrics.loc.cloc
old: 2.0
new: 0.0
path: .spaces[17].metrics.mi.mi_sei
old: 124.25819747392605
new: 85.57302133203632
path: .spaces[17].metrics.mi.mi_visual_studio
old: 66.08228577567823
new: 65.28969490970992
path: .spaces[17].metrics.mi.mi_original
old: 113.00070867640976
new: 111.64537829560396

### Code

    nsDirectoryService::GetFiles(const char* aProp, nsISimpleEnumerator** aResult) {
      if (NS_WARN_IF(!aResult)) {
        return NS_ERROR_INVALID_ARG;
      }
      *aResult = nullptr;

      return NS_ERROR_FAILURE;
    }

## Minimal test - lines (224, 245)

path: .spaces[10].metrics.halstead.effort
old: 1052.8046991829706
new: 7524.238702880752
path: .spaces[10].metrics.halstead.N2
old: 19.0
new: 36.0
path: .spaces[10].metrics.halstead.estimated_program_length
old: 72.10571633583419
new: 173.16614563598216
path: .spaces[10].metrics.halstead.length
old: 41.0
new: 96.0
path: .spaces[10].metrics.halstead.purity_ratio
old: 1.7586760081910775
new: 1.803814017041481
path: .spaces[10].metrics.halstead.vocabulary
old: 21.0
new: 40.0
path: .spaces[10].metrics.halstead.volume
old: 180.0850143339292
new: 510.9050971091869
path: .spaces[10].metrics.halstead.bugs
old: 0.03449667907513436
new: 0.12799326623069018
path: .spaces[10].metrics.halstead.time
old: 58.48914995460947
new: 418.0132612711529
path: .spaces[10].metrics.halstead.level
old: 0.17105263157894737
new: 0.06790123456790123
path: .spaces[10].metrics.halstead.n2
old: 13.0
new: 22.0
path: .spaces[10].metrics.halstead.n1
old: 8.0
new: 18.0
path: .spaces[10].metrics.halstead.N1
old: 22.0
new: 60.0
path: .spaces[10].metrics.halstead.difficulty
old: 5.846153846153846
new: 14.727272727272728
path: .spaces[10].metrics.cyclomatic.sum
old: 1.0
new: 6.0
path: .spaces[10].metrics.cyclomatic.average
old: 1.0
new: 6.0
path: .spaces[10].metrics.loc.lloc
old: 2.0
new: 11.0
path: .spaces[10].metrics.loc.ploc
old: 8.0
new: 21.0
path: .spaces[10].metrics.loc.blank
old: 0.0
new: 1.0
path: .spaces[10].metrics.loc.sloc
old: 8.0
new: 22.0
path: .spaces[10].metrics.nexits.sum
old: 0.0
new: 5.0
path: .spaces[10].metrics.nexits.average
old: 0.0
new: 2.5
path: .spaces[10].metrics.nom.total
old: 1.0
new: 2.0
path: .spaces[10].metrics.nom.closures
old: 0.0
new: 1.0
path: .spaces[10].metrics.mi.mi_sei
old: 83.20882152032584
new: 50.5932678802466
path: .spaces[10].metrics.mi.mi_original
old: 110.0772160103077
new: 87.11695621992905
path: .spaces[10].metrics.mi.mi_visual_studio
old: 64.37264094170041
new: 50.94558843270705
path: .spaces[10].metrics.nargs.average
old: 2.0
new: 1.0
path: .spaces[10].metrics.cognitive.sum
old: 0.0
new: 7.0
path: .spaces[10].metrics.cognitive.average
old: 0.0
new: 3.5

### Code

    nsDirectoryService::Set(const char* aProp, nsISupports* aValue) {
      if (NS_WARN_IF(!aProp)) {
        return NS_ERROR_INVALID_ARG;
      }
      if (!aValue) {
        return NS_ERROR_FAILURE;
      }

      const nsDependentCString key(aProp);
      return mHashtable.WithEntryHandle(key, [&](auto&& entry) {
        if (!entry) {
          nsCOMPtr ourFile = do_QueryInterface(aValue);
          if (ourFile) {
            nsCOMPtr cloneFile;
            ourFile->Clone(getter_AddRefs(cloneFile));
            entry.Insert(std::move(cloneFile));
            return NS_OK;
          }
        }
        return NS_ERROR_FAILURE;
      });
    }

## Minimal test - lines (73, 87)

path: .spaces[2].metrics.halstead.vocabulary
old: 28.0
new: 24.0
path: .spaces[2].metrics.halstead.time
old: 213.32637466630615
new: 106.4730180723024
path: .spaces[2].metrics.halstead.effort
old: 3839.8747439935105
new: 1916.5143253014433
path: .spaces[2].metrics.halstead.n2
old: 16.0
new: 13.0
path: .spaces[2].metrics.halstead.estimated_program_length
old: 107.01955000865388
new: 86.15946414084446
path: .spaces[2].metrics.halstead.n1
old: 12.0
new: 11.0
path: .spaces[2].metrics.halstead.N1
old: 41.0
new: 33.0
path: .spaces[2].metrics.halstead.length
old: 71.0
new: 52.0
path: .spaces[2].metrics.halstead.bugs
old: 0.08173789528158894
new: 0.05143042641923176
path: .spaces[2].metrics.halstead.N2
old: 30.0
new: 19.0
path: .spaces[2].metrics.halstead.purity_ratio
old: 1.5073176057556883
new: 1.6569127719393166
path: .spaces[2].metrics.halstead.volume
old: 341.32219946608984
new: 238.4180500375001
path: .spaces[2].metrics.halstead.level
old: 0.08888888888888889
new: 0.12440191387559808
path: .spaces[2].metrics.halstead.difficulty
old: 11.25
new: 8.038461538461538
path: .spaces[2].metrics.nargs.average
old: 2.0
new: 3.0
path: .spaces[2].metrics.nargs.sum
old: 2.0
new: 3.0
path: .spaces[2].metrics.loc.cloc
old: 2.0
new: 0.0
path: .spaces[2].metrics.loc.ploc
old: 17.0
new: 13.0
path: .spaces[2].metrics.loc.lloc
old: 2.0
new: 7.0
path: .spaces[2].metrics.loc.sloc
old: 19.0
new: 15.0
path: .spaces[2].metrics.loc.blank
old: 0.0
new: 2.0
path: .spaces[2].metrics.mi.mi_original
old: 92.2793886697359
new: 97.74465338518208
path: .spaces[2].metrics.mi.mi_sei
old: 81.82198733181266
new: 65.72215415781793
path: .spaces[2].metrics.mi.mi_visual_studio
old: 53.96455477762333
new: 57.160616014726365
path: .spaces[2].metrics.nexits.average
old: 0.0
new: 4.0
path: .spaces[2].metrics.nexits.sum
old: 0.0
new: 4.0
path: .spaces[2].metrics.cognitive.sum
old: 0.0
new: 3.0
path: .spaces[2].metrics.cognitive.average
old: 0.0
new: 3.0
path: .spaces[2].metrics.cyclomatic.average
old: 3.0
new: 4.0
path: .spaces[2].metrics.cyclomatic.sum
old: 3.0
new: 4.0

### Code

    nsresult nsDirectoryService::Create(nsISupports* aOuter, REFNSIID aIID,
                                        void** aResult) {
      if (NS_WARN_IF(!aResult)) {
        return NS_ERROR_INVALID_ARG;
      }
      if (NS_WARN_IF(aOuter)) {
        return NS_ERROR_NO_AGGREGATION;
      }

      if (!gService) {
        return NS_ERROR_NOT_INITIALIZED;
      }

      return gService->QueryInterface(aIID, aResult);
    }

## Minimal test - lines (268, 275)

path: .spaces[12].metrics.cognitive.sum
old: 0.0
new: 1.0
path: .spaces[12].metrics.cognitive.average
old: 0.0
new: 1.0
path: .spaces[12].metrics.loc.lloc
old: 2.0
new: 4.0
path: .spaces[12].metrics.loc.blank
old: 0.0
new: 1.0
path: .spaces[12].metrics.loc.ploc
old: 8.0
new: 7.0
path: .spaces[12].metrics.mi.mi_sei
old: 83.09505839910031
new: 87.69819499624998
path: .spaces[12].metrics.mi.mi_original
old: 109.99836142357852
new: 113.11843642915392
path: .spaces[12].metrics.mi.mi_visual_studio
old: 64.32652714829155
new: 66.15113241470989
path: .spaces[12].metrics.nexits.average
old: 0.0
new: 2.0
path: .spaces[12].metrics.nexits.sum
old: 0.0
new: 2.0
path: .spaces[12].metrics.cyclomatic.average
old: 1.0
new: 2.0
path: .spaces[12].metrics.cyclomatic.sum
old: 1.0
new: 2.0
path: .spaces[12].metrics.halstead.n1
old: 8.0
new: 9.0
path: .spaces[12].metrics.halstead.N1
old: 22.0
new: 15.0
path: .spaces[12].metrics.halstead.time
old: 55.14122588759451
new: 30.857142857142858
path: .spaces[12].metrics.halstead.estimated_program_length
old: 77.30296890880646
new: 48.18080946738404
path: .spaces[12].metrics.halstead.length
old: 41.0
new: 24.0
path: .spaces[12].metrics.halstead.purity_ratio
old: 1.8854382660684503
new: 2.0075337278076684
path: .spaces[12].metrics.halstead.difficulty
old: 5.428571428571429
new: 5.785714285714286
path: .spaces[12].metrics.halstead.vocabulary
old: 22.0
new: 16.0
path: .spaces[12].metrics.halstead.effort
old: 992.5420659767012
new: 555.4285714285714
path: .spaces[12].metrics.halstead.n2
old: 14.0
new: 7.0
path: .spaces[12].metrics.halstead.volume
old: 182.8366963641292
new: 96.0
path: .spaces[12].metrics.halstead.N2
old: 19.0
new: 9.0
path: .spaces[12].metrics.halstead.level
old: 0.18421052631578944
new: 0.1728395061728395
path: .spaces[12].metrics.halstead.bugs
old: 0.033167394777450086
new: 0.022523241290852
path: .spaces[12].metrics.nargs.sum
old: 2.0
new: 1.0
path: .spaces[12].metrics.nargs.average
old: 2.0
new: 1.0

### Code

    nsDirectoryService::RegisterProvider(nsIDirectoryServiceProvider* aProv) {
      if (!aProv) {
        return NS_ERROR_FAILURE;
      }

      mProviders.AppendElement(aProv);
      return NS_OK;
    }

## Minimal test - lines (248, 265)

path: .spaces[11].metrics.mi.mi_sei
old: 124.3877602665069
new: 58.93940085441358
path: .spaces[11].metrics.mi.mi_visual_studio
old: 66.13480395367995
new: 54.41123219677995
path: .spaces[11].metrics.mi.mi_original
old: 113.0905147607927
new: 93.04320705649371
path: .spaces[11].metrics.loc.sloc
old: 7.0
new: 18.0
path: .spaces[11].metrics.loc.lloc
old: 2.0
new: 8.0
path: .spaces[11].metrics.loc.cloc
old: 2.0
new: 0.0
path: .spaces[11].metrics.loc.ploc
old: 5.0
new: 15.0
path: .spaces[11].metrics.loc.blank
old: 0.0
new: 3.0
path: .spaces[11].metrics.cognitive.sum
old: 0.0
new: 3.0
path: .spaces[11].metrics.cognitive.average
old: 0.0
new: 3.0
path: .spaces[11].metrics.halstead.time
old: 42.12528117498222
new: 184.2810023684088
path: .spaces[11].metrics.halstead.vocabulary
old: 19.0
new: 30.0
path: .spaces[11].metrics.halstead.volume
old: 152.92539048396907
new: 333.66856050137926
path: .spaces[11].metrics.halstead.length
old: 36.0
new: 68.0
path: .spaces[11].metrics.halstead.effort
old: 758.2550611496799
new: 3317.0580426313586
path: .spaces[11].metrics.halstead.bugs
old: 0.02771760004787753
new: 0.07413912553572573
path: .spaces[11].metrics.halstead.n2
old: 12.0
new: 17.0
path: .spaces[11].metrics.halstead.n1
old: 7.0
new: 13.0
path: .spaces[11].metrics.halstead.difficulty
old: 4.958333333333333
new: 9.941176470588236
path: .spaces[11].metrics.halstead.purity_ratio
old: 1.7408620684182528
new: 1.7293027152513232
path: .spaces[11].metrics.halstead.N2
old: 17.0
new: 26.0
path: .spaces[11].metrics.halstead.N1
old: 19.0
new: 42.0
path: .spaces[11].metrics.halstead.estimated_program_length
old: 62.6710344630571
new: 117.59258463708996
path: .spaces[11].metrics.halstead.level
old: 0.20168067226890757
new: 0.10059171597633136
path: .spaces[11].metrics.cyclomatic.sum
old: 1.0
new: 4.0
path: .spaces[11].metrics.cyclomatic.average
old: 1.0
new: 4.0
path: .spaces[11].metrics.nexits.sum
old: 0.0
new: 3.0
path: .spaces[11].metrics.nexits.average
old: 0.0
new: 3.0

### Code

    nsDirectoryService::Has(const char* aProp, bool* aResult) {
      if (NS_WARN_IF(!aProp)) {
        return NS_ERROR_INVALID_ARG;
      }

      *aResult = false;
      nsCOMPtr value;
      nsresult rv = Get(aProp, NS_GET_IID(nsIFile), getter_AddRefs(value));
      if (NS_FAILED(rv)) {
        return NS_OK;
      }

      if (value) {
        *aResult = true;
      }

      return rv;
    }

## Minimal test - lines (90, 93)

path: .spaces[3].metrics.cyclomatic.sum
old: 3.0
new: 1.0
path: .spaces[3].metrics.cyclomatic.average
old: 3.0
new: 1.0
path: .spaces[3].metrics.loc.sloc
old: 14.0
new: 4.0
path: .spaces[3].metrics.loc.cloc
old: 2.0
new: 0.0
path: .spaces[3].metrics.loc.ploc
old: 12.0
new: 4.0
path: .spaces[3].metrics.nargs.average
old: 2.0
new: 0.0
path: .spaces[3].metrics.nargs.sum
old: 2.0
new: 0.0
path: .spaces[3].metrics.nexits.sum
old: 0.0
new: 1.0
path: .spaces[3].metrics.nexits.average
old: 0.0
new: 1.0
path: .spaces[3].metrics.mi.mi_visual_studio
old: 56.82578755757007
new: 75.93198520570938
path: .spaces[3].metrics.mi.mi_sei
old: 92.42678678198942
new: 111.72582230432585
path: .spaces[3].metrics.mi.mi_original
old: 97.1720967234448
new: 129.84369470176304
path: .spaces[3].metrics.halstead.bugs
old: 0.07905037015959379
new: 0.006553397824358721
path: .spaces[3].metrics.halstead.length
old: 71.0
new: 11.0
path: .spaces[3].metrics.halstead.level
old: 0.09444444444444444
new: 0.4
path: .spaces[3].metrics.halstead.effort
old: 3652.0586539841393
new: 87.1729375396636
path: .spaces[3].metrics.halstead.N1
old: 41.0
new: 7.0
path: .spaces[3].metrics.halstead.difficulty
old: 10.588235294117649
new: 2.5
path: .spaces[3].metrics.halstead.N2
old: 30.0
new: 4.0
path: .spaces[3].metrics.halstead.volume
old: 344.9166506540576
new: 34.86917501586544
path: .spaces[3].metrics.halstead.estimated_program_length
old: 112.50641830990963
new: 19.60964047443681
path: .spaces[3].metrics.halstead.time
old: 202.8921474435633
new: 4.842940974425755
path: .spaces[3].metrics.halstead.n2
old: 17.0
new: 4.0
path: .spaces[3].metrics.halstead.purity_ratio
old: 1.5845974409846428
new: 1.7826945885851644
path: .spaces[3].metrics.halstead.vocabulary
old: 29.0
new: 9.0
path: .spaces[3].metrics.halstead.n1
old: 12.0
new: 5.0

### Code

    nsDirectoryService::Init() {
      MOZ_ASSERT_UNREACHABLE("nsDirectoryService::Init() for internal use only!");
      return NS_OK;
    }

## Minimal test - lines (334, 452)

path: .spaces[16].metrics.halstead.estimated_program_length
old: 77.30296890880646
new: 583.0147185349103
path: .spaces[16].metrics.halstead.vocabulary
old: 22.0
new: 98.0
path: .spaces[16].metrics.halstead.purity_ratio
old: 1.8854382660684503
new: 0.901104665432628
path: .spaces[16].metrics.halstead.N1
old: 22.0
new: 353.0
path: .spaces[16].metrics.halstead.n2
old: 14.0
new: 81.0
path: .spaces[16].metrics.halstead.bugs
old: 0.033167394777450086
new: 0.8643234371402797
path: .spaces[16].metrics.halstead.difficulty
old: 5.428571428571429
new: 30.85185185185185
path: .spaces[16].metrics.halstead.effort
old: 992.5420659767012
new: 132037.2031553976
path: .spaces[16].metrics.halstead.time
old: 55.14122588759451
new: 7335.400175299867
path: .spaces[16].metrics.halstead.N2
old: 19.0
new: 294.0
path: .spaces[16].metrics.halstead.volume
old: 182.8366963641292
new: 4279.717269142539
path: .spaces[16].metrics.halstead.level
old: 0.18421052631578944
new: 0.03241296518607443
path: .spaces[16].metrics.halstead.length
old: 41.0
new: 647.0
path: .spaces[16].metrics.halstead.n1
old: 8.0
new: 17.0
path: .spaces[16].metrics.loc.lloc
old: 2.0
new: 44.0
path: .spaces[16].metrics.loc.sloc
old: 8.0
new: 119.0
path: .spaces[16].metrics.loc.cloc
old: 0.0
new: 3.0
path: .spaces[16].metrics.loc.ploc
old: 8.0
new: 108.0
path: .spaces[16].metrics.loc.blank
old: 0.0
new: 8.0
path: .spaces[16].metrics.cyclomatic.average
old: 1.0
new: 10.0
path: .spaces[16].metrics.cyclomatic.sum
old: 1.0
new: 10.0
path: .spaces[16].metrics.mi.mi_visual_studio
old: 64.32652714829155
new: 27.95184785211998
path: .spaces[16].metrics.mi.mi_sei
old: 83.09505839910031
new: 6.449947455269644
path: .spaces[16].metrics.mi.mi_original
old: 109.99836142357852
new: 47.79765982712516
path: .spaces[16].metrics.nexits.average
old: 0.0
new: 3.0
path: .spaces[16].metrics.nexits.sum
old: 0.0
new: 3.0
path: .spaces[16].metrics.nargs.average
old: 2.0
new: 3.0
path: .spaces[16].metrics.nargs.sum
old: 2.0
new: 3.0
path: .spaces[16].metrics.cognitive.sum
old: 0.0
new: 8.0
path: .spaces[16].metrics.cognitive.average
old: 0.0
new: 8.0

### Code

    nsDirectoryService::GetFile(const char* aProp, bool* aPersistent,
                                nsIFile** aResult) {
      nsCOMPtr localFile;
      nsresult rv = NS_ERROR_FAILURE;

      *aResult = nullptr;
      *aPersistent = true;

      RefPtr inAtom = NS_Atomize(aProp);

      // check to see if it is one of our defaults

      if (inAtom == nsGkAtoms::DirectoryService_CurrentProcess ||
          inAtom == nsGkAtoms::DirectoryService_OS_CurrentProcessDirectory) {
        rv = GetCurrentProcessDirectory(getter_AddRefs(localFile));
      }

      // Unless otherwise set, the core pieces of the GRE exist
      // in the current process directory.
      else if (inAtom == nsGkAtoms::DirectoryService_GRE_Directory ||
               inAtom == nsGkAtoms::DirectoryService_GRE_BinDirectory) {
        rv = GetCurrentProcessDirectory(getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_OS_TemporaryDirectory) {
        rv = GetSpecialSystemDirectory(OS_TemporaryDirectory,
                                       getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_OS_CurrentWorkingDirectory) {
        rv = GetSpecialSystemDirectory(OS_CurrentWorkingDirectory,
                                       getter_AddRefs(localFile));
      }
    #if defined(MOZ_WIDGET_COCOA)
      else if (inAtom == nsGkAtoms::DirectoryService_SystemDirectory) {
        rv = GetOSXFolderType(kClassicDomain, kSystemFolderType,
                              getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_UserLibDirectory) {
        rv = GetOSXFolderType(kUserDomain, kDomainLibraryFolderType,
                              getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::Home) {
        rv = GetOSXFolderType(kUserDomain, kDomainTopLevelFolderType,
                              getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_DefaultDownloadDirectory) {
        rv = GetOSXFolderType(kUserDomain, kDownloadsFolderType,
                              getter_AddRefs(localFile));
        if (NS_FAILED(rv)) {
          rv = GetOSXFolderType(kUserDomain, kDesktopFolderType,
                                getter_AddRefs(localFile));
        }
      } else if (inAtom == nsGkAtoms::DirectoryService_OS_DesktopDirectory) {
        rv = GetOSXFolderType(kUserDomain, kDesktopFolderType,
                              getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_LocalApplicationsDirectory) {
        rv = GetOSXFolderType(kLocalDomain, kApplicationsFolderType,
                              getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_UserPreferencesDirectory) {
        rv = GetOSXFolderType(kUserDomain, kPreferencesFolderType,
                              getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_PictureDocumentsDirectory) {
        rv = GetOSXFolderType(kUserDomain, kPictureDocumentsFolderType,
                              getter_AddRefs(localFile));
      }
    #elif defined(XP_WIN)
      else if (inAtom == nsGkAtoms::DirectoryService_SystemDirectory) {
        rv = GetSpecialSystemDirectory(Win_SystemDirectory,
                                       getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_WindowsDirectory) {
        rv = GetSpecialSystemDirectory(Win_WindowsDirectory,
                                       getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_WindowsProgramFiles) {
        rv = GetSpecialSystemDirectory(Win_ProgramFiles, getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::Home) {
        rv =
            GetSpecialSystemDirectory(Win_HomeDirectory, getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_Programs) {
        rv = GetSpecialSystemDirectory(Win_Programs, getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_Favorites) {
        rv = GetSpecialSystemDirectory(Win_Favorites, getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_OS_DesktopDirectory) {
        rv = GetSpecialSystemDirectory(Win_Desktopdirectory,
                                       getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_Appdata) {
        rv = GetSpecialSystemDirectory(Win_Appdata, getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_LocalAppdata) {
        rv = GetSpecialSystemDirectory(Win_LocalAppdata, getter_AddRefs(localFile));
    #  if defined(MOZ_SANDBOX)
      } else if (inAtom == nsGkAtoms::DirectoryService_LocalAppdataLow) {
        rv = GetSpecialSystemDirectory(Win_LocalAppdataLow,
                                       getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_LowIntegrityTempBase) {
        rv = GetLowIntegrityTempBase(getter_AddRefs(localFile));
    #  endif
      } else if (inAtom == nsGkAtoms::DirectoryService_WinCookiesDirectory) {
        rv = GetSpecialSystemDirectory(Win_Cookies, getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_DefaultDownloadDirectory) {
        rv = GetSpecialSystemDirectory(Win_Downloads, getter_AddRefs(localFile));
      }
    #elif defined(XP_UNIX)
      else if (inAtom == nsGkAtoms::Home) {
        rv = GetSpecialSystemDirectory(Unix_HomeDirectory,
                                       getter_AddRefs(localFile));
      } else if (inAtom == nsGkAtoms::DirectoryService_OS_DesktopDirectory) {
        rv = GetSpecialSystemDirectory(Unix_XDG_Desktop, getter_AddRefs(localFile));
        *aPersistent = false;
      } else if (inAtom == nsGkAtoms::DirectoryService_DefaultDownloadDirectory) {
        rv =
            GetSpecialSystemDirectory(Unix_XDG_Download, getter_AddRefs(localFile));
        *aPersistent = false;
      }
    #endif

      if (NS_FAILED(rv)) {
        return rv;
      }

      if (!localFile) {
        return NS_ERROR_FAILURE;
      }

      localFile.forget(aResult);
      return NS_OK;
    }

## Minimal test - lines (136, 173)

path: .spaces[8].metrics.nexits.average
old: 0.0
new: 3.0
path: .spaces[8].metrics.nexits.sum
old: 0.0
new: 3.0
path: .spaces[8].metrics.cyclomatic.average
old: 1.0
new: 9.0
path: .spaces[8].metrics.cyclomatic.sum
old: 1.0
new: 9.0
path: .spaces[8].metrics.mi.mi_sei
old: 75.90977439348593
new: 49.57668492328669
path: .spaces[8].metrics.mi.mi_visual_studio
old: 61.413977820797925
new: 43.35714705750593
path: .spaces[8].metrics.mi.mi_original
old: 105.01790207356446
new: 74.14072146833513
path: .spaces[8].metrics.loc.cloc
old: 0.0
new: 2.0
path: .spaces[8].metrics.loc.lloc
old: 2.0
new: 15.0
path: .spaces[8].metrics.loc.ploc
old: 10.0
new: 33.0
path: .spaces[8].metrics.loc.sloc
old: 10.0
new: 38.0
path: .spaces[8].metrics.loc.blank
old: 0.0
new: 3.0
path: .spaces[8].metrics.cognitive.sum
old: 0.0
new: 21.0
path: .spaces[8].metrics.cognitive.average
old: 0.0
new: 21.0
path: .spaces[8].metrics.halstead.length
old: 50.0
new: 177.0
path: .spaces[8].metrics.halstead.vocabulary
old: 27.0
new: 48.0
path: .spaces[8].metrics.halstead.effort
old: 1608.270772790585
new: 20057.76226105769
path: .spaces[8].metrics.halstead.level
old: 0.14782608695652175
new: 0.0492845786963434
path: .spaces[8].metrics.halstead.n2
old: 17.0
new: 31.0
path: .spaces[8].metrics.halstead.bugs
old: 0.04575636597638663
new: 0.24607475699747863
path: .spaces[8].metrics.halstead.volume
old: 237.7443751081734
new: 988.5383626276446
path: .spaces[8].metrics.halstead.N2
old: 23.0
new: 74.0
path: .spaces[8].metrics.halstead.estimated_program_length
old: 102.7061492501294
new: 223.0669539232489
path: .spaces[8].metrics.halstead.n1
old: 10.0
new: 17.0
path: .spaces[8].metrics.halstead.difficulty
old: 6.764705882352941
new: 20.29032258064516
path: .spaces[8].metrics.halstead.N1
old: 27.0
new: 103.0
path: .spaces[8].metrics.halstead.purity_ratio
old: 2.0541229850025875
new: 1.2602652764025362
path: .spaces[8].metrics.halstead.time
old: 89.3483762661436
new: 1114.320125614316

### Code

    static bool FindProviderFile(nsIDirectoryServiceProvider* aElement,
                                 FileData* aData) {
      nsresult rv;
      if (aData->uuid.Equals(NS_GET_IID(nsISimpleEnumerator))) {
        // Not all providers implement this iface
        nsCOMPtr prov2 = do_QueryInterface(aElement);
        if (prov2) {
          nsCOMPtr newFiles;
          rv = prov2->GetFiles(aData->property, getter_AddRefs(newFiles));
          if (NS_SUCCEEDED(rv) && newFiles) {
            if (aData->data) {
              nsCOMPtr unionFiles;

              NS_NewUnionEnumerator(getter_AddRefs(unionFiles),
                                    (nsISimpleEnumerator*)aData->data.get(),
                                    newFiles);

              if (unionFiles) {
                unionFiles.swap(*(nsISimpleEnumerator**)&aData->data);
              }
            } else {
              aData->data = newFiles;
            }

            aData->persistent = false;  // Enumerators can never be persistent
            return rv == NS_SUCCESS_AGGREGATE_RESULT;
          }
        }
      } else {
        rv = aElement->GetFile(aData->property, &aData->persistent,
                               (nsIFile**)&aData->data);
        if (NS_SUCCEEDED(rv) && aData->data) {
          return false;
        }
      }

      return true;
    }

## Minimal test - lines (122, 124)

path: .spaces[6].metrics.nexits.average
old: 0.0
new: 1.0
path: .spaces[6].metrics.nexits.sum
old: 0.0
new: 1.0
path: .spaces[6].metrics.loc.sloc
old: 8.0
new: 3.0
path: .spaces[6].metrics.loc.lloc
old: 2.0
new: 1.0
path: .spaces[6].metrics.loc.ploc
old: 8.0
new: 3.0
path: .spaces[6].metrics.halstead.length
old: 41.0
new: 13.0
path: .spaces[6].metrics.halstead.level
old: 0.17105263157894737
new: 0.25
path: .spaces[6].metrics.halstead.N1
old: 22.0
new: 8.0
path: .spaces[6].metrics.halstead.time
old: 58.48914995460947
new: 10.690159185740931
path: .spaces[6].metrics.halstead.difficulty
old: 5.846153846153846
new: 4.0
path: .spaces[6].metrics.halstead.bugs
old: 0.03449667907513436
new: 0.011110063219277547
path: .spaces[6].metrics.halstead.N2
old: 19.0
new: 5.0
path: .spaces[6].metrics.halstead.estimated_program_length
old: 72.10571633583419
new: 35.60964047443681
path: .spaces[6].metrics.halstead.n2
old: 13.0
new: 5.0
path: .spaces[6].metrics.halstead.effort
old: 1052.8046991829706
new: 192.4228653433368
path: .spaces[6].metrics.halstead.vocabulary
old: 21.0
new: 13.0
path: .spaces[6].metrics.halstead.volume
old: 180.0850143339292
new: 48.105716335834195
path: .spaces[6].metrics.halstead.purity_ratio
old: 1.7586760081910775
new: 2.739203113418216
path: .spaces[6].metrics.mi.mi_visual_studio
old: 64.37264094170041
new: 77.67882786962677
path: .spaces[6].metrics.mi.mi_original
old: 110.0772160103077
new: 132.8307956570618
path: .spaces[6].metrics.mi.mi_sei
old: 83.20882152032584
new: 116.03529803917004
path: .spaces[6].metrics.nargs.average
old: 2.0
new: 1.0
path: .spaces[6].metrics.nargs.sum
old: 2.0
new: 1.0

### Code

    nsDirectoryService::GetKeys(nsTArray& aKeys) {
      return NS_ERROR_NOT_IMPLEMENTED;
    }

## Minimal test - lines (95, 104)

path: .spaces[4].metrics.mi.mi_original
old: 115.98135200850813
new: 107.5910259062542
path: .spaces[4].metrics.mi.mi_sei
old: 91.72668924566358
new: 103.1487995054456
path: .spaces[4].metrics.mi.mi_visual_studio
old: 67.82535205175913
new: 62.91872860014865
path: .spaces[4].metrics.halstead.bugs
old: 0.022837935752198977
new: 0.03880776032110825
path: .spaces[4].metrics.halstead.estimated_program_length
old: 58.529325012980806
new: 71.54887502163469
path: .spaces[4].metrics.halstead.volume
old: 141.7774500490386
new: 144.94647495169912
path: .spaces[4].metrics.halstead.difficulty
old: 4.0
new: 8.666666666666666
path: .spaces[4].metrics.halstead.purity_ratio
old: 1.721450735675906
new: 2.1681477279283237
path: .spaces[4].metrics.halstead.vocabulary
old: 18.0
new: 21.0
path: .spaces[4].metrics.halstead.n2
old: 12.0
new: 9.0
path: .spaces[4].metrics.halstead.n1
old: 6.0
new: 12.0
path: .spaces[4].metrics.halstead.N2
old: 16.0
new: 13.0
path: .spaces[4].metrics.halstead.N1
old: 18.0
new: 20.0
path: .spaces[4].metrics.halstead.length
old: 34.0
new: 33.0
path: .spaces[4].metrics.halstead.time
old: 31.50610001089747
new: 69.78904349526253
path: .spaces[4].metrics.halstead.effort
old: 567.1098001961544
new: 1256.2027829147255
path: .spaces[4].metrics.halstead.level
old: 0.25
new: 0.1153846153846154
path: .spaces[4].metrics.loc.blank
old: 0.0
new: 2.0
path: .spaces[4].metrics.loc.cloc
old: 0.0
new: 1.0
path: .spaces[4].metrics.loc.sloc
old: 6.0
new: 10.0
path: .spaces[4].metrics.loc.lloc
old: 2.0
new: 3.0
path: .spaces[4].metrics.loc.ploc
old: 6.0
new: 7.0
path: .spaces[4].metrics.nargs.average
old: 2.0
new: 0.0
path: .spaces[4].metrics.nargs.sum
old: 2.0
new: 0.0

### Code

    void nsDirectoryService::RealInit() {
      NS_ASSERTION(!gService,
                   "nsDirectoryService::RealInit Mustn't initialize twice!");

      gService = new nsDirectoryService();

      // Let the list hold the only reference to the provider.
      nsAppFileLocationProvider* defaultProvider = new nsAppFileLocationProvider;
      gService->mProviders.AppendElement(defaultProvider);
    }

## Minimal test - lines (310, 325)

path: .spaces[15].metrics.nexits.average
old: 0.0
new: 3.0
path: .spaces[15].metrics.nexits.sum
old: 0.0
new: 3.0
path: .spaces[15].metrics.cognitive.average
old: 0.0
new: 2.0
path: .spaces[15].metrics.cognitive.sum
old: 0.0
new: 2.0
path: .spaces[15].metrics.cyclomatic.average
old: 1.0
new: 3.0
path: .spaces[15].metrics.cyclomatic.sum
old: 1.0
new: 3.0
path: .spaces[15].metrics.halstead.purity_ratio
old: 2.1752384198263823
new: 1.6215083334644529
path: .spaces[15].metrics.halstead.difficulty
old: 7.333333333333333
new: 11.25
path: .spaces[15].metrics.halstead.vocabulary
old: 29.0
new: 28.0
path: .spaces[15].metrics.halstead.bugs
old: 0.05027890367938762
new: 0.07785392430259241
path: .spaces[15].metrics.halstead.time
old: 102.91722700788782
new: 198.30339053487617
path: .spaces[15].metrics.halstead.level
old: 0.13636363636363638
new: 0.08888888888888889
path: .spaces[15].metrics.halstead.n1
old: 11.0
new: 12.0
path: .spaces[15].metrics.halstead.N1
old: 28.0
new: 36.0
path: .spaces[15].metrics.halstead.volume
old: 252.61501174663377
new: 317.28542485580186
path: .spaces[15].metrics.halstead.length
old: 52.0
new: 66.0
path: .spaces[15].metrics.halstead.effort
old: 1852.5100861419808
new: 3569.461029627771
path: .spaces[15].metrics.halstead.n2
old: 18.0
new: 16.0
path: .spaces[15].metrics.halstead.estimated_program_length
old: 113.11239783097189
new: 107.01955000865388
path: .spaces[15].metrics.halstead.N2
old: 24.0
new: 30.0
path: .spaces[15].metrics.mi.mi_visual_studio
old: 61.22948244485371
new: 55.81467458130127
path: .spaces[15].metrics.mi.mi_original
old: 104.70241498069986
new: 95.44309353402518
path: .spaces[15].metrics.mi.mi_sei
old: 75.45462272914573
new: 62.29988531484027
path: .spaces[15].metrics.nargs.average
old: 2.0
new: 1.0
path: .spaces[15].metrics.nargs.sum
old: 2.0
new: 1.0
path: .spaces[15].metrics.loc.ploc
old: 10.0
new: 14.0
path: .spaces[15].metrics.loc.lloc
old: 2.0
new: 7.0
path: .spaces[15].metrics.loc.sloc
old: 10.0
new: 16.0
path: .spaces[15].metrics.loc.blank
old: 0.0
new: 2.0

### Code

    static nsresult GetLowIntegrityTempBase(nsIFile** aLowIntegrityTempBase) {
      nsCOMPtr localFile;
      nsresult rv =
          GetSpecialSystemDirectory(Win_LocalAppdataLow, getter_AddRefs(localFile));
      if (NS_WARN_IF(NS_FAILED(rv))) {
        return rv;
      }

      rv = localFile->Append(NS_LITERAL_STRING_FROM_CSTRING(MOZ_USER_DIR));
      if (NS_WARN_IF(NS_FAILED(rv))) {
        return rv;
      }

      localFile.forget(aLowIntegrityTempBase);
      return rv;
    }

## Minimal test - lines (71, 71)

path: .spaces[1].metrics.mi.mi_original
old: 115.7204088499574
new: 154.58924178123317
path: .spaces[1].metrics.mi.mi_visual_studio
old: 67.67275371342538
new: 90.4030653691422
path: .spaces[1].metrics.mi.mi_sei
old: 91.45204770427308
new: 147.42610035996177
path: .spaces[1].metrics.nargs.sum
old: 2.0
new: 0.0
path: .spaces[1].metrics.nargs.average
old: 2.0
new: 0.0
path: .spaces[1].metrics.halstead.level
old: 0.1746031746031746
new: 0.5
path: .spaces[1].metrics.halstead.volume
old: 142.62362713128297
new: 22.458839376460833
path: .spaces[1].metrics.halstead.time
old: 45.38024499631731
new: 2.495426597384537
path: .spaces[1].metrics.halstead.bugs
old: 0.02912761816732554
new: 0.00421201861424495
path: .spaces[1].metrics.halstead.purity_ratio
old: 2.017668873272457
new: 1.5943609377704335
path: .spaces[1].metrics.halstead.difficulty
old: 5.7272727272727275
new: 2.0
path: .spaces[1].metrics.halstead.n1
old: 9.0
new: 4.0
path: .spaces[1].metrics.halstead.N2
old: 14.0
new: 3.0
path: .spaces[1].metrics.halstead.n2
old: 11.0
new: 3.0
path: .spaces[1].metrics.halstead.vocabulary
old: 20.0
new: 7.0
path: .spaces[1].metrics.halstead.effort
old: 816.8444099337116
new: 44.91767875292167
path: .spaces[1].metrics.halstead.length
old: 33.0
new: 8.0
path: .spaces[1].metrics.halstead.estimated_program_length
old: 66.58307281799108
new: 12.754887502163468
path: .spaces[1].metrics.halstead.N1
old: 19.0
new: 5.0
path: .spaces[1].metrics.loc.sloc
old: 6.0
new: 1.0
path: .spaces[1].metrics.loc.ploc
old: 6.0
new: 1.0
path: .spaces[1].metrics.loc.lloc
old: 1.0
new: 0.0
path: .spaces[1].metrics.cyclomatic.average
old: 2.0
new: 1.0
path: .spaces[1].metrics.cyclomatic.sum
old: 2.0
new: 1.0

### Code

    nsDirectoryService::nsDirectoryService() : mHashtable(128) {}

## Minimal test - lines (126, 134)

path: .spaces[7].metrics.halstead.purity_ratio
old: 2.0003304758007463
new: 1.694196243500611
path: .spaces[7].metrics.halstead.bugs
old: 0.04054083029586902
new: 0.04696265011623211
path: .spaces[7].metrics.halstead.effort
old: 1341.2842983942608
new: 1672.2868569889863
path: .spaces[7].metrics.halstead.time
old: 74.51579435523671
new: 92.90482538827705
path: .spaces[7].metrics.halstead.estimated_program_length
old: 98.01619331423656
new: 76.2388309575275
path: .spaces[7].metrics.halstead.length
old: 49.0
new: 45.0
path: .spaces[7].metrics.halstead.N1
old: 27.0
new: 25.0
path: .spaces[7].metrics.halstead.N2
old: 22.0
new: 20.0
path: .spaces[7].metrics.halstead.n1
old: 9.0
new: 10.0
path: .spaces[7].metrics.halstead.difficulty
old: 5.823529411764706
new: 8.333333333333334
path: .spaces[7].metrics.halstead.level
old: 0.1717171717171717
new: 0.12
path: .spaces[7].metrics.halstead.n2
old: 17.0
new: 12.0
path: .spaces[7].metrics.halstead.vocabulary
old: 26.0
new: 22.0
path: .spaces[7].metrics.halstead.volume
old: 230.3215461889135
new: 200.67442283867837
path: .spaces[7].metrics.mi.mi_visual_studio
old: 60.607496790208955
new: 62.79310295087826
path: .spaces[7].metrics.mi.mi_sei
old: 73.92017881986901
new: 79.41390769883456
path: .spaces[7].metrics.mi.mi_original
old: 103.63881951125732
new: 107.37620604600184
path: .spaces[7].metrics.loc.blank
old: 0.0
new: 1.0
path: .spaces[7].metrics.loc.sloc
old: 11.0
new: 9.0
path: .spaces[7].metrics.loc.lloc
old: 2.0
new: 0.0
path: .spaces[7].metrics.loc.ploc
old: 11.0
new: 8.0
path: .spaces[7].metrics.cyclomatic.sum
old: 1.0
new: 2.0

### Code

    struct MOZ_STACK_CLASS FileData {
      FileData(const char* aProperty, const nsIID& aUUID)
          : property(aProperty), data(nullptr), persistent(true), uuid(aUUID) {}

      const char* property;
      nsCOMPtr data;
      bool persistent;
      const nsIID& uuid;
    };

## Minimal test - lines (44, 67)

path: .spaces[0].metrics.mi.mi_visual_studio
old: 30.51693902318923
new: 50.85565530295849
path: .spaces[0].metrics.mi.mi_original
old: 52.18396572965359
new: 86.96317056805901
path: .spaces[0].metrics.mi.mi_sei
old: 33.66801876847969
new: 71.9941440306273
path: .spaces[0].metrics.cyclomatic.average
old: 2.0
new: 6.0
path: .spaces[0].metrics.cyclomatic.sum
old: 12.0
new: 6.0
path: .spaces[0].metrics.nexits.average
old: 0.4
new: 4.0
path: .spaces[0].metrics.nexits.sum
old: 2.0
new: 4.0
path: .spaces[0].metrics.nom.functions
old: 5.0
new: 1.0
path: .spaces[0].metrics.nom.total
old: 5.0
new: 1.0
path: .spaces[0].metrics.loc.cloc
old: 24.0
new: 2.0
path: .spaces[0].metrics.loc.blank
old: 11.0
new: 2.0
path: .spaces[0].metrics.loc.ploc
old: 77.0
new: 20.0
path: .spaces[0].metrics.loc.lloc
old: 19.0
new: 10.0
path: .spaces[0].metrics.loc.sloc
old: 112.0
new: 24.0
path: .spaces[0].metrics.cognitive.average
old: 1.0
new: 8.0
path: .spaces[0].metrics.cognitive.sum
old: 5.0
new: 8.0
path: .spaces[0].metrics.nargs.sum
old: 11.0
new: 1.0
path: .spaces[0].metrics.nargs.average
old: 2.2
new: 1.0
path: .spaces[0].metrics.halstead.n1
old: 18.0
new: 12.0
path: .spaces[0].metrics.halstead.n2
old: 53.0
new: 19.0
path: .spaces[0].metrics.halstead.level
old: 0.044953350296861753
new: 0.1021505376344086
path: .spaces[0].metrics.halstead.volume
old: 2035.5662965560496
new: 401.2899011413369
path: .spaces[0].metrics.halstead.bugs
old: 0.4234747659157264
new: 0.08298962351539327
path: .spaces[0].metrics.halstead.N2
old: 131.0
new: 31.0
path: .spaces[0].metrics.halstead.difficulty
old: 22.245283018867923
new: 9.789473684210526
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.14392276168523
new: 1.527532997087432
path: .spaces[0].metrics.halstead.estimated_program_length
old: 378.63843411781113
new: 123.730172764082
path: .spaces[0].metrics.halstead.effort
old: 45281.74837055816
new: 3928.416926962561
path: .spaces[0].metrics.halstead.time
old: 2515.6526872532313
new: 218.24538483125335
path: .spaces[0].metrics.halstead.length
old: 331.0
new: 81.0
path: .spaces[0].metrics.halstead.vocabulary
old: 71.0
new: 31.0
path: .spaces[0].metrics.halstead.N1
old: 200.0
new: 50.0

### Code

    nsresult nsDirectoryService::GetCurrentProcessDirectory(nsIFile** aFile)
    //----------------------------------------------------------------------------------------
    {
      if (NS_WARN_IF(!aFile)) {
        return NS_ERROR_INVALID_ARG;
      }
      *aFile = nullptr;

      //  Set the component registry location:
      if (!gService) {
        return NS_ERROR_FAILURE;
      }

      if (!mXCurProcD) {
        nsCOMPtr file;
        if (NS_SUCCEEDED(BinaryPath::GetFile(getter_AddRefs(file)))) {
          nsresult rv = file->GetParent(getter_AddRefs(mXCurProcD));
          if (NS_FAILED(rv)) {
            return rv;
          }
        }
      }
      return mXCurProcD->Clone(aFile);
    }  // GetCurrentProcessDirectory()

## Minimal test - lines (300, 307)

path: .spaces[14].metrics.nargs.average
old: 2.0
new: 1.0
path: .spaces[14].metrics.nargs.sum
old: 2.0
new: 1.0
path: .spaces[14].metrics.nexits.average
old: 0.0
new: 2.0
path: .spaces[14].metrics.nexits.sum
old: 0.0
new: 2.0
path: .spaces[14].metrics.mi.mi_original
old: 103.21286473689004
new: 113.11843642915392
path: .spaces[14].metrics.mi.mi_sei
old: 73.30565597924634
new: 87.69819499624998
path: .spaces[14].metrics.mi.mi_visual_studio
old: 60.35840043092984
new: 66.15113241470989
path: .spaces[14].metrics.cognitive.average
old: 0.0
new: 1.0
path: .spaces[14].metrics.cognitive.sum
old: 0.0
new: 1.0
path: .spaces[14].metrics.halstead.estimated_program_length
old: 108.27793097483524
new: 48.18080946738404
path: .spaces[14].metrics.halstead.difficulty
old: 6.388888888888889
new: 5.785714285714286
path: .spaces[14].metrics.halstead.length
old: 52.0
new: 24.0
path: .spaces[14].metrics.halstead.level
old: 0.15652173913043477
new: 0.1728395061728395
path: .spaces[14].metrics.halstead.N2
old: 23.0
new: 9.0
path: .spaces[14].metrics.halstead.effort
old: 1597.110135216915
new: 555.4285714285714
path: .spaces[14].metrics.halstead.vocabulary
old: 28.0
new: 16.0
path: .spaces[14].metrics.halstead.n2
old: 18.0
new: 7.0
path: .spaces[14].metrics.halstead.time
old: 88.72834084538417
new: 30.857142857142858
path: .spaces[14].metrics.halstead.N1
old: 29.0
new: 15.0
path: .spaces[14].metrics.halstead.n1
old: 10.0
new: 9.0
path: .spaces[14].metrics.halstead.volume
old: 249.9824559469954
new: 96.0
path: .spaces[14].metrics.halstead.bugs
old: 0.04554443537780877
new: 0.022523241290852
path: .spaces[14].metrics.halstead.purity_ratio
old: 2.082267903362216
new: 2.0075337278076684
path: .spaces[14].metrics.cyclomatic.average
old: 1.0
new: 2.0
path: .spaces[14].metrics.cyclomatic.sum
old: 1.0
new: 2.0
path: .spaces[14].metrics.loc.blank
old: 0.0
new: 1.0
path: .spaces[14].metrics.loc.lloc
old: 2.0
new: 4.0
path: .spaces[14].metrics.loc.ploc
old: 11.0
new: 7.0
path: .spaces[14].metrics.loc.sloc
old: 11.0
new: 8.0

### Code

    nsDirectoryService::UnregisterProvider(nsIDirectoryServiceProvider* aProv) {
      if (!aProv) {
        return NS_ERROR_FAILURE;
      }

      mProviders.RemoveElement(aProv);
      return NS_OK;
    }

## Minimal test - lines (176, 221)

path: .spaces[9].metrics.loc.ploc
old: 6.0
new: 37.0
path: .spaces[9].metrics.loc.cloc
old: 0.0
new: 3.0
path: .spaces[9].metrics.loc.blank
old: 0.0
new: 6.0
path: .spaces[9].metrics.loc.sloc
old: 6.0
new: 46.0
path: .spaces[9].metrics.loc.lloc
old: 2.0
new: 21.0
path: .spaces[9].metrics.halstead.purity_ratio
old: 1.721450735675906
new: 1.2607150047494775
path: .spaces[9].metrics.halstead.effort
old: 567.1098001961544
new: 38739.253859872966
path: .spaces[9].metrics.halstead.estimated_program_length
old: 58.529325012980806
new: 297.52874112087676
path: .spaces[9].metrics.halstead.difficulty
old: 4.0
new: 27.789473684210527
path: .spaces[9].metrics.halstead.length
old: 34.0
new: 236.0
path: .spaces[9].metrics.halstead.n2
old: 12.0
new: 38.0
path: .spaces[9].metrics.halstead.time
old: 31.50610001089747
new: 2152.1807699929427
path: .spaces[9].metrics.halstead.bugs
old: 0.022837935752198977
new: 0.3816332856753212
path: .spaces[9].metrics.halstead.volume
old: 141.7774500490386
new: 1394.0261805636103
path: .spaces[9].metrics.halstead.vocabulary
old: 18.0
new: 60.0
path: .spaces[9].metrics.halstead.N2
old: 16.0
new: 96.0
path: .spaces[9].metrics.halstead.N1
old: 18.0
new: 140.0
path: .spaces[9].metrics.halstead.level
old: 0.25
new: 0.03598484848484848
path: .spaces[9].metrics.halstead.n1
old: 6.0
new: 22.0
path: .spaces[9].metrics.nexits.sum
old: 0.0
new: 5.0
path: .spaces[9].metrics.nexits.average
old: 0.0
new: 5.0
path: .spaces[9].metrics.mi.mi_original
old: 115.98135200850813
new: 69.2582622422883
path: .spaces[9].metrics.mi.mi_sei
old: 91.72668924566358
new: 44.40347906158277
path: .spaces[9].metrics.mi.mi_visual_studio
old: 67.82535205175913
new: 40.50190774402824
path: .spaces[9].metrics.nargs.sum
old: 2.0
new: 3.0
path: .spaces[9].metrics.nargs.average
old: 2.0
new: 3.0
path: .spaces[9].metrics.cognitive.sum
old: 0.0
new: 11.0
path: .spaces[9].metrics.cognitive.average
old: 0.0
new: 11.0
path: .spaces[9].metrics.cyclomatic.sum
old: 1.0
new: 9.0
path: .spaces[9].metrics.cyclomatic.average
old: 1.0
new: 9.0

### Code

    nsDirectoryService::Get(const char* aProp, const nsIID& aUuid, void** aResult) {
      if (NS_WARN_IF(!aProp)) {
        return NS_ERROR_INVALID_ARG;
      }

      MOZ_ASSERT(NS_IsMainThread(), "Do not call dirsvc::get on non-main threads!");

      nsDependentCString key(aProp);

      nsCOMPtr cachedFile = mHashtable.Get(key);

      if (cachedFile) {
        nsCOMPtr cloneFile;
        cachedFile->Clone(getter_AddRefs(cloneFile));
        return cloneFile->QueryInterface(aUuid, aResult);
      }

      // it is not one of our defaults, lets check any providers
      FileData fileData(aProp, aUuid);

      for (int32_t i = mProviders.Length() - 1; i >= 0; i--) {
        if (!FindProviderFile(mProviders[i], &fileData)) {
          break;
        }
      }
      if (fileData.data) {
        if (fileData.persistent) {
          Set(aProp, static_cast(fileData.data.get()));
        }
        nsresult rv = (fileData.data)->QueryInterface(aUuid, aResult);
        fileData.data = nullptr;  // AddRef occurs in FindProviderFile()
        return rv;
      }

      FindProviderFile(static_cast(this), &fileData);
      if (fileData.data) {
        if (fileData.persistent) {
          Set(aProp, static_cast(fileData.data.get()));
        }
        nsresult rv = (fileData.data)->QueryInterface(aUuid, aResult);
        fileData.data = nullptr;  // AddRef occurs in FindProviderFile()
        return rv;
      }

      return NS_ERROR_FAILURE;
    }

## Minimal test - lines (277, 297)

path: .spaces[13].metrics.mi.mi_visual_studio
old: 65.16068139235622
new: 52.32930863486727
path: .spaces[13].metrics.mi.mi_original
old: 111.42476518092914
new: 89.48311776562304
path: .spaces[13].metrics.mi.mi_sei
old: 111.19013900177144
new: 53.80327768935253
path: .spaces[13].metrics.loc.blank
old: 0.0
new: 3.0
path: .spaces[13].metrics.loc.lloc
old: 2.0
new: 6.0
path: .spaces[13].metrics.loc.sloc
old: 8.0
new: 21.0
path: .spaces[13].metrics.loc.ploc
old: 7.0
new: 18.0
path: .spaces[13].metrics.loc.cloc
old: 1.0
new: 0.0
path: .spaces[13].metrics.nargs.sum
old: 2.0
new: 0.0
path: .spaces[13].metrics.nargs.average
old: 2.0
new: 0.0
path: .spaces[13].metrics.cognitive.sum
old: 0.0
new: 2.0
path: .spaces[13].metrics.cognitive.average
old: 0.0
new: 2.0
path: .spaces[13].metrics.nexits.sum
old: 0.0
new: 1.0
path: .spaces[13].metrics.nexits.average
old: 0.0
new: 1.0
path: .spaces[13].metrics.cyclomatic.average
old: 1.0
new: 4.0
path: .spaces[13].metrics.cyclomatic.sum
old: 1.0
new: 4.0
path: .spaces[13].metrics.halstead.estimated_program_length
old: 53.5635228093372
new: 161.72553417960972
path: .spaces[13].metrics.halstead.vocabulary
old: 17.0
new: 38.0
path: .spaces[13].metrics.halstead.N1
old: 18.0
new: 46.0
path: .spaces[13].metrics.halstead.n2
old: 11.0
new: 21.0
path: .spaces[13].metrics.halstead.bugs
old: 0.023881756713922776
new: 0.10135226028117868
path: .spaces[13].metrics.halstead.effort
old: 606.4308506291412
new: 5301.906196439005
path: .spaces[13].metrics.halstead.length
old: 34.0
new: 78.0
path: .spaces[13].metrics.halstead.level
old: 0.22916666666666669
new: 0.07720588235294118
path: .spaces[13].metrics.halstead.time
old: 33.69060281273007
new: 294.55034424661136
path: .spaces[13].metrics.halstead.volume
old: 138.97373660251154
new: 409.3383460485997
path: .spaces[13].metrics.halstead.purity_ratio
old: 1.5753977296863884
new: 2.0734042843539706
path: .spaces[13].metrics.halstead.N2
old: 16.0
new: 32.0
path: .spaces[13].metrics.halstead.n1
old: 6.0
new: 17.0
path: .spaces[13].metrics.halstead.difficulty
old: 4.363636363636363
new: 12.952380952380953

### Code

    void nsDirectoryService::RegisterCategoryProviders() {
      nsCOMPtr catman(
          do_GetService(NS_CATEGORYMANAGER_CONTRACTID));
      if (!catman) {
        return;
      }

      nsCOMPtr entries;
      catman->EnumerateCategory(XPCOM_DIRECTORY_PROVIDER_CATEGORY,
                                getter_AddRefs(entries));

      for (auto& categoryEntry : SimpleEnumerator(entries)) {
        nsAutoCString contractID;
        categoryEntry->GetValue(contractID);

        if (nsCOMPtr provider =
                do_GetService(contractID.get())) {
          RegisterProvider(provider);
        }
      }
    }