Global Metrics
path: .metrics.cognitive.average
old: 3.8
new: 3.2333333333333334
path: .metrics.cognitive.sum
old: 57.0
new: 291.0
path: .metrics.nexits.sum
old: 18.0
new: 189.0
path: .metrics.nexits.average
old: 1.2
new: 2.1
path: .metrics.nargs.average
old: 3.1333333333333333
new: 2.5
path: .metrics.nargs.sum
old: 47.0
new: 225.0
path: .metrics.cyclomatic.average
old: 4.125
new: 9.0
path: .metrics.cyclomatic.sum
old: 66.0
new: 783.0
path: .metrics.halstead.length
old: 1074.0
new: 16841.0
path: .metrics.halstead.time
old: 35939.27782292478
new: 1103020.7066862632
path: .metrics.halstead.N1
old: 586.0
new: 9635.0
path: .metrics.halstead.purity_ratio
old: 0.5674566376530031
new: 0.8657365766238512
path: .metrics.halstead.vocabulary
old: 104.0
new: 1419.0
path: .metrics.halstead.estimated_program_length
old: 609.4484288393254
new: 14579.869686922277
path: .metrics.halstead.volume
old: 7196.272257283533
new: 176336.36609805375
path: .metrics.halstead.effort
old: 646907.000812646
new: 19854372.72035274
path: .metrics.halstead.n2
old: 76.0
new: 1376.0
path: .metrics.halstead.difficulty
old: 89.89473684210526
new: 112.59375
path: .metrics.halstead.level
old: 0.011124121779859483
new: 0.008881487649181239
path: .metrics.halstead.n1
old: 28.0
new: 43.0
path: .metrics.halstead.N2
old: 488.0
new: 7206.0
path: .metrics.halstead.bugs
old: 2.49329297093973
new: 24.4408436195894
path: .metrics.mi.mi_sei
old: -26.15729474086335
new: -266.4136933622661
path: .metrics.mi.mi_original
old: 10.957924080136692
new: -205.876835379589
path: .metrics.mi.mi_visual_studio
old: 6.408142736922042
new: 0.0
path: .metrics.nom.total
old: 15.0
new: 90.0
path: .metrics.nom.functions
old: 15.0
new: 84.0
path: .metrics.nom.closures
old: 0.0
new: 6.0
path: .metrics.loc.cloc
old: 60.0
new: 511.0
path: .metrics.loc.lloc
old: 125.0
new: 1442.0
path: .metrics.loc.ploc
old: 271.0
new: 2993.0
path: .metrics.loc.sloc
old: 442.0
new: 3904.0
path: .metrics.loc.blank
old: 111.0
new: 400.0
Spaces Data
Minimal test - lines (306, 317)
path: .spaces[4].metrics.halstead.vocabulary
old: 13.0
new: 38.0
path: .spaces[4].metrics.halstead.effort
old: 612.792817324165
new: 6612.388666938918
path: .spaces[4].metrics.halstead.difficulty
old: 7.2
new: 13.695652173913045
path: .spaces[4].metrics.halstead.estimated_program_length
old: 35.60964047443681
new: 162.64528392343908
path: .spaces[4].metrics.halstead.bugs
old: 0.02404849242411943
new: 0.11743142398041978
path: .spaces[4].metrics.halstead.N2
old: 9.0
new: 42.0
path: .spaces[4].metrics.halstead.length
old: 23.0
new: 92.0
path: .spaces[4].metrics.halstead.time
old: 34.04404540689805
new: 367.35492594105096
path: .spaces[4].metrics.halstead.N1
old: 14.0
new: 50.0
path: .spaces[4].metrics.halstead.n1
old: 8.0
new: 15.0
path: .spaces[4].metrics.halstead.n2
old: 5.0
new: 23.0
path: .spaces[4].metrics.halstead.volume
old: 85.11011351724513
new: 482.80933123680984
path: .spaces[4].metrics.halstead.purity_ratio
old: 1.5482452380189915
new: 1.7678835209069466
path: .spaces[4].metrics.halstead.level
old: 0.1388888888888889
new: 0.07301587301587302
path: .spaces[4].metrics.nargs.average
old: 2.0
new: 3.0
path: .spaces[4].metrics.nargs.sum
old: 2.0
new: 3.0
path: .spaces[4].metrics.loc.sloc
old: 6.0
new: 12.0
path: .spaces[4].metrics.loc.ploc
old: 6.0
new: 11.0
path: .spaces[4].metrics.loc.lloc
old: 2.0
new: 6.0
path: .spaces[4].metrics.loc.blank
old: 0.0
new: 1.0
path: .spaces[4].metrics.nexits.sum
old: 0.0
new: 1.0
path: .spaces[4].metrics.nexits.average
old: 0.0
new: 1.0
path: .spaces[4].metrics.mi.mi_sei
old: 95.32506240200723
new: 66.10399679327296
path: .spaces[4].metrics.mi.mi_visual_studio
old: 69.24267723272462
new: 57.39794083526768
path: .spaces[4].metrics.mi.mi_original
old: 118.40497806795908
new: 98.15047882830774
Code
static void InflateControlRect(NSRect* rect, NSControlSize cocoaControlSize,
const float marginSet[][3][4]) {
if (!marginSet) return;
static int osIndex = yosemiteOSorlater;
size_t controlSize = EnumSizeForCocoaSize(cocoaControlSize);
const float* buttonMargins = marginSet[osIndex][controlSize];
rect->origin.x -= buttonMargins[leftMargin];
rect->origin.y -= buttonMargins[bottomMargin];
rect->size.width += buttonMargins[leftMargin] + buttonMargins[rightMargin];
rect->size.height += buttonMargins[bottomMargin] + buttonMargins[topMargin];
}
Minimal test - lines (138, 144)
path: .spaces[0].metrics.loc.lloc
old: 4.0
new: 0.0
path: .spaces[0].metrics.loc.cloc
old: 0.0
new: 1.0
path: .spaces[0].metrics.loc.blank
old: 2.0
new: 0.0
path: .spaces[0].metrics.loc.ploc
old: 11.0
new: 6.0
path: .spaces[0].metrics.loc.sloc
old: 13.0
new: 7.0
path: .spaces[0].metrics.mi.mi_visual_studio
old: 58.53654539024518
new: 69.04082094618934
path: .spaces[0].metrics.mi.mi_sei
old: 69.11658365003125
new: 122.3577385040131
path: .spaces[0].metrics.mi.mi_original
old: 100.09749261731926
new: 118.05980381798378
path: .spaces[0].metrics.halstead.volume
old: 236.83666567851097
new: 58.81033751683405
path: .spaces[0].metrics.halstead.estimated_program_length
old: 91.12526634448808
new: 27.651484454403228
path: .spaces[0].metrics.halstead.time
old: 151.8183754349429
new: 6.534481946314894
path: .spaces[0].metrics.halstead.N2
old: 25.0
new: 7.0
path: .spaces[0].metrics.halstead.n2
old: 13.0
new: 7.0
path: .spaces[0].metrics.halstead.vocabulary
old: 25.0
new: 11.0
path: .spaces[0].metrics.halstead.n1
old: 12.0
new: 4.0
path: .spaces[0].metrics.halstead.difficulty
old: 11.538461538461538
new: 2.0
path: .spaces[0].metrics.halstead.effort
old: 2732.7307578289724
new: 117.6206750336681
path: .spaces[0].metrics.halstead.level
old: 0.08666666666666667
new: 0.5
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.7867699283232954
new: 1.6265579090825428
path: .spaces[0].metrics.halstead.bugs
old: 0.06515433381222142
new: 0.008002048702810353
path: .spaces[0].metrics.halstead.length
old: 51.0
new: 17.0
path: .spaces[0].metrics.halstead.N1
old: 26.0
new: 10.0
path: .spaces[0].metrics.cognitive.average
old: 2.0
new: 0.0
path: .spaces[0].metrics.cognitive.sum
old: 2.0
new: 0.0
path: .spaces[0].metrics.nargs.sum
old: 3.0
new: 0.0
path: .spaces[0].metrics.nargs.average
old: 3.0
new: 0.0
path: .spaces[0].metrics.cyclomatic.average
old: 4.0
new: 1.0
path: .spaces[0].metrics.cyclomatic.sum
old: 4.0
new: 1.0
path: .spaces[0].metrics.nexits.sum
old: 1.0
new: 0.0
path: .spaces[0].metrics.nexits.average
old: 1.0
new: 0.0
Code
@interface NSProgressBarCell : NSCell {
/*All instance variables are private*/
double mValue;
double mMax;
bool mIsIndeterminate;
bool mIsHorizontal;
}
Minimal test - lines (474, 480)
path: .spaces[8].metrics.nargs.sum
old: 2.0
new: 1.0
path: .spaces[8].metrics.nargs.average
old: 2.0
new: 1.0
path: .spaces[8].metrics.cyclomatic.average
old: 4.0
new: 2.0
path: .spaces[8].metrics.cyclomatic.sum
old: 4.0
new: 2.0
path: .spaces[8].metrics.halstead.level
old: 0.06923076923076923
new: 0.1111111111111111
path: .spaces[8].metrics.halstead.N1
old: 28.0
new: 31.0
path: .spaces[8].metrics.halstead.effort
old: 3091.87258892186
new: 2745.0
path: .spaces[8].metrics.halstead.estimated_program_length
old: 76.63504134881501
new: 129.45811190640111
path: .spaces[8].metrics.halstead.n2
old: 9.0
new: 20.0
path: .spaces[8].metrics.halstead.n1
old: 13.0
new: 12.0
path: .spaces[8].metrics.halstead.difficulty
old: 14.444444444444445
new: 9.0
path: .spaces[8].metrics.halstead.N2
old: 20.0
new: 30.0
path: .spaces[8].metrics.halstead.vocabulary
old: 22.0
new: 32.0
path: .spaces[8].metrics.halstead.purity_ratio
old: 1.596563361433646
new: 2.122264129613133
path: .spaces[8].metrics.halstead.bugs
old: 0.07074457436147079
new: 0.06534920538525799
path: .spaces[8].metrics.halstead.length
old: 48.0
new: 61.0
path: .spaces[8].metrics.halstead.volume
old: 214.05271769459029
new: 305.0
path: .spaces[8].metrics.halstead.time
old: 171.77069938454778
new: 152.5
path: .spaces[8].metrics.nexits.average
old: 3.0
new: 1.0
path: .spaces[8].metrics.nexits.sum
old: 3.0
new: 1.0
path: .spaces[8].metrics.cognitive.sum
old: 4.0
new: 0.0
path: .spaces[8].metrics.cognitive.average
old: 4.0
new: 0.0
path: .spaces[8].metrics.loc.ploc
old: 15.0
new: 7.0
path: .spaces[8].metrics.loc.lloc
old: 8.0
new: 1.0
path: .spaces[8].metrics.loc.sloc
old: 20.0
new: 7.0
path: .spaces[8].metrics.loc.blank
old: 5.0
new: 0.0
path: .spaces[8].metrics.mi.mi_sei
old: 59.80728868218904
new: 82.14699001392553
path: .spaces[8].metrics.mi.mi_original
old: 93.64478105735856
new: 109.27063434694536
path: .spaces[8].metrics.mi.mi_visual_studio
old: 54.76302985810443
new: 63.90095575844759
Code
static int GetBackingScaleFactorForRendering(CGContextRef cgContext) {
CGAffineTransform ctm = CGContextGetUserSpaceToDeviceSpaceTransform(cgContext);
CGRect transformedUserSpacePixel = CGRectApplyAffineTransform(CGRectMake(0, 0, 1, 1), ctm);
float maxScale = std::max(fabs(transformedUserSpacePixel.size.width),
fabs(transformedUserSpacePixel.size.height));
return maxScale > 1.0 ? 2 : 1;
}
Minimal test - lines (507, 618)
path: .spaces[9].metrics.cognitive.sum
old: 4.0
new: 12.0
path: .spaces[9].metrics.cognitive.average
old: 4.0
new: 12.0
path: .spaces[9].metrics.halstead.vocabulary
old: 22.0
new: 106.0
path: .spaces[9].metrics.halstead.estimated_program_length
old: 76.10749561002054
new: 633.170197791106
path: .spaces[9].metrics.halstead.N1
old: 32.0
new: 350.0
path: .spaces[9].metrics.halstead.time
old: 208.10680886974055
new: 11309.228987707813
path: .spaces[9].metrics.halstead.n2
old: 11.0
new: 83.0
path: .spaces[9].metrics.halstead.volume
old: 267.56589711823784
new: 4534.618386375596
path: .spaces[9].metrics.halstead.difficulty
old: 14.0
new: 44.89156626506024
path: .spaces[9].metrics.halstead.bugs
old: 0.08039911628564245
new: 1.153495081803005
path: .spaces[9].metrics.halstead.effort
old: 3745.9225596553297
new: 203566.1217787406
path: .spaces[9].metrics.halstead.length
old: 60.0
new: 674.0
path: .spaces[9].metrics.halstead.n1
old: 11.0
new: 23.0
path: .spaces[9].metrics.halstead.level
old: 0.07142857142857142
new: 0.02227589908749329
path: .spaces[9].metrics.halstead.N2
old: 28.0
new: 324.0
path: .spaces[9].metrics.halstead.purity_ratio
old: 1.268458260167009
new: 0.9394216584437776
path: .spaces[9].metrics.loc.cloc
old: 0.0
new: 14.0
path: .spaces[9].metrics.loc.blank
old: 6.0
new: 25.0
path: .spaces[9].metrics.loc.ploc
old: 15.0
new: 73.0
path: .spaces[9].metrics.loc.sloc
old: 21.0
new: 112.0
path: .spaces[9].metrics.loc.lloc
old: 9.0
new: 38.0
path: .spaces[9].metrics.mi.mi_visual_studio
old: 53.62224206490051
new: 27.94674736291103
path: .spaces[9].metrics.mi.mi_original
old: 91.69403393097988
new: 47.788937990577864
path: .spaces[9].metrics.mi.mi_sei
old: 56.9929554769341
new: 20.604885004238163
path: .spaces[9].metrics.nexits.average
old: 1.0
new: 0.0
path: .spaces[9].metrics.nexits.sum
old: 1.0
new: 0.0
path: .spaces[9].metrics.cyclomatic.sum
old: 4.0
new: 13.0
path: .spaces[9].metrics.cyclomatic.average
old: 4.0
new: 13.0
path: .spaces[9].metrics.nargs.average
old: 2.0
new: 9.0
path: .spaces[9].metrics.nargs.sum
old: 2.0
new: 9.0
Code
static void DrawCellWithScaling(NSCell* cell, CGContextRef cgContext, const HIRect& destRect,
NSControlSize controlSize, NSSize naturalSize, NSSize minimumSize,
const float marginSet[][3][4], NSView* view,
BOOL mirrorHorizontal) {
NS_OBJC_BEGIN_TRY_IGNORE_BLOCK;
NSRect drawRect =
NSMakeRect(destRect.origin.x, destRect.origin.y, destRect.size.width, destRect.size.height);
if (naturalSize.width != 0.0f) drawRect.size.width = naturalSize.width;
if (naturalSize.height != 0.0f) drawRect.size.height = naturalSize.height;
// Keep aspect ratio when scaling if one dimension is free.
if (naturalSize.width == 0.0f && naturalSize.height != 0.0f)
drawRect.size.width = destRect.size.width * naturalSize.height / destRect.size.height;
if (naturalSize.height == 0.0f && naturalSize.width != 0.0f)
drawRect.size.height = destRect.size.height * naturalSize.width / destRect.size.width;
// Honor minimum sizes.
if (drawRect.size.width < minimumSize.width) drawRect.size.width = minimumSize.width;
if (drawRect.size.height < minimumSize.height) drawRect.size.height = minimumSize.height;
[NSGraphicsContext saveGraphicsState];
// Only skip the buffer if the area of our cell (in pixels^2) is too large.
if (drawRect.size.width * drawRect.size.height > BITMAP_MAX_AREA) {
// Inflate the rect Gecko gave us by the margin for the control.
InflateControlRect(&drawRect, controlSize, marginSet);
NSGraphicsContext* savedContext = [NSGraphicsContext currentContext];
[NSGraphicsContext
setCurrentContext:[NSGraphicsContext graphicsContextWithGraphicsPort:cgContext
flipped:YES]];
DrawCellIncludingFocusRing(cell, drawRect, view);
[NSGraphicsContext setCurrentContext:savedContext];
} else {
float w = ceil(drawRect.size.width);
float h = ceil(drawRect.size.height);
NSRect tmpRect = NSMakeRect(kMaxFocusRingWidth, kMaxFocusRingWidth, w, h);
// inflate to figure out the frame we need to tell NSCell to draw in, to get something that's
// 0,0,w,h
InflateControlRect(&tmpRect, controlSize, marginSet);
// and then, expand by kMaxFocusRingWidth size to make sure we can capture any focus ring
w += kMaxFocusRingWidth * 2.0;
h += kMaxFocusRingWidth * 2.0;
int backingScaleFactor = GetBackingScaleFactorForRendering(cgContext);
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
CGContextRef ctx = CGBitmapContextCreate(
NULL, (int)w * backingScaleFactor, (int)h * backingScaleFactor, 8,
(int)w * backingScaleFactor * 4, rgb, kCGImageAlphaPremultipliedFirst);
CGColorSpaceRelease(rgb);
// We need to flip the image twice in order to avoid drawing bugs on 10.4, see bug 465069.
// This is the first flip transform, applied to cgContext.
CGContextScaleCTM(cgContext, 1.0f, -1.0f);
CGContextTranslateCTM(cgContext, 0.0f, -(2.0 * destRect.origin.y + destRect.size.height));
if (mirrorHorizontal) {
CGContextScaleCTM(cgContext, -1.0f, 1.0f);
CGContextTranslateCTM(cgContext, -(2.0 * destRect.origin.x + destRect.size.width), 0.0f);
}
NSGraphicsContext* savedContext = [NSGraphicsContext currentContext];
[NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithGraphicsPort:ctx
flipped:YES]];
CGContextScaleCTM(ctx, backingScaleFactor, backingScaleFactor);
// Set the context's "base transform" to in order to get correctly-sized focus rings.
CGContextSetBaseCTM(ctx, CGAffineTransformMakeScale(backingScaleFactor, backingScaleFactor));
// This is the second flip transform, applied to ctx.
CGContextScaleCTM(ctx, 1.0f, -1.0f);
CGContextTranslateCTM(ctx, 0.0f, -(2.0 * tmpRect.origin.y + tmpRect.size.height));
DrawCellIncludingFocusRing(cell, tmpRect, view);
[NSGraphicsContext setCurrentContext:savedContext];
CGImageRef img = CGBitmapContextCreateImage(ctx);
// Drop the image into the original destination rectangle, scaling to fit
// Only scale kMaxFocusRingWidth by xscale/yscale when the resulting rect
// doesn't extend beyond the overflow rect
float xscale = destRect.size.width / drawRect.size.width;
float yscale = destRect.size.height / drawRect.size.height;
float scaledFocusRingX = xscale < 1.0f ? kMaxFocusRingWidth * xscale : kMaxFocusRingWidth;
float scaledFocusRingY = yscale < 1.0f ? kMaxFocusRingWidth * yscale : kMaxFocusRingWidth;
CGContextDrawImage(
cgContext,
CGRectMake(destRect.origin.x - scaledFocusRingX, destRect.origin.y - scaledFocusRingY,
destRect.size.width + scaledFocusRingX * 2,
destRect.size.height + scaledFocusRingY * 2),
img);
CGImageRelease(img);
CGContextRelease(ctx);
}
[NSGraphicsContext restoreGraphicsState];
#if DRAW_IN_FRAME_DEBUG
CGContextSetRGBFillColor(cgContext, 0.0, 0.0, 0.5, 0.25);
CGContextFillRect(cgContext, destRect);
#endif
NS_OBJC_END_TRY_IGNORE_BLOCK;
}
Minimal test - lines (288, 295)
path: .spaces[2].metrics.cyclomatic.sum
old: 4.0
new: 3.0
path: .spaces[2].metrics.cyclomatic.average
old: 4.0
new: 3.0
path: .spaces[2].metrics.nargs.average
old: 6.0
new: 1.0
path: .spaces[2].metrics.nargs.sum
old: 6.0
new: 1.0
path: .spaces[2].metrics.cognitive.sum
old: 2.0
new: 3.0
path: .spaces[2].metrics.cognitive.average
old: 2.0
new: 3.0
path: .spaces[2].metrics.loc.ploc
old: 16.0
new: 8.0
path: .spaces[2].metrics.loc.sloc
old: 19.0
new: 8.0
path: .spaces[2].metrics.loc.blank
old: 3.0
new: 0.0
path: .spaces[2].metrics.nexits.sum
old: 1.0
new: 3.0
path: .spaces[2].metrics.nexits.average
old: 1.0
new: 3.0
path: .spaces[2].metrics.halstead.purity_ratio
old: 1.398829098036678
new: 1.7777777777777777
path: .spaces[2].metrics.halstead.length
old: 80.0
new: 27.0
path: .spaces[2].metrics.halstead.bugs
old: 0.13001673190804705
new: 0.022104188991842317
path: .spaces[2].metrics.halstead.n1
old: 15.0
new: 8.0
path: .spaces[2].metrics.halstead.N2
old: 37.0
new: 10.0
path: .spaces[2].metrics.halstead.level
old: 0.05045045045045045
new: 0.2
path: .spaces[2].metrics.halstead.N1
old: 43.0
new: 17.0
path: .spaces[2].metrics.halstead.effort
old: 7703.369863702293
new: 540.0
path: .spaces[2].metrics.halstead.time
old: 427.9649924279052
new: 30.0
path: .spaces[2].metrics.halstead.estimated_program_length
old: 111.90632784293425
new: 48.0
path: .spaces[2].metrics.halstead.vocabulary
old: 29.0
new: 16.0
path: .spaces[2].metrics.halstead.volume
old: 388.63847961020576
new: 108.0
path: .spaces[2].metrics.halstead.difficulty
old: 19.821428571428573
new: 5.0
path: .spaces[2].metrics.halstead.n2
old: 14.0
new: 8.0
path: .spaces[2].metrics.mi.mi_original
old: 91.37431086102632
new: 112.27596464374074
path: .spaces[2].metrics.mi.mi_sei
old: 56.531692589454295
new: 86.58458498874998
path: .spaces[2].metrics.mi.mi_visual_studio
old: 53.43526950937213
new: 65.65845885598874
Code
static NSControlSize CocoaSizeForEnum(int32_t enumControlSize) {
if (enumControlSize == miniControlSize)
return NSControlSizeMini;
else if (enumControlSize == smallControlSize)
return NSControlSizeSmall;
else
return NSControlSizeRegular;
}
Minimal test - lines (373, 381)
path: .spaces[7].metrics.nargs.average
old: 3.0
new: 1.0
path: .spaces[7].metrics.nargs.sum
old: 3.0
new: 1.0
path: .spaces[7].metrics.nexits.average
old: 1.0
new: 2.0
path: .spaces[7].metrics.nexits.sum
old: 1.0
new: 2.0
path: .spaces[7].metrics.loc.lloc
old: 5.0
new: 4.0
path: .spaces[7].metrics.loc.ploc
old: 12.0
new: 9.0
path: .spaces[7].metrics.loc.blank
old: 1.0
new: 0.0
path: .spaces[7].metrics.loc.sloc
old: 14.0
new: 9.0
path: .spaces[7].metrics.loc.cloc
old: 1.0
new: 0.0
path: .spaces[7].metrics.mi.mi_sei
old: 88.92195127589443
new: 78.91190480300362
path: .spaces[7].metrics.mi.mi_visual_studio
old: 58.45209340986723
new: 62.54834386295467
path: .spaces[7].metrics.mi.mi_original
old: 99.95307973087296
new: 106.95766800565248
path: .spaces[7].metrics.cognitive.average
old: 2.0
new: 3.0
path: .spaces[7].metrics.cognitive.sum
old: 2.0
new: 3.0
path: .spaces[7].metrics.halstead.estimated_program_length
old: 72.95445336320968
new: 81.07329781366414
path: .spaces[7].metrics.halstead.effort
old: 3232.7456231651677
new: 1929.504790710864
path: .spaces[7].metrics.halstead.time
old: 179.59697906473153
new: 107.194710595048
path: .spaces[7].metrics.halstead.n2
old: 7.0
new: 11.0
path: .spaces[7].metrics.halstead.N1
old: 30.0
new: 29.0
path: .spaces[7].metrics.halstead.difficulty
old: 16.0
new: 9.272727272727272
path: .spaces[7].metrics.halstead.n1
old: 14.0
new: 12.0
path: .spaces[7].metrics.halstead.bugs
old: 0.07287743859679725
new: 0.05166256754333802
path: .spaces[7].metrics.halstead.purity_ratio
old: 1.58596637746108
new: 1.7624629959492204
path: .spaces[7].metrics.halstead.level
old: 0.0625
new: 0.10784313725490197
path: .spaces[7].metrics.halstead.N2
old: 16.0
new: 17.0
path: .spaces[7].metrics.halstead.vocabulary
old: 21.0
new: 23.0
path: .spaces[7].metrics.halstead.volume
old: 202.04660144782295
new: 208.0838499786226
Code
static bool IsInSourceList(nsIFrame* aFrame) {
for (nsIFrame* frame = aFrame->GetParent(); frame;
frame = nsLayoutUtils::GetCrossDocParentFrame(frame)) {
if (frame->StyleDisplay()->EffectiveAppearance() == StyleAppearance::MozMacSourceList) {
return true;
}
}
return false;
}
Minimal test - lines (645, 676)
path: .spaces[11].metrics.nargs.sum
old: 2.0
new: 3.0
path: .spaces[11].metrics.nargs.average
old: 2.0
new: 3.0
path: .spaces[11].metrics.nexits.sum
old: 1.0
new: 3.0
path: .spaces[11].metrics.nexits.average
old: 1.0
new: 3.0
path: .spaces[11].metrics.cognitive.sum
old: 6.0
new: 13.0
path: .spaces[11].metrics.cognitive.average
old: 6.0
new: 13.0
path: .spaces[11].metrics.halstead.N2
old: 30.0
new: 56.0
path: .spaces[11].metrics.halstead.n1
old: 11.0
new: 20.0
path: .spaces[11].metrics.halstead.time
old: 245.26873902505136
new: 1248.9068591586265
path: .spaces[11].metrics.halstead.effort
old: 4414.837302450925
new: 22480.32346485528
path: .spaces[11].metrics.halstead.vocabulary
old: 22.0
new: 37.0
path: .spaces[11].metrics.halstead.level
old: 0.06666666666666667
new: 0.03035714285714286
path: .spaces[11].metrics.halstead.length
old: 66.0
new: 131.0
path: .spaces[11].metrics.halstead.difficulty
old: 15.0
new: 32.94117647058823
path: .spaces[11].metrics.halstead.n2
old: 11.0
new: 17.0
path: .spaces[11].metrics.halstead.purity_ratio
old: 1.153143872879099
new: 1.1902704595343745
path: .spaces[11].metrics.halstead.N1
old: 36.0
new: 75.0
path: .spaces[11].metrics.halstead.volume
old: 294.3224868300616
new: 682.4383908973924
path: .spaces[11].metrics.halstead.estimated_program_length
old: 76.10749561002054
new: 155.92543019900302
path: .spaces[11].metrics.halstead.bugs
old: 0.08970608035150121
new: 0.26550973498110947
path: .spaces[11].metrics.cyclomatic.average
old: 5.0
new: 10.0
path: .spaces[11].metrics.cyclomatic.sum
old: 5.0
new: 10.0
path: .spaces[11].metrics.loc.blank
old: 5.0
new: 4.0
path: .spaces[11].metrics.loc.lloc
old: 10.0
new: 13.0
path: .spaces[11].metrics.loc.cloc
old: 0.0
new: 5.0
path: .spaces[11].metrics.loc.ploc
old: 17.0
new: 23.0
path: .spaces[11].metrics.loc.sloc
old: 22.0
new: 32.0
path: .spaces[11].metrics.mi.mi_visual_studio
old: 52.75719107760943
new: 45.97753371801828
path: .spaces[11].metrics.mi.mi_original
old: 90.21479674271212
new: 78.62158265781126
path: .spaces[11].metrics.mi.mi_sei
old: 54.96068718052615
new: 67.48483442501615
Code
static NSControlSize FindControlSize(CGFloat size, const CGFloat* sizes, CGFloat tolerance) {
for (uint32_t i = miniControlSize; i <= regularControlSize; ++i) {
if (sizes[i] == 0) {
continue;
}
CGFloat next = 0;
// Find next value.
for (uint32_t j = i + 1; j <= regularControlSize; ++j) {
if (sizes[j] != 0) {
next = sizes[j];
break;
}
}
// If it's the latest value, we pick it.
if (next == 0) {
return CocoaSizeForEnum(i);
}
if (size <= sizes[i] + tolerance && size < next) {
return CocoaSizeForEnum(i);
}
}
// If we are here, that means sizes[] was an array with only empty values
// or the algorithm above is wrong.
// The former can happen but the later would be wrong.
NS_ASSERTION(sizes[0] == 0 && sizes[1] == 0 && sizes[2] == 0,
"We found no control! We shouldn't be there!");
return CocoaSizeForEnum(regularControlSize);
}
Minimal test - lines (754, 789)
path: .spaces[13].metrics.cyclomatic.sum
old: 5.0
new: 8.0
path: .spaces[13].metrics.cyclomatic.average
old: 5.0
new: 4.0
path: .spaces[13].metrics.mi.mi_original
old: 86.22084977065094
new: 75.16501957589445
path: .spaces[13].metrics.mi.mi_sei
old: 49.19863969036001
new: 60.844188607349864
path: .spaces[13].metrics.mi.mi_visual_studio
old: 50.421549573480085
new: 43.95615179876868
path: .spaces[13].metrics.nexits.average
old: 2.0
new: 0.5
path: .spaces[13].metrics.cognitive.sum
old: 5.0
new: 7.0
path: .spaces[13].metrics.cognitive.average
old: 5.0
new: 1.75
path: .spaces[13].metrics.halstead.volume
old: 335.20068866380245
new: 1004.1714012534482
path: .spaces[13].metrics.halstead.effort
old: 4849.236629336342
new: 17214.36687863054
path: .spaces[13].metrics.halstead.n1
old: 14.0
new: 18.0
path: .spaces[13].metrics.halstead.bugs
old: 0.09549801179334592
new: 0.22223175449727603
path: .spaces[13].metrics.halstead.level
old: 0.06912442396313365
new: 0.058333333333333334
path: .spaces[13].metrics.halstead.purity_ratio
old: 1.6218308383033948
new: 1.7737410693098208
path: .spaces[13].metrics.halstead.n2
old: 15.0
new: 42.0
path: .spaces[13].metrics.halstead.difficulty
old: 14.466666666666669
new: 17.142857142857142
path: .spaces[13].metrics.halstead.N1
old: 38.0
new: 90.0
path: .spaces[13].metrics.halstead.length
old: 69.0
new: 170.0
path: .spaces[13].metrics.halstead.time
old: 269.4020349631301
new: 956.3537154794744
path: .spaces[13].metrics.halstead.N2
old: 31.0
new: 80.0
path: .spaces[13].metrics.halstead.estimated_program_length
old: 111.90632784293425
new: 301.5359817826695
path: .spaces[13].metrics.halstead.vocabulary
old: 29.0
new: 60.0
path: .spaces[13].metrics.nargs.average
old: 3.0
new: 1.0
path: .spaces[13].metrics.nargs.sum
old: 3.0
new: 4.0
path: .spaces[13].metrics.loc.sloc
old: 27.0
new: 36.0
path: .spaces[13].metrics.loc.cloc
old: 0.0
new: 5.0
path: .spaces[13].metrics.loc.ploc
old: 19.0
new: 27.0
path: .spaces[13].metrics.loc.lloc
old: 9.0
new: 16.0
path: .spaces[13].metrics.loc.blank
old: 8.0
new: 4.0
path: .spaces[13].metrics.nom.closures
old: 0.0
new: 2.0
path: .spaces[13].metrics.nom.functions
old: 1.0
new: 2.0
path: .spaces[13].metrics.nom.total
old: 1.0
new: 4.0
Code
@end
static id GetAquaAppearance() {
Class NSAppearanceClass = NSClassFromString(@"NSAppearance");
if (NSAppearanceClass && [NSAppearanceClass respondsToSelector:@selector(appearanceNamed:)]) {
return [NSAppearanceClass performSelector:@selector(appearanceNamed:)
withObject:@"NSAppearanceNameAqua"];
}
return nil;
}
@interface NSObject (NSAppearanceCoreUIRendering)
- (void)_drawInRect:(CGRect)rect context:(CGContextRef)cgContext options:(id)options;
@end
static void RenderWithCoreUI(CGRect aRect, CGContextRef cgContext, NSDictionary* aOptions,
bool aSkipAreaCheck = false) {
id appearance = GetAquaAppearance();
if (!aSkipAreaCheck && aRect.size.width * aRect.size.height > BITMAP_MAX_AREA) {
return;
}
if (appearance && [appearance respondsToSelector:@selector(_drawInRect:context:options:)]) {
// Render through NSAppearance on Mac OS 10.10 and up. This will call
// CUIDraw with a CoreUI renderer that will give us the correct 10.10
// style. Calling CUIDraw directly with [NSWindow coreUIRenderer] still
// renders 10.9-style widgets on 10.10.
[appearance _drawInRect:aRect context:cgContext options:aOptions];
} else {
// 10.9 and below
CUIRendererRef renderer =
[NSWindow respondsToSelector:@selector(coreUIRenderer)] ? [NSWindow coreUIRenderer] : nil;
CUIDraw(renderer, aRect, cgContext, (CFDictionaryRef)aOptions, NULL);
}
}
Minimal test - lines (688, 750)
path: .spaces[12].metrics.nargs.average
old: 2.0
new: 8.0
path: .spaces[12].metrics.nargs.sum
old: 2.0
new: 8.0
path: .spaces[12].metrics.cyclomatic.sum
old: 5.0
new: 11.0
path: .spaces[12].metrics.cyclomatic.average
old: 5.0
new: 11.0
path: .spaces[12].metrics.mi.mi_original
old: 84.62091806968685
new: 60.38278624266495
path: .spaces[12].metrics.mi.mi_visual_studio
old: 49.48591699981687
new: 35.311570902143245
path: .spaces[12].metrics.mi.mi_sei
old: 61.32070021752888
new: 31.559181965068205
path: .spaces[12].metrics.loc.ploc
old: 20.0
new: 50.0
path: .spaces[12].metrics.loc.cloc
old: 1.0
new: 4.0
path: .spaces[12].metrics.loc.blank
old: 7.0
new: 9.0
path: .spaces[12].metrics.loc.sloc
old: 28.0
new: 63.0
path: .spaces[12].metrics.loc.lloc
old: 14.0
new: 17.0
path: .spaces[12].metrics.cognitive.average
old: 5.0
new: 7.0
path: .spaces[12].metrics.cognitive.sum
old: 5.0
new: 7.0
path: .spaces[12].metrics.halstead.volume
old: 407.1205760451312
new: 2640.0270956076283
path: .spaces[12].metrics.halstead.bugs
old: 0.1294208696117586
new: 0.694409558874878
path: .spaces[12].metrics.halstead.difficulty
old: 18.791666666666668
new: 36.016129032258064
path: .spaces[12].metrics.halstead.level
old: 0.05321507760532151
new: 0.027765338110165697
path: .spaces[12].metrics.halstead.estimated_program_length
old: 81.07329781366414
new: 467.2676668540068
path: .spaces[12].metrics.halstead.purity_ratio
old: 0.9008144201518238
new: 1.1313987090896047
path: .spaces[12].metrics.halstead.effort
old: 7650.474158181424
new: 95083.55652406185
path: .spaces[12].metrics.halstead.n1
old: 11.0
new: 22.0
path: .spaces[12].metrics.halstead.n2
old: 12.0
new: 62.0
path: .spaces[12].metrics.halstead.vocabulary
old: 23.0
new: 84.0
path: .spaces[12].metrics.halstead.time
old: 425.0263421211902
new: 5282.419806892325
path: .spaces[12].metrics.halstead.length
old: 90.0
new: 413.0
path: .spaces[12].metrics.halstead.N1
old: 49.0
new: 210.0
path: .spaces[12].metrics.halstead.N2
old: 41.0
new: 203.0
path: .spaces[12].metrics.nexits.sum
old: 2.0
new: 0.0
path: .spaces[12].metrics.nexits.average
old: 2.0
new: 0.0
Code
static void DrawCellWithSnapping(NSCell* cell, CGContextRef cgContext, const HIRect& destRect,
const CellRenderSettings settings, float verticalAlignFactor,
NSView* view, BOOL mirrorHorizontal, float snapTolerance = 2.0f) {
NS_OBJC_BEGIN_TRY_IGNORE_BLOCK;
const float rectWidth = destRect.size.width, rectHeight = destRect.size.height;
const NSSize* sizes = settings.naturalSizes;
const NSSize miniSize = sizes[EnumSizeForCocoaSize(NSControlSizeMini)];
const NSSize smallSize = sizes[EnumSizeForCocoaSize(NSControlSizeSmall)];
const NSSize regularSize = sizes[EnumSizeForCocoaSize(NSControlSizeRegular)];
HIRect drawRect = destRect;
CGFloat controlWidths[3] = {miniSize.width, smallSize.width, regularSize.width};
NSControlSize controlSizeX = FindControlSize(rectWidth, controlWidths, snapTolerance);
CGFloat controlHeights[3] = {miniSize.height, smallSize.height, regularSize.height};
NSControlSize controlSizeY = FindControlSize(rectHeight, controlHeights, snapTolerance);
NSControlSize controlSize = NSControlSizeRegular;
size_t sizeIndex = 0;
// At some sizes, don't scale but snap.
const NSControlSize smallerControlSize =
EnumSizeForCocoaSize(controlSizeX) < EnumSizeForCocoaSize(controlSizeY) ? controlSizeX
: controlSizeY;
const size_t smallerControlSizeIndex = EnumSizeForCocoaSize(smallerControlSize);
const NSSize size = sizes[smallerControlSizeIndex];
float diffWidth = size.width ? rectWidth - size.width : 0.0f;
float diffHeight = size.height ? rectHeight - size.height : 0.0f;
if (diffWidth >= 0.0f && diffHeight >= 0.0f && diffWidth <= snapTolerance &&
diffHeight <= snapTolerance) {
// Snap to the smaller control size.
controlSize = smallerControlSize;
sizeIndex = smallerControlSizeIndex;
MOZ_ASSERT(sizeIndex < ArrayLength(settings.naturalSizes));
// Resize and center the drawRect.
if (sizes[sizeIndex].width) {
drawRect.origin.x += ceil((destRect.size.width - sizes[sizeIndex].width) / 2);
drawRect.size.width = sizes[sizeIndex].width;
}
if (sizes[sizeIndex].height) {
drawRect.origin.y +=
floor((destRect.size.height - sizes[sizeIndex].height) * verticalAlignFactor);
drawRect.size.height = sizes[sizeIndex].height;
}
} else {
// Use the larger control size.
controlSize = EnumSizeForCocoaSize(controlSizeX) > EnumSizeForCocoaSize(controlSizeY)
? controlSizeX
: controlSizeY;
sizeIndex = EnumSizeForCocoaSize(controlSize);
}
[cell setControlSize:controlSize];
MOZ_ASSERT(sizeIndex < ArrayLength(settings.minimumSizes));
const NSSize minimumSize = settings.minimumSizes[sizeIndex];
DrawCellWithScaling(cell, cgContext, drawRect, controlSize, sizes[sizeIndex], minimumSize,
settings.margins, view, mirrorHorizontal);
NS_OBJC_END_TRY_IGNORE_BLOCK;
}
Minimal test - lines (791, 816)
path: .spaces[14].metrics.mi.mi_visual_studio
old: 49.51524947277555
new: 48.50415309286201
path: .spaces[14].metrics.mi.mi_original
old: 84.67107659844619
new: 82.94210178879405
path: .spaces[14].metrics.mi.mi_sei
old: 46.962789620317466
new: 60.13960296366041
path: .spaces[14].metrics.loc.cloc
old: 0.0
new: 1.0
path: .spaces[14].metrics.loc.lloc
old: 10.0
new: 18.0
path: .spaces[14].metrics.loc.ploc
old: 21.0
new: 22.0
path: .spaces[14].metrics.loc.blank
old: 7.0
new: 3.0
path: .spaces[14].metrics.loc.sloc
old: 28.0
new: 26.0
path: .spaces[14].metrics.nargs.average
old: 4.0
new: 1.0
path: .spaces[14].metrics.nargs.sum
old: 4.0
new: 1.0
path: .spaces[14].metrics.halstead.time
old: 345.8106541010776
new: 350.2208451714473
path: .spaces[14].metrics.halstead.difficulty
old: 15.4375
new: 12.130434782608695
path: .spaces[14].metrics.halstead.N2
old: 38.0
new: 31.0
path: .spaces[14].metrics.halstead.n2
old: 16.0
new: 23.0
path: .spaces[14].metrics.halstead.vocabulary
old: 29.0
new: 41.0
path: .spaces[14].metrics.halstead.volume
old: 403.21242259558846
new: 519.6825444479541
path: .spaces[14].metrics.halstead.estimated_program_length
old: 112.1057163358342
new: 179.1005750152729
path: .spaces[14].metrics.halstead.N1
old: 45.0
new: 66.0
path: .spaces[14].metrics.halstead.n1
old: 13.0
new: 18.0
path: .spaces[14].metrics.halstead.purity_ratio
old: 1.3506712811546289
new: 1.846397680569824
path: .spaces[14].metrics.halstead.length
old: 83.0
new: 97.0
path: .spaces[14].metrics.halstead.level
old: 0.06477732793522267
new: 0.08243727598566308
path: .spaces[14].metrics.halstead.bugs
old: 0.11279399913055768
new: 0.11375096155912157
path: .spaces[14].metrics.halstead.effort
old: 6224.591773819397
new: 6303.975213086052
path: .spaces[14].metrics.cognitive.average
old: 5.0
new: 2.0
path: .spaces[14].metrics.cognitive.sum
old: 5.0
new: 2.0
path: .spaces[14].metrics.nexits.average
old: 1.0
new: 5.0
path: .spaces[14].metrics.nexits.sum
old: 1.0
new: 5.0
path: .spaces[14].metrics.cyclomatic.sum
old: 5.0
new: 12.0
path: .spaces[14].metrics.cyclomatic.average
old: 5.0
new: 12.0
Code
static float VerticalAlignFactor(nsIFrame* aFrame) {
if (!aFrame) return 0.5f; // default: center
const auto& va = aFrame->StyleDisplay()->mVerticalAlign;
auto kw = va.IsKeyword() ? va.AsKeyword() : StyleVerticalAlignKeyword::Middle;
switch (kw) {
case StyleVerticalAlignKeyword::Top:
case StyleVerticalAlignKeyword::TextTop:
return 0.0f;
case StyleVerticalAlignKeyword::Sub:
case StyleVerticalAlignKeyword::Super:
case StyleVerticalAlignKeyword::Middle:
case StyleVerticalAlignKeyword::MozMiddleWithBaseline:
return 0.5f;
case StyleVerticalAlignKeyword::Baseline:
case StyleVerticalAlignKeyword::Bottom:
case StyleVerticalAlignKeyword::TextBottom:
return 1.0f;
default:
MOZ_ASSERT_UNREACHABLE("invalid vertical-align");
return 0.5f;
}
}
Minimal test - lines (319, 329)
path: .spaces[5].metrics.nargs.average
old: 4.0
new: 0.0
path: .spaces[5].metrics.nargs.sum
old: 4.0
new: 0.0
path: .spaces[5].metrics.cognitive.average
old: 2.0
new: 3.0
path: .spaces[5].metrics.cognitive.sum
old: 2.0
new: 3.0
path: .spaces[5].metrics.nexits.average
old: 1.0
new: 3.0
path: .spaces[5].metrics.nexits.sum
old: 1.0
new: 3.0
path: .spaces[5].metrics.loc.lloc
old: 4.0
new: 7.0
path: .spaces[5].metrics.loc.sloc
old: 15.0
new: 11.0
path: .spaces[5].metrics.loc.ploc
old: 12.0
new: 8.0
path: .spaces[5].metrics.mi.mi_visual_studio
old: 56.63253071735761
new: 59.4203606765324
path: .spaces[5].metrics.mi.mi_original
old: 96.84162752668152
new: 101.6088167568704
path: .spaces[5].metrics.mi.mi_sei
old: 64.41936322996467
new: 71.29696349133741
path: .spaces[5].metrics.halstead.bugs
old: 0.07598087609726595
new: 0.06570348203836295
path: .spaces[5].metrics.halstead.difficulty
old: 12.133333333333333
new: 9.285714285714286
path: .spaces[5].metrics.halstead.length
old: 59.0
new: 65.0
path: .spaces[5].metrics.halstead.n2
old: 15.0
new: 14.0
path: .spaces[5].metrics.halstead.volume
old: 283.6339404013986
new: 298.0225625468751
path: .spaces[5].metrics.halstead.estimated_program_length
old: 106.70907526996196
new: 86.52224985768008
path: .spaces[5].metrics.halstead.effort
old: 3441.4251435369697
new: 2767.3523665066978
path: .spaces[5].metrics.halstead.time
old: 191.19028575205388
new: 153.741798139261
path: .spaces[5].metrics.halstead.level
old: 0.08241758241758242
new: 0.10769230769230768
path: .spaces[5].metrics.halstead.N2
old: 28.0
new: 26.0
path: .spaces[5].metrics.halstead.n1
old: 13.0
new: 10.0
path: .spaces[5].metrics.halstead.purity_ratio
old: 1.8086283944061352
new: 1.3311115362720012
path: .spaces[5].metrics.halstead.N1
old: 31.0
new: 39.0
path: .spaces[5].metrics.halstead.vocabulary
old: 28.0
new: 24.0
Code
static NSWindow* NativeWindowForFrame(nsIFrame* aFrame, nsIWidget** aTopLevelWidget = NULL) {
if (!aFrame) return nil;
nsIWidget* widget = aFrame->GetNearestWidget();
if (!widget) return nil;
nsIWidget* topLevelWidget = widget->GetTopLevelWidget();
if (aTopLevelWidget) *aTopLevelWidget = topLevelWidget;
return (NSWindow*)topLevelWidget->GetNativeData(NS_NATIVE_WINDOW);
}
Minimal test - lines (331, 352)
path: .spaces[6].metrics.cognitive.average
old: 0.0
new: 0.25
path: .spaces[6].metrics.cognitive.sum
old: 0.0
new: 1.0
path: .spaces[6].metrics.mi.mi_sei
old: 77.91788532260658
new: 66.16732702455356
path: .spaces[6].metrics.mi.mi_visual_studio
old: 62.18669143500867
new: 50.72672085541809
path: .spaces[6].metrics.mi.mi_original
old: 106.33924235386483
new: 86.74269266276494
path: .spaces[6].metrics.nexits.average
old: 1.0
new: 0.5
path: .spaces[6].metrics.nexits.sum
old: 1.0
new: 2.0
path: .spaces[6].metrics.nom.closures
old: 0.0
new: 3.0
path: .spaces[6].metrics.nom.total
old: 1.0
new: 4.0
path: .spaces[6].metrics.nargs.sum
old: 3.0
new: 1.0
path: .spaces[6].metrics.nargs.average
old: 3.0
new: 0.25
path: .spaces[6].metrics.loc.sloc
old: 10.0
new: 22.0
path: .spaces[6].metrics.loc.lloc
old: 1.0
new: 6.0
path: .spaces[6].metrics.loc.ploc
old: 8.0
new: 20.0
path: .spaces[6].metrics.loc.blank
old: 2.0
new: 1.0
path: .spaces[6].metrics.loc.cloc
old: 0.0
new: 1.0
path: .spaces[6].metrics.halstead.purity_ratio
old: 2.07880250804267
new: 1.3789067569906452
path: .spaces[6].metrics.halstead.time
old: 85.3508182958813
new: 398.5150521945115
path: .spaces[6].metrics.halstead.level
old: 0.11483253588516744
new: 0.08
path: .spaces[6].metrics.halstead.length
old: 39.0
new: 111.0
path: .spaces[6].metrics.halstead.N1
old: 20.0
new: 61.0
path: .spaces[6].metrics.halstead.bugs
old: 0.044381183049407656
new: 0.1239815043933602
path: .spaces[6].metrics.halstead.difficulty
old: 8.708333333333334
new: 12.5
path: .spaces[6].metrics.halstead.vocabulary
old: 23.0
new: 36.0
path: .spaces[6].metrics.halstead.effort
old: 1536.3147293258633
new: 7173.270939501208
path: .spaces[6].metrics.halstead.volume
old: 176.41891628622352
new: 573.8616751600966
path: .spaces[6].metrics.halstead.n2
old: 12.0
new: 24.0
path: .spaces[6].metrics.halstead.N2
old: 19.0
new: 50.0
path: .spaces[6].metrics.halstead.n1
old: 11.0
new: 12.0
path: .spaces[6].metrics.halstead.estimated_program_length
old: 81.07329781366414
new: 153.0586500259616
path: .spaces[6].metrics.cyclomatic.sum
old: 2.0
new: 5.0
path: .spaces[6].metrics.cyclomatic.average
old: 2.0
new: 5.0
Code
static NSSize WindowButtonsSize(nsIFrame* aFrame) {
NSWindow* window = NativeWindowForFrame(aFrame);
if (!window) {
// Return fallback values.
return NSMakeSize(54, 16);
}
NSRect buttonBox = NSZeroRect;
NSButton* closeButton = [window standardWindowButton:NSWindowCloseButton];
if (closeButton) {
buttonBox = NSUnionRect(buttonBox, [closeButton frame]);
}
NSButton* minimizeButton = [window standardWindowButton:NSWindowMiniaturizeButton];
if (minimizeButton) {
buttonBox = NSUnionRect(buttonBox, [minimizeButton frame]);
}
NSButton* zoomButton = [window standardWindowButton:NSWindowZoomButton];
if (zoomButton) {
buttonBox = NSUnionRect(buttonBox, [zoomButton frame]);
}
return buttonBox.size;
}
Minimal test - lines (297, 304)
path: .spaces[3].metrics.nexits.sum
old: 1.0
new: 3.0
path: .spaces[3].metrics.nexits.average
old: 1.0
new: 3.0
path: .spaces[3].metrics.cognitive.average
old: 11.0
new: 3.0
path: .spaces[3].metrics.cognitive.sum
old: 11.0
new: 3.0
path: .spaces[3].metrics.cyclomatic.average
old: 10.0
new: 3.0
path: .spaces[3].metrics.cyclomatic.sum
old: 10.0
new: 3.0
path: .spaces[3].metrics.halstead.bugs
old: 0.27676210829554504
new: 0.02263393629738926
path: .spaces[3].metrics.halstead.n2
old: 27.0
new: 9.0
path: .spaces[3].metrics.halstead.vocabulary
old: 44.0
new: 17.0
path: .spaces[3].metrics.halstead.effort
old: 23924.442559895004
new: 559.5282467133798
path: .spaces[3].metrics.halstead.level
old: 0.039705882352941174
new: 0.20454545454545453
path: .spaces[3].metrics.halstead.purity_ratio
old: 1.1371771888486748
new: 1.8760473218921716
path: .spaces[3].metrics.halstead.N1
old: 94.0
new: 17.0
path: .spaces[3].metrics.halstead.length
old: 174.0
new: 28.0
path: .spaces[3].metrics.halstead.n1
old: 17.0
new: 8.0
path: .spaces[3].metrics.halstead.volume
old: 949.9411016428896
new: 114.4489595550095
path: .spaces[3].metrics.halstead.N2
old: 80.0
new: 11.0
path: .spaces[3].metrics.halstead.difficulty
old: 25.185185185185187
new: 4.888888888888889
path: .spaces[3].metrics.halstead.estimated_program_length
old: 197.8688308596694
new: 52.529325012980806
path: .spaces[3].metrics.halstead.time
old: 1329.1356977719447
new: 31.084902595187764
path: .spaces[3].metrics.loc.blank
old: 6.0
new: 0.0
path: .spaces[3].metrics.loc.ploc
old: 42.0
new: 8.0
path: .spaces[3].metrics.loc.sloc
old: 53.0
new: 8.0
path: .spaces[3].metrics.loc.lloc
old: 18.0
new: 5.0
path: .spaces[3].metrics.loc.cloc
old: 5.0
new: 0.0
path: .spaces[3].metrics.nargs.average
old: 6.0
new: 0.0
path: .spaces[3].metrics.nargs.sum
old: 6.0
new: 0.0
path: .spaces[3].metrics.mi.mi_sei
old: 47.3747409187594
new: 86.14948520593762
path: .spaces[3].metrics.mi.mi_visual_studio
old: 40.191807650038214
new: 65.48209149474977
path: .spaces[3].metrics.mi.mi_original
old: 68.72799108156535
new: 111.9743764560221
Code
static NSString* CUIControlSizeForCocoaSize(NSControlSize aControlSize) {
if (aControlSize == NSControlSizeRegular)
return @"regular";
else if (aControlSize == NSControlSizeSmall)
return @"small";
else
return @"mini";
}
Minimal test - lines (279, 286)
path: .spaces[1].metrics.nargs.average
old: 3.0
new: 1.0
path: .spaces[1].metrics.nargs.sum
old: 3.0
new: 1.0
path: .spaces[1].metrics.halstead.time
old: 230.14279028814852
new: 30.0
path: .spaces[1].metrics.halstead.vocabulary
old: 30.0
new: 16.0
path: .spaces[1].metrics.halstead.n1
old: 13.0
new: 8.0
path: .spaces[1].metrics.halstead.N1
old: 37.0
new: 17.0
path: .spaces[1].metrics.halstead.purity_ratio
old: 1.704240357059275
new: 1.7777777777777777
path: .spaces[1].metrics.halstead.N2
old: 32.0
new: 10.0
path: .spaces[1].metrics.halstead.difficulty
old: 12.235294117647058
new: 5.0
path: .spaces[1].metrics.halstead.estimated_program_length
old: 117.59258463708996
new: 48.0
path: .spaces[1].metrics.halstead.bugs
old: 0.0859789225008748
new: 0.022104188991842317
path: .spaces[1].metrics.halstead.length
old: 69.0
new: 27.0
path: .spaces[1].metrics.halstead.level
old: 0.08173076923076923
new: 0.2
path: .spaces[1].metrics.halstead.volume
old: 338.57545109698776
new: 108.0
path: .spaces[1].metrics.halstead.n2
old: 17.0
new: 8.0
path: .spaces[1].metrics.halstead.effort
old: 4142.570225186673
new: 540.0
path: .spaces[1].metrics.cyclomatic.average
old: 4.0
new: 3.0
path: .spaces[1].metrics.cyclomatic.sum
old: 4.0
new: 3.0
path: .spaces[1].metrics.nexits.average
old: 1.0
new: 3.0
path: .spaces[1].metrics.nexits.sum
old: 1.0
new: 3.0
path: .spaces[1].metrics.cognitive.average
old: 4.0
new: 3.0
path: .spaces[1].metrics.cognitive.sum
old: 4.0
new: 3.0
path: .spaces[1].metrics.loc.blank
old: 3.0
new: 0.0
path: .spaces[1].metrics.loc.sloc
old: 23.0
new: 8.0
path: .spaces[1].metrics.loc.ploc
old: 19.0
new: 8.0
path: .spaces[1].metrics.loc.lloc
old: 8.0
new: 5.0
path: .spaces[1].metrics.loc.cloc
old: 1.0
new: 0.0
path: .spaces[1].metrics.mi.mi_original
old: 88.99630947936939
new: 112.27596464374074
path: .spaces[1].metrics.mi.mi_visual_studio
old: 52.04462542653181
new: 65.65845885598874
path: .spaces[1].metrics.mi.mi_sei
old: 68.97298584805316
new: 86.58458498874998
Code
static size_t EnumSizeForCocoaSize(NSControlSize cocoaControlSize) {
if (cocoaControlSize == NSControlSizeMini)
return miniControlSize;
else if (cocoaControlSize == NSControlSizeSmall)
return smallControlSize;
else
return regularControlSize;
}
Minimal test - lines (620, 634)
path: .spaces[10].metrics.halstead.level
old: 0.07142857142857142
new: 0.3636363636363637
path: .spaces[10].metrics.halstead.n1
old: 11.0
new: 4.0
path: .spaces[10].metrics.halstead.bugs
old: 0.08128997655011974
new: 0.011665494389792322
path: .spaces[10].metrics.halstead.length
old: 61.0
new: 21.0
path: .spaces[10].metrics.halstead.n2
old: 11.0
new: 8.0
path: .spaces[10].metrics.halstead.volume
old: 272.0253287368751
new: 75.28421251514428
path: .spaces[10].metrics.halstead.N1
old: 33.0
new: 10.0
path: .spaces[10].metrics.halstead.time
old: 211.5752556842362
new: 11.501754689813708
path: .spaces[10].metrics.halstead.N2
old: 28.0
new: 11.0
path: .spaces[10].metrics.halstead.effort
old: 3808.354602316252
new: 207.03158441664675
path: .spaces[10].metrics.halstead.vocabulary
old: 22.0
new: 12.0
path: .spaces[10].metrics.halstead.difficulty
old: 14.0
new: 2.75
path: .spaces[10].metrics.halstead.estimated_program_length
old: 76.10749561002054
new: 32.0
path: .spaces[10].metrics.halstead.purity_ratio
old: 1.247663862459353
new: 1.5238095238095235
path: .spaces[10].metrics.nexits.sum
old: 1.0
new: 0.0
path: .spaces[10].metrics.nexits.average
old: 1.0
new: null
path: .spaces[10].metrics.nargs.average
old: 2.0
new: null
path: .spaces[10].metrics.nargs.sum
old: 2.0
new: 0.0
path: .spaces[10].metrics.nom.total
old: 1.0
new: 0.0
path: .spaces[10].metrics.nom.functions
old: 1.0
new: 0.0
path: .spaces[10].metrics.cognitive.sum
old: 4.0
new: 0.0
path: .spaces[10].metrics.cognitive.average
old: 4.0
new: null
path: .spaces[10].metrics.mi.mi_original
old: 91.6080815608336
new: 104.42898039345806
path: .spaces[10].metrics.mi.mi_visual_studio
old: 53.57197752095532
new: 61.06957917746085
path: .spaces[10].metrics.mi.mi_sei
old: 56.868952418771386
new: 120.30995130368176
path: .spaces[10].metrics.loc.ploc
old: 15.0
new: 5.0
path: .spaces[10].metrics.loc.blank
old: 6.0
new: 2.0
path: .spaces[10].metrics.loc.cloc
old: 0.0
new: 8.0
path: .spaces[10].metrics.loc.sloc
old: 21.0
new: 15.0
path: .spaces[10].metrics.loc.lloc
old: 9.0
new: 0.0
path: .spaces[10].metrics.cyclomatic.sum
old: 4.0
new: 1.0
path: .spaces[10].metrics.cyclomatic.average
old: 4.0
new: 1.0
Code
struct CellRenderSettings {
// The natural dimensions of the control.
// If a control has no natural dimensions in either/both axes, set to 0.0f.
NSSize naturalSizes[3];
// The minimum dimensions of the control.
// If a control has no minimum dimensions in either/both axes, set to 0.0f.
NSSize minimumSizes[3];
// A three-dimensional array,
// with the first dimension being the OS version ([0] 10.6-10.9, [1] 10.10 and above),
// the second being the control size (mini, small, regular), and the third
// being the 4 margin values (left, top, right, bottom).
float margins[2][3][4];
};