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