Global Metrics
path: .metrics.halstead.n2
old: 15.0
new: 59.0
path: .metrics.halstead.N1
old: 61.0
new: 123.0
path: .metrics.halstead.purity_ratio
old: 1.026048800672711
new: 1.906566232481691
path: .metrics.halstead.volume
old: 499.9649118939908
new: 1299.8631573648038
path: .metrics.halstead.time
old: 517.5562699050756
new: 745.4017540820768
path: .metrics.halstead.n1
old: 13.0
new: 14.0
path: .metrics.halstead.length
old: 104.0
new: 210.0
path: .metrics.halstead.level
old: 0.05366726296958856
new: 0.09688013136289
path: .metrics.halstead.difficulty
old: 18.633333333333333
new: 10.322033898305085
path: .metrics.halstead.N2
old: 43.0
new: 87.0
path: .metrics.halstead.estimated_program_length
old: 106.70907526996196
new: 400.3789088211551
path: .metrics.halstead.bugs
old: 0.14758157181340625
new: 0.18821490909423255
path: .metrics.halstead.effort
old: 9316.012858291362
new: 13417.231573477382
path: .metrics.halstead.vocabulary
old: 28.0
new: 73.0
path: .metrics.loc.cloc
old: 3.0
new: 17.0
path: .metrics.loc.ploc
old: 19.0
new: 64.0
path: .metrics.loc.blank
old: 4.0
new: 21.0
path: .metrics.loc.sloc
old: 26.0
new: 102.0
path: .metrics.loc.lloc
old: 9.0
new: 5.0
path: .metrics.mi.mi_visual_studio
old: 49.56329760313678
new: 32.63237789368927
path: .metrics.mi.mi_sei
old: 72.19538148302703
new: 35.68351632999455
path: .metrics.mi.mi_original
old: 84.75323890136389
new: 55.80136619820864
path: .metrics.cyclomatic.sum
old: 5.0
new: 13.0
path: .metrics.nargs.average
old: 0.75
new: 0.0
path: .metrics.nargs.sum
old: 3.0
new: 0.0
path: .metrics.nexits.average
old: 0.0
new: 1.0
path: .metrics.nexits.sum
old: 0.0
new: 5.0
path: .metrics.nom.total
old: 4.0
new: 5.0
path: .metrics.nom.functions
old: 4.0
new: 5.0
Spaces Data
Minimal test - lines (14, 14)
path: .spaces[0].metrics.nexits.average
old: 0.0
new: null
path: .spaces[0].metrics.nom.functions
old: 1.0
new: 0.0
path: .spaces[0].metrics.nom.total
old: 1.0
new: 0.0
path: .spaces[0].metrics.loc.ploc
old: 4.0
new: 1.0
path: .spaces[0].metrics.loc.sloc
old: 4.0
new: 1.0
path: .spaces[0].metrics.loc.lloc
old: 1.0
new: 0.0
path: .spaces[0].metrics.nargs.sum
old: 2.0
new: 0.0
path: .spaces[0].metrics.nargs.average
old: 2.0
new: null
path: .spaces[0].metrics.cognitive.average
old: 0.0
new: null
path: .spaces[0].metrics.mi.mi_visual_studio
old: 72.60888811363898
new: null
path: .spaces[0].metrics.mi.mi_sei
old: 103.52771346566632
new: null
path: .spaces[0].metrics.mi.mi_original
old: 124.16119867432266
new: null
path: .spaces[0].metrics.halstead.estimated_program_length
old: 48.0
new: null
path: .spaces[0].metrics.halstead.bugs
old: 0.022969035790571857
new: 0.0
path: .spaces[0].metrics.halstead.n1
old: 8.0
new: 0.0
path: .spaces[0].metrics.halstead.difficulty
old: 5.5
new: 0.0
path: .spaces[0].metrics.halstead.N1
old: 15.0
new: 0.0
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.8461538461538465
new: null
path: .spaces[0].metrics.halstead.time
old: 31.77777777777778
new: 0.0
path: .spaces[0].metrics.halstead.level
old: 0.18181818181818185
new: null
path: .spaces[0].metrics.halstead.N2
old: 11.0
new: 1.0
path: .spaces[0].metrics.halstead.length
old: 26.0
new: 1.0
path: .spaces[0].metrics.halstead.effort
old: 572.0
new: 0.0
path: .spaces[0].metrics.halstead.vocabulary
old: 16.0
new: 1.0
path: .spaces[0].metrics.halstead.n2
old: 8.0
new: 1.0
path: .spaces[0].metrics.halstead.volume
old: 104.0
new: 0.0
Code
class nsIWidget;
Minimal test - lines (17, 100)
path: .spaces[2].metrics.halstead.estimated_program_length
old: 21.651484454403228
new: 364.06689402563376
path: .spaces[2].metrics.halstead.volume
old: 28.52932501298081
new: 1217.4925682500675
path: .spaces[2].metrics.halstead.vocabulary
old: 9.0
new: 68.0
path: .spaces[2].metrics.halstead.length
old: 9.0
new: 200.0
path: .spaces[2].metrics.halstead.purity_ratio
old: 2.405720494933692
new: 1.8203344701281687
path: .spaces[2].metrics.halstead.time
old: 5.547368752524046
new: 692.6680969570858
path: .spaces[2].metrics.halstead.n1
old: 7.0
new: 14.0
path: .spaces[2].metrics.halstead.difficulty
old: 3.5
new: 10.24074074074074
path: .spaces[2].metrics.halstead.bugs
old: 0.007174392059877131
new: 0.17922993152483677
path: .spaces[2].metrics.halstead.N1
old: 7.0
new: 121.0
path: .spaces[2].metrics.halstead.level
old: 0.2857142857142857
new: 0.0976491862567812
path: .spaces[2].metrics.halstead.effort
old: 99.85263754543284
new: 12468.025745227544
path: .spaces[2].metrics.halstead.N2
old: 2.0
new: 79.0
path: .spaces[2].metrics.halstead.n2
old: 2.0
new: 54.0
path: .spaces[2].metrics.mi.mi_original
old: 153.34515096830847
new: 59.97711435441505
path: .spaces[2].metrics.mi.mi_sei
old: 145.63125671373976
new: 38.43125918841984
path: .spaces[2].metrics.mi.mi_visual_studio
old: 89.67552688205174
new: 35.074335879774885
path: .spaces[2].metrics.nom.functions
old: 1.0
new: 5.0
path: .spaces[2].metrics.nom.total
old: 1.0
new: 5.0
path: .spaces[2].metrics.loc.ploc
old: 1.0
new: 55.0
path: .spaces[2].metrics.loc.sloc
old: 1.0
new: 84.0
path: .spaces[2].metrics.loc.cloc
old: 0.0
new: 11.0
path: .spaces[2].metrics.loc.lloc
old: 1.0
new: 5.0
path: .spaces[2].metrics.loc.blank
old: 0.0
new: 18.0
path: .spaces[2].metrics.cyclomatic.sum
old: 1.0
new: 10.0
path: .spaces[2].metrics.nexits.average
old: 0.0
new: 1.0
path: .spaces[2].metrics.nexits.sum
old: 0.0
new: 5.0
Code
namespace mozilla {
namespace widget {
class PlatformCompositorWidgetDelegate : public CompositorWidgetDelegate {
public:
virtual void NotifyClientSizeChanged(
const LayoutDeviceIntSize& aClientSize) = 0;
// CompositorWidgetDelegate Overrides
PlatformCompositorWidgetDelegate* AsPlatformSpecificDelegate() override {
return this;
}
};
class GtkCompositorWidgetInitData;
class GtkCompositorWidget : public CompositorWidget,
public PlatformCompositorWidgetDelegate {
public:
GtkCompositorWidget(const GtkCompositorWidgetInitData& aInitData,
const layers::CompositorOptions& aOptions,
nsWindow* aWindow /* = nullptr*/);
~GtkCompositorWidget();
// CompositorWidget Overrides
already_AddRefed StartRemoteDrawing() override;
void EndRemoteDrawing() override;
already_AddRefed StartRemoteDrawingInRegion(
const LayoutDeviceIntRegion& aInvalidRegion,
layers::BufferMode* aBufferMode) override;
void EndRemoteDrawingInRegion(
gfx::DrawTarget* aDrawTarget,
const LayoutDeviceIntRegion& aInvalidRegion) override;
uintptr_t GetWidgetKey() override;
LayoutDeviceIntSize GetClientSize() override;
nsIWidget* RealWidget() override;
GtkCompositorWidget* AsX11() override { return this; }
CompositorWidgetDelegate* AsDelegate() override { return this; }
EGLNativeWindowType GetEGLNativeWindow();
int32_t GetDepth();
LayoutDeviceIntRegion GetTransparentRegion() override;
#if defined(MOZ_X11)
Display* XDisplay() const { return mXDisplay; }
Window XWindow() const { return mXWindow; }
#endif
#if defined(MOZ_WAYLAND)
void SetEGLNativeWindowSize(const LayoutDeviceIntSize& aEGLWindowSize);
#endif
// PlatformCompositorWidgetDelegate Overrides
void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override;
protected:
nsWindow* mWidget;
private:
// This field is written to on the main thread and read from on the compositor
// or renderer thread. During window resizing, this is subject to a (largely
// benign) read/write race, see bug 1665726. The DataMutex doesn't prevent the
// read/write race, but it does make it Not Undefined Behaviour, and also
// ensures we only ever use the old or new size, and not some weird synthesis
// of the two.
DataMutex mClientSize;
WindowSurfaceProvider mProvider;
#if defined(MOZ_X11)
Display* mXDisplay = {};
Window mXWindow = {};
#endif
int32_t mDepth = {};
};
} // namespace widget
} // namespace mozilla
Minimal test - lines (15, 15)
path: .spaces[1].metrics.nexits.average
old: 0.0
new: null
path: .spaces[1].metrics.nargs.average
old: 0.0
new: null
path: .spaces[1].metrics.mi.mi_visual_studio
old: 79.6369888417524
new: null
path: .spaces[1].metrics.mi.mi_sei
old: 120.866097840779
new: null
path: .spaces[1].metrics.mi.mi_original
old: 136.1792509193966
new: null
path: .spaces[1].metrics.loc.ploc
old: 3.0
new: 1.0
path: .spaces[1].metrics.loc.lloc
old: 1.0
new: 0.0
path: .spaces[1].metrics.loc.sloc
old: 3.0
new: 1.0
path: .spaces[1].metrics.cognitive.average
old: 0.0
new: null
path: .spaces[1].metrics.halstead.time
old: 5.2637904788580085
new: 0.0
path: .spaces[1].metrics.halstead.n2
old: 2.0
new: 1.0
path: .spaces[1].metrics.halstead.difficulty
old: 3.75
new: 0.0
path: .spaces[1].metrics.halstead.N2
old: 3.0
new: 1.0
path: .spaces[1].metrics.halstead.bugs
old: 0.006927759642225941
new: 0.0
path: .spaces[1].metrics.halstead.purity_ratio
old: 1.5121822749374234
new: null
path: .spaces[1].metrics.halstead.level
old: 0.26666666666666666
new: null
path: .spaces[1].metrics.halstead.N1
old: 6.0
new: 0.0
path: .spaces[1].metrics.halstead.effort
old: 94.74822861944416
new: 0.0
path: .spaces[1].metrics.halstead.length
old: 9.0
new: 1.0
path: .spaces[1].metrics.halstead.n1
old: 5.0
new: 0.0
path: .spaces[1].metrics.halstead.estimated_program_length
old: 13.60964047443681
new: null
path: .spaces[1].metrics.halstead.vocabulary
old: 7.0
new: 1.0
path: .spaces[1].metrics.halstead.volume
old: 25.26619429851844
new: 0.0
path: .spaces[1].metrics.nom.total
old: 1.0
new: 0.0
path: .spaces[1].metrics.nom.functions
old: 1.0
new: 0.0
Code
class nsWindow;