# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1056387141 0 # Node ID cf00d6e2b3ccebc2655dbe048a9b94fef1ade928 # Parent 538b529052e05ce891ff16fa2d4dad017a2d8cd6 Optimizations to the layout engine on OS/2 and Windows, eliminated 3 MUL and 3 ADD operations per loop (on average). Also always return a valid HFONT from _acquire_font(). diff -r 538b529052e0 -r cf00d6e2b3cc os2/dw.c --- a/os2/dw.c Mon Jun 23 08:58:38 2003 +0000 +++ b/os2/dw.c Mon Jun 23 16:52:21 2003 +0000 @@ -1036,12 +1036,14 @@ if(thisbox->type == DW_VERT) { - if((thisbox->items[z].width + (thisbox->items[z].pad*2)) > uxmax) - uxmax = (thisbox->items[z].width + (thisbox->items[z].pad*2)); + int itemwidth = thisbox->items[z].width + (thisbox->items[z].pad*2); + + if(itemwidth > uxmax) + uxmax = itemwidth; if(thisbox->items[z].hsize != SIZEEXPAND) { - if(((thisbox->items[z].pad*2) + thisbox->items[z].width) > upxmax) - upxmax = (thisbox->items[z].pad*2) + thisbox->items[z].width; + if(itemwidth > upxmax) + upxmax = itemwidth; } else { @@ -1067,12 +1069,14 @@ } if(thisbox->type == DW_HORZ) { - if((thisbox->items[z].height + (thisbox->items[z].pad*2)) > uymax) - uymax = (thisbox->items[z].height + (thisbox->items[z].pad*2)); + int itemheight = thisbox->items[z].height + (thisbox->items[z].pad*2); + + if(itemheight > uymax) + uymax = itemheight; if(thisbox->items[z].vsize != SIZEEXPAND) { - if(((thisbox->items[z].pad*2) + thisbox->items[z].height) > upymax) - upymax = (thisbox->items[z].pad*2) + thisbox->items[z].height; + if(itemheight > upymax) + upymax = itemheight; } else { diff -r 538b529052e0 -r cf00d6e2b3cc win/dw.c --- a/win/dw.c Mon Jun 23 08:58:38 2003 +0000 +++ b/win/dw.c Mon Jun 23 16:52:21 2003 +0000 @@ -998,12 +998,14 @@ if(thisbox->type == DW_VERT) { - if((thisbox->items[z].width + (thisbox->items[z].pad*2)) > uxmax) - uxmax = (thisbox->items[z].width + (thisbox->items[z].pad*2)); + int itemwidth = (thisbox->items[z].pad*2) + thisbox->items[z].width; + + if(itemwidth > uxmax) + uxmax = itemwidth; if(thisbox->items[z].hsize != SIZEEXPAND) { - if(((thisbox->items[z].pad*2) + thisbox->items[z].width) > upxmax) - upxmax = (thisbox->items[z].pad*2) + thisbox->items[z].width; + if(itemwidth > upxmax) + upxmax = itemwidth; } else { @@ -1029,12 +1031,14 @@ } if(thisbox->type == DW_HORZ) { - if((thisbox->items[z].height + (thisbox->items[z].pad*2)) > uymax) - uymax = (thisbox->items[z].height + (thisbox->items[z].pad*2)); + int itemheight = (thisbox->items[z].pad*2) + thisbox->items[z].height; + + if(itemheight > uymax) + uymax = itemheight; if(thisbox->items[z].vsize != SIZEEXPAND) { - if(((thisbox->items[z].pad*2) + thisbox->items[z].height) > upymax) - upymax = (thisbox->items[z].pad*2) + thisbox->items[z].height; + if(itemheight > upymax) + upymax = itemheight; } else { @@ -3406,11 +3410,9 @@ HFONT _acquire_font(HWND handle, char *fontname) { - HFONT hfont; - - if(fontname == DefaultFont || !fontname[0]) - hfont = GetStockObject(DEFAULT_GUI_FONT); - else + HFONT hfont = 0; + + if(fontname != DefaultFont && fontname[0]) { int Italic, Bold; char *myFontName; @@ -3459,6 +3461,8 @@ ReleaseDC(handle, hDC); #endif } + if(!hfont) + hfont = GetStockObject(DEFAULT_GUI_FONT); return hfont; }