# Global Metrics

path: .metrics.loc.blank
old: 0.0
new: 9.0
path: .metrics.loc.ploc
old: 1.0
new: 19.0
path: .metrics.loc.cloc
old: 0.0
new: 12.0
path: .metrics.loc.sloc
old: 1.0
new: 40.0
path: .metrics.nom.total
old: 1.0
new: 2.0
path: .metrics.nom.functions
old: 1.0
new: 2.0
path: .metrics.mi.mi_original
old: 155.05360502288067
new: 83.04302239935832
path: .metrics.mi.mi_sei
old: 148.19785476526218
new: 82.12941326192751
path: .metrics.mi.mi_visual_studio
old: 90.67462282039806
new: 48.5631709937768
path: .metrics.halstead.level
old: 0.4
new: 0.16883116883116883
path: .metrics.halstead.time
old: 2.7293728408893374
new: 59.73126264472535
path: .metrics.halstead.vocabulary
old: 7.0
new: 20.0
path: .metrics.halstead.N2
old: 2.0
new: 22.0
path: .metrics.halstead.length
old: 7.0
new: 42.0
path: .metrics.halstead.effort
old: 49.12871113600807
new: 1075.1627276050565
path: .metrics.halstead.volume
old: 19.651484454403228
new: 181.52097998526924
path: .metrics.halstead.estimated_program_length
old: 13.60964047443681
new: 67.75720079023742
path: .metrics.halstead.n1
old: 5.0
new: 7.0
path: .metrics.halstead.n2
old: 2.0
new: 13.0
path: .metrics.halstead.N1
old: 5.0
new: 20.0
path: .metrics.halstead.bugs
old: 0.004471319041702271
new: 0.034983362118148786
path: .metrics.halstead.difficulty
old: 2.5
new: 5.923076923076923
path: .metrics.halstead.purity_ratio
old: 1.944234353490973
new: 1.6132666854818434
path: .metrics.nargs.average
old: 0.0
new: 0.5
path: .metrics.nargs.sum
old: 0.0
new: 1.0
path: .metrics.cyclomatic.sum
old: 2.0
new: 5.0
path: .metrics.nexits.sum
old: 1.0
new: 0.0
path: .metrics.nexits.average
old: 1.0
new: 0.0

# Spaces Data

## Minimal test - lines (14, 38)

path: .spaces[0].metrics.loc.cloc
old: 0.0
new: 5.0
path: .spaces[0].metrics.loc.ploc
old: 1.0
new: 14.0
path: .spaces[0].metrics.loc.sloc
old: 1.0
new: 25.0
path: .spaces[0].metrics.loc.blank
old: 0.0
new: 6.0
path: .spaces[0].metrics.halstead.N1
old: 5.0
new: 20.0
path: .spaces[0].metrics.halstead.estimated_program_length
old: 13.60964047443681
new: 52.87076540327685
path: .spaces[0].metrics.halstead.length
old: 7.0
new: 38.0
path: .spaces[0].metrics.halstead.vocabulary
old: 7.0
new: 17.0
path: .spaces[0].metrics.halstead.level
old: 0.4
new: 0.15873015873015872
path: .spaces[0].metrics.halstead.effort
old: 49.12871113600807
new: 978.5386041953312
path: .spaces[0].metrics.halstead.n1
old: 5.0
new: 7.0
path: .spaces[0].metrics.halstead.n2
old: 2.0
new: 10.0
path: .spaces[0].metrics.halstead.volume
old: 19.651484454403228
new: 155.32358796751288
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.944234353490973
new: 1.3913359316651803
path: .spaces[0].metrics.halstead.time
old: 2.7293728408893374
new: 54.36325578862951
path: .spaces[0].metrics.halstead.bugs
old: 0.004471319041702271
new: 0.032854691053915336
path: .spaces[0].metrics.halstead.difficulty
old: 2.5
new: 6.3
path: .spaces[0].metrics.halstead.N2
old: 2.0
new: 18.0
path: .spaces[0].metrics.cyclomatic.sum
old: 1.0
new: 4.0
path: .spaces[0].metrics.mi.mi_original
old: 155.2836050228807
new: 91.69755649070446
path: .spaces[0].metrics.mi.mi_sei
old: 148.4278547652622
new: 88.93352798923027
path: .spaces[0].metrics.mi.mi_visual_studio
old: 90.80912574437468
new: 53.62430204134764
path: .spaces[0].metrics.nom.total
old: 1.0
new: 2.0
path: .spaces[0].metrics.nom.functions
old: 1.0
new: 2.0
path: .spaces[0].metrics.nargs.average
old: 0.0
new: 0.5
path: .spaces[0].metrics.nargs.sum
old: 0.0
new: 1.0
path: .spaces[0].metrics.nexits.average
old: 1.0
new: 0.0
path: .spaces[0].metrics.nexits.sum
old: 1.0
new: 0.0

### Code

    namespace mozilla {

    /**
     * A generic factory which uses a constructor function to create instances.
     * This class is intended for use by the component manager and the generic
     * module.
     */
    class GenericFactory final : public nsIFactory {
      ~GenericFactory() {}

     public:
      typedef Module::ConstructorProcPtr ConstructorProcPtr;

      NS_DECL_THREADSAFE_ISUPPORTS
      NS_DECL_NSIFACTORY

      explicit GenericFactory(ConstructorProcPtr aCtor) : mCtor(aCtor) {
        NS_ASSERTION(mCtor, "GenericFactory with no constructor");
      }

     private:
      ConstructorProcPtr mCtor;
    };

    }  // namespace mozilla