Global Metrics

path: .metrics.halstead.effort
old: 616408.1462487656
new: 5165.881458046691

path: .metrics.halstead.N2
old: 720.0
new: 58.0

path: .metrics.halstead.level
old: 0.023045267489711932
new: 0.13479623824451412

path: .metrics.halstead.n2
old: 224.0
new: 43.0

path: .metrics.halstead.difficulty
old: 43.392857142857146
new: 7.4186046511627906

path: .metrics.halstead.n1
old: 27.0
new: 11.0

path: .metrics.halstead.time
old: 34244.897013820315
new: 286.99341433592724

path: .metrics.halstead.length
old: 1782.0
new: 121.0

path: .metrics.halstead.purity_ratio
old: 1.0534396549378882
new: 2.2428358037785165

path: .metrics.halstead.bugs
old: 2.4142986507117414
new: 0.099611245271575

path: .metrics.halstead.estimated_program_length
old: 1877.2294650993167
new: 271.3831322572005

path: .metrics.halstead.N1
old: 1062.0
new: 63.0

path: .metrics.halstead.vocabulary
old: 251.0
new: 54.0

path: .metrics.halstead.volume
old: 14205.290613140276
new: 696.3413877617796

path: .metrics.mi.mi_visual_studio
old: 0.0
new: 37.6741403436779

path: .metrics.mi.mi_original
old: -6.635652726408821
new: 64.42277998768921

path: .metrics.mi.mi_sei
old: -44.992074153510785
new: 56.04243235972881

path: .metrics.nom.total
old: 70.0
new: 0.0

path: .metrics.nom.functions
old: 70.0
new: 0.0

path: .metrics.nexits.average
old: 0.8714285714285714
new: null

path: .metrics.nexits.sum
old: 61.0
new: 0.0

path: .metrics.cognitive.average
old: 0.32857142857142857
new: null

path: .metrics.cognitive.sum
old: 23.0
new: 0.0

path: .metrics.loc.blank
old: 74.0
new: 10.0

path: .metrics.loc.cloc
old: 74.0
new: 26.0

path: .metrics.loc.lloc
old: 104.0
new: 0.0

path: .metrics.loc.sloc
old: 496.0
new: 82.0

path: .metrics.loc.ploc
old: 348.0
new: 46.0

path: .metrics.cyclomatic.average
old: 1.4
new: 1.0

path: .metrics.cyclomatic.sum
old: 119.0
new: 5.0

path: .metrics.nargs.sum
old: 29.0
new: 0.0

path: .metrics.nargs.average
old: 0.4142857142857143
new: null

Spaces Data

Minimal test - lines (25, 80)

path: .spaces[1].metrics.nexits.average
old: 1.0
new: null

path: .spaces[1].metrics.nexits.sum
old: 1.0
new: 0.0

path: .spaces[1].metrics.halstead.volume
old: 411.1982937621106
new: 611.0047736845402

path: .spaces[1].metrics.halstead.time
old: 135.50852862615008
new: 248.92787076036825

path: .spaces[1].metrics.halstead.estimated_program_length
old: 126.63682062300134
new: 224.17104785693348

path: .spaces[1].metrics.halstead.effort
old: 2439.1535152707015
new: 4480.701673686628

path: .spaces[1].metrics.halstead.n2
old: 22.0
new: 36.0

path: .spaces[1].metrics.halstead.N2
old: 29.0
new: 48.0

path: .spaces[1].metrics.halstead.difficulty
old: 5.931818181818182
new: 7.333333333333333

path: .spaces[1].metrics.halstead.level
old: 0.1685823754789272
new: 0.13636363636363638

path: .spaces[1].metrics.halstead.length
old: 83.0
new: 110.0

path: .spaces[1].metrics.halstead.vocabulary
old: 31.0
new: 47.0

path: .spaces[1].metrics.halstead.purity_ratio
old: 1.5257448267831486
new: 2.0379186168812136

path: .spaces[1].metrics.halstead.bugs
old: 0.06040017104145546
new: 0.090596085207847

path: .spaces[1].metrics.halstead.n1
old: 9.0
new: 11.0

path: .spaces[1].metrics.halstead.N1
old: 54.0
new: 62.0

path: .spaces[1].metrics.cyclomatic.sum
old: 2.0
new: 3.0

path: .spaces[1].metrics.mi.mi_sei
old: 59.84750854533611
new: 66.58769484938017

path: .spaces[1].metrics.mi.mi_visual_studio
old: 49.205502620188994
new: 41.95365952950557

path: .spaces[1].metrics.mi.mi_original
old: 84.14140948052318
new: 71.74075779545453

path: .spaces[1].metrics.nom.functions
old: 1.0
new: 0.0

path: .spaces[1].metrics.nom.total
old: 1.0
new: 0.0

path: .spaces[1].metrics.cognitive.average
old: 0.0
new: null

path: .spaces[1].metrics.loc.ploc
old: 23.0
new: 31.0

path: .spaces[1].metrics.loc.blank
old: 6.0
new: 7.0

path: .spaces[1].metrics.loc.cloc
old: 1.0
new: 18.0

path: .spaces[1].metrics.loc.lloc
old: 1.0
new: 0.0

path: .spaces[1].metrics.loc.sloc
old: 30.0
new: 56.0

path: .spaces[1].metrics.nargs.average
old: 0.0
new: null

Code

namespace mozilla {
namespace widget {

/*
 * Holds the logic for creating WindowSurface's for a GTK nsWindow.
 * The main purpose of this class is to allow sharing of logic between
 * nsWindow and GtkCompositorWidget, for when OMTC is enabled or disabled.
 */
class WindowSurfaceProvider final {
 public:
  WindowSurfaceProvider();

  /**
   * Initializes the WindowSurfaceProvider by giving it the window
   * handle and display to attach to. WindowSurfaceProvider doesn't
   * own the Display, Window, etc, and they must continue to exist
   * while WindowSurfaceProvider is used.
   */
  void Initialize(Display* aDisplay, Window aWindow, Visual* aVisual,
                  int aDepth, bool aIsShaped);

#ifdef MOZ_WAYLAND
  void Initialize(nsWindow* aWidget);
#endif

  /**
   * Releases any surfaces created by this provider.
   * This is used by GtkCompositorWidget to get rid
   * of resources before we close the display connection.
   */
  void CleanupResources();

  already_AddRefed StartRemoteDrawingInRegion(
      const LayoutDeviceIntRegion& aInvalidRegion,
      layers::BufferMode* aBufferMode);
  void EndRemoteDrawingInRegion(gfx::DrawTarget* aDrawTarget,
                                const LayoutDeviceIntRegion& aInvalidRegion);

 private:
  UniquePtr CreateWindowSurface();

  // Can we access X?
  bool mIsX11Display;
  Display* mXDisplay;
  Window mXWindow;
  Visual* mXVisual;
  int mXDepth;
  UniquePtr mWindowSurface;
#ifdef MOZ_WAYLAND
  nsWindow* mWidget;
#endif
  bool mIsShaped;
};

}  // namespace widget
}  // namespace mozilla

Minimal test - lines (26, 79)

path: .spaces[1].spaces[0].metrics.nargs.average
old: 0.0
new: null

path: .spaces[1].spaces[0].metrics.loc.sloc
old: 1.0
new: 54.0

path: .spaces[1].spaces[0].metrics.loc.ploc
old: 1.0
new: 29.0

path: .spaces[1].spaces[0].metrics.loc.cloc
old: 0.0
new: 17.0

path: .spaces[1].spaces[0].metrics.loc.lloc
old: 1.0
new: 0.0

path: .spaces[1].spaces[0].metrics.loc.blank
old: 0.0
new: 8.0

path: .spaces[1].spaces[0].metrics.nexits.average
old: 1.0
new: null

path: .spaces[1].spaces[0].metrics.nexits.sum
old: 1.0
new: 0.0

path: .spaces[1].spaces[0].metrics.nom.total
old: 1.0
new: 0.0

path: .spaces[1].spaces[0].metrics.nom.functions
old: 1.0
new: 0.0

path: .spaces[1].spaces[0].metrics.mi.mi_original
old: 153.34515096830847
new: 72.68445680740435

path: .spaces[1].spaces[0].metrics.mi.mi_sei
old: 145.63125671373976
new: 67.55580559464363

path: .spaces[1].spaces[0].metrics.mi.mi_visual_studio
old: 89.67552688205174
new: 42.50553029672769

path: .spaces[1].spaces[0].metrics.cyclomatic.sum
old: 1.0
new: 2.0

path: .spaces[1].spaces[0].metrics.halstead.level
old: 0.3333333333333333
new: 0.13539651837524178

path: .spaces[1].spaces[0].metrics.halstead.n1
old: 6.0
new: 11.0

path: .spaces[1].spaces[0].metrics.halstead.N2
old: 3.0
new: 47.0

path: .spaces[1].spaces[0].metrics.halstead.N1
old: 6.0
new: 61.0

path: .spaces[1].spaces[0].metrics.halstead.effort
old: 85.58797503894243
new: 4405.908648262849

path: .spaces[1].spaces[0].metrics.halstead.length
old: 9.0
new: 108.0

path: .spaces[1].spaces[0].metrics.halstead.n2
old: 3.0
new: 35.0

path: .spaces[1].spaces[0].metrics.halstead.purity_ratio
old: 2.2516291673878226
new: 2.014617161093371

path: .spaces[1].spaces[0].metrics.halstead.vocabulary
old: 9.0
new: 46.0

path: .spaces[1].spaces[0].metrics.halstead.difficulty
old: 3.0
new: 7.385714285714286

path: .spaces[1].spaces[0].metrics.halstead.bugs
old: 0.006473720020679235
new: 0.08958509064703908

path: .spaces[1].spaces[0].metrics.halstead.estimated_program_length
old: 20.264662506490403
new: 217.57865339808407

path: .spaces[1].spaces[0].metrics.halstead.volume
old: 28.52932501298081
new: 596.5446912541574

path: .spaces[1].spaces[0].metrics.halstead.time
old: 4.754887502163468
new: 244.77270268126935

path: .spaces[1].spaces[0].metrics.cognitive.average
old: 0.0
new: null

Code

namespace widget {

/*
 * Holds the logic for creating WindowSurface's for a GTK nsWindow.
 * The main purpose of this class is to allow sharing of logic between
 * nsWindow and GtkCompositorWidget, for when OMTC is enabled or disabled.
 */
class WindowSurfaceProvider final {
 public:
  WindowSurfaceProvider();

  /**
   * Initializes the WindowSurfaceProvider by giving it the window
   * handle and display to attach to. WindowSurfaceProvider doesn't
   * own the Display, Window, etc, and they must continue to exist
   * while WindowSurfaceProvider is used.
   */
  void Initialize(Display* aDisplay, Window aWindow, Visual* aVisual,
                  int aDepth, bool aIsShaped);

#ifdef MOZ_WAYLAND
  void Initialize(nsWindow* aWidget);
#endif

  /**
   * Releases any surfaces created by this provider.
   * This is used by GtkCompositorWidget to get rid
   * of resources before we close the display connection.
   */
  void CleanupResources();

  already_AddRefed StartRemoteDrawingInRegion(
      const LayoutDeviceIntRegion& aInvalidRegion,
      layers::BufferMode* aBufferMode);
  void EndRemoteDrawingInRegion(gfx::DrawTarget* aDrawTarget,
                                const LayoutDeviceIntRegion& aInvalidRegion);

 private:
  UniquePtr CreateWindowSurface();

  // Can we access X?
  bool mIsX11Display;
  Display* mXDisplay;
  Window mXWindow;
  Visual* mXVisual;
  int mXDepth;
  UniquePtr mWindowSurface;
#ifdef MOZ_WAYLAND
  nsWindow* mWidget;
#endif
  bool mIsShaped;
};

}  // namespace widget

Minimal test - lines (23, 23)

path: .spaces[0].metrics.nom.functions
old: 5.0
new: 0.0

path: .spaces[0].metrics.nom.total
old: 5.0
new: 0.0

path: .spaces[0].metrics.cognitive.average
old: 0.0
new: null

path: .spaces[0].metrics.nargs.average
old: 0.0
new: null

path: .spaces[0].metrics.nexits.average
old: 1.0
new: null

path: .spaces[0].metrics.nexits.sum
old: 5.0
new: 0.0

path: .spaces[0].metrics.cyclomatic.sum
old: 15.0
new: 1.0

path: .spaces[0].metrics.loc.blank
old: 4.0
new: 0.0

path: .spaces[0].metrics.loc.cloc
old: 2.0
new: 0.0

path: .spaces[0].metrics.loc.lloc
old: 8.0
new: 0.0

path: .spaces[0].metrics.loc.ploc
old: 30.0
new: 1.0

path: .spaces[0].metrics.loc.sloc
old: 36.0
new: 1.0

path: .spaces[0].metrics.mi.mi_visual_studio
old: 44.55415821010607
new: null

path: .spaces[0].metrics.mi.mi_original
old: 76.18761053928138
new: null

path: .spaces[0].metrics.mi.mi_sei
old: 53.596328203753586
new: null

path: .spaces[0].metrics.halstead.purity_ratio
old: 1.265387166891879
new: null

path: .spaces[0].metrics.halstead.time
old: 369.8782975552537
new: 0.0

path: .spaces[0].metrics.halstead.n1
old: 10.0
new: 0.0

path: .spaces[0].metrics.halstead.N2
old: 55.0
new: 1.0

path: .spaces[0].metrics.halstead.difficulty
old: 11.0
new: 0.0

path: .spaces[0].metrics.halstead.bugs
old: 0.11796857010353176
new: 0.0

path: .spaces[0].metrics.halstead.estimated_program_length
old: 149.31568569324173
new: null

path: .spaces[0].metrics.halstead.volume
old: 605.255395999506
new: 0.0

path: .spaces[0].metrics.halstead.N1
old: 63.0
new: 0.0

path: .spaces[0].metrics.halstead.length
old: 118.0
new: 1.0

path: .spaces[0].metrics.halstead.level
old: 0.09090909090909093
new: null

path: .spaces[0].metrics.halstead.effort
old: 6657.809355994566
new: 0.0

path: .spaces[0].metrics.halstead.n2
old: 25.0
new: 1.0

path: .spaces[0].metrics.halstead.vocabulary
old: 35.0
new: 1.0

Code

class nsWindow;