latest DEV300_m43 callcatcher report, +83 unused methods, 55 of which are in the new formula UI library
DEV300_m43
March 12th, 2009 by CaolánDEV300_m42
February 25th, 2009 by CaolánDEV300_m42 callcatcher results are available. Back up to over 1000 unused methods. sd contains a fifth of all unused methods. i18npool has picked up two new unused destructors, seeing as the constructors are used, there’s probably a leak in there with missing deletes against news. On the bright side, unoxml and sax are now unused method free.
DEV300_m40/DEV300_m41
February 2nd, 2009 by Caoláncallcatcher DEV300_m40 and in rapid succession, DEV300_m41 results.
sdext stripped of the majority of unused methods, so we’re now down under 900. Biggest win remains sd with 195 methods.
since rene’s work is in place, now in DEV300_m40+ OOo can be built with a simple
./configure
make
DEV300_m39, a note on pure virtuals
January 22nd, 2009 by CaolánDEV300_m39 callcatcher report. Couple of modules go down, a couple go up. Balances out to retain 927 unused methods. The top three offenders remain sd, writerfilter and sc.
Note that if a method declared as pure virtual in class X then if an implementation of that method in class X is provided then it *does not* get called through the vtable, i.e. the body of that method is effectively a non-virtual method, to get called it has to be explicitly called somehow.
So that means that callcatcher is correct if it reports that a pure virtual method is unused. Virtual methods are ignored, but implementations of base-class pure virtuals are a different kettle of fish and can themselves be treated as non-virtuals.
class foo
{
public:
virtual void bar() = 0;
};
//Can only get called by an explicit call of foo::bar() on some concrete subclass of abstract superclass foo
void foo::bar()
{
//something
}
DEV300_m38
January 5th, 2009 by CaolánThe DEV300_m38 callcatcher results, now with added inline deltas niftyness to show which are the new unused methods since the last run. Overall increase of +5 methods since m37.
Freya II
December 18th, 2008 by Caolán
So now what am I supposed to do
DEV300_m36 callcatcher report
November 26th, 2008 by Caolánerr…, ok
November 12th, 2008 by Caolán
if ( nSlotId != SID_OBJECT_SELECT &&
(/* bTempRotation && */ nMarkCount==0) ||
( mpView->GetDragMode() == SDRDRAG_CROOK &&
!mpView->IsCrookAllowed( mpView->IsCrookNoContortion() ) ) ||
( mpView->GetDragMode() == SDRDRAG_SHEAR &&
!mpView->IsShearAllowed() && !mpView->IsDistortAllowed() ) ||
( nSlotId==SID_CONVERT_TO_3D_LATHE && pSingleObj &&
(pSingleObj->GetObjInventor() != SdrInventor ||
pSingleObj->GetObjIdentifier() == OBJ_MEASURE) ) )
fabulous if statement
November 11th, 2008 by Caolán
if((nTypeId == TYP_DDEFLD && pFldType->Which() == RES_DDEFLD) ||
(nTypeId == TYP_USERFLD && nWhich == RES_USERFLD) ||
(nTypeId == TYP_GETFLD && nWhich == RES_SETEXPFLD &&
!(((SwSetExpFieldType*)pFldType)->GetType() & nsSwGetSetExpType::GSE_SEQ)) ||
(nTypeId == TYP_SETFLD && nWhich == RES_SETEXPFLD &&
!(((SwSetExpFieldType*)pFldType)->GetType() & nsSwGetSetExpType::GSE_SEQ)) ||
(nTypeId == TYP_SEQFLD && nWhich == RES_SETEXPFLD &&
(((SwSetExpFieldType*)pFldType)->GetType() & nsSwGetSetExpType::GSE_SEQ)) ||
((nTypeId == TYP_INPUTFLD || nTypeId == TYP_FORMELFLD) &&
(nWhich == RES_USERFLD ||
nWhich == RES_SETEXPFLD &&
!(((SwSetExpFieldType*)pFldType)->GetType() & nsSwGetSetExpType::GSE_SEQ)) ) )
{
DEV300_m34 report
October 24th, 2008 by CaolánThe DEV300_m34 report, shows another drop from 1008 to 920 unused methods as mba’s workspace comes through to reduce framework and similar modules. Top 4 modules account for more than 50% of remaining low-hanging fruit
DEV300_m33
October 9th, 2008 by CaolánDEV300_m30
September 3rd, 2008 by CaolánThe unused method listings are updated for every release, i.e. the latest DEV300_m30.
The current un-integrated patches are listed here, with the largest set of unused code in sc scheduled for removal in workspace koheicoderemoval
Microsoft Paper Sizes
August 15th, 2008 by CaolánThe Windows Documentation has some confusion around the two different JIS and ISO B paper types.
DMPAPER_B4 B4 (JIS) 250 x 354 mm DMPAPER_B5 B5 (JIS) 182 x 257 mm DMPAPER_ISO_B4 B4 (ISO) 250 x 353 mm DMPAPER_B6_JIS B6 (JIS) 128 x 182 mm
i.e. DMPAPER_B5 is documented as JIS and the documented dimensions match that format. While DMPAPER_B4 is then documented as JIS but the documented dimensions match the ISO format B5 of 250 × 353 mm. Given the presence of DMPAPER_ISO_B4 and the absence of DMPAPER_B4_JIS I’ll bet that it is really the JIS size of 257 x 364, which is backed up by the PPD Specification stating that the Microsoft DMPAPER_B4 size is 257×364 and by the Microsoft Word UI which lists B4 (JIS) with (correct) dimensions of 257×364.
Turning our eyes to the Excel Documentation we have more confusion with the XlPaperSize enumeration. Here we have…
xlPaperA5 A5 (148 mm x 210 mm) xlPaperB4 B4 (250 mm x 354 mm) xlPaperB5 A5 (148 mm x 210 mm)
Well what size is xlPaperB5 ? Is it truly ISO A5 (148 mm x 210 mm) like the comment says. Or might it be ISO B5, i.e. 176 × 250 mm. Or, seeing as the XlPaperSize enumeration has the same values as the DMPAPER values for all other values, are both xlPaperB4 and xlPaperB5 actually the same values as DMPAPER_B4 and DMPAPER_B5, which we’ve earlier determined are JIS B4 and B5 sizes, and not ISO sizes at all. That’s the most likely answer, i.e. the text is completely and totally wrong for xlPaperB4/xlPaperB5
Who uses A4, and who uses Letter ?
July 31st, 2008 by CaolánAt unicode.org the only locales listed as using Letter are the US and Canada.
Wikipedia agrees that only the US and Canada officially don’t use A4, but claims that in Mexico, Colombia, Chile and the Philippines Letter is nevertheless commonly used. Meanwhile at Microsoft the list of Letter using nations is: The US, Canada, Argentina, Brazil, Chile, Mexico, Venezuela and “Latin American countries”
As I’ve tried to document here, currently GTK thinks that the US, Canada and Puerto Rico are Letter users, while OpenOffice.org thinks that the list is the US, Canada, Mexico and Venezuela.
So, I still wonder, which nations excluding the US and Canada, would one truly find Letter as the true default in-use paper size.
DEV300_m24
July 12th, 2008 by CaolánA pleasing reduction of 160 methods from DEV300_m20 to DEV300_m24 as the package, goodies, embeddedobj, xmlhelp, basctl etc patches are integrated
freya
June 22nd, 2008 by CaolánDEV300_m19 (and m68k)
June 12th, 2008 by CaolánThe DEV300_m19 callcatcher logs show a small but steady shrinkage improvement as more cleanup patches make their way into head.
In other news, I ported uno to m68k so OOo3 builds and functions on m68k under qemu. The sight of a running m68k OOo is somehow incredibly amusing.
DEV300_m17
June 6th, 2008 by CaolánLatest callcatcher results DEV300_m17 show a modest improvement as unused hwpfilter patch gets integrated, though there’s still an unused destructor, pointing more towards a potential resource leak where it should be used rather than get removed.
DEV300_m14 callcatcher
May 28th, 2008 by CaolánAnd DEV300_m14 results are available, with the integration of the binfilter fixes (thanks mba) unused symbol count has halved since DEV300_m13 and tumbles down the charts. I’ve extended callcatcher to understand basic map files so it can be used on non-terminal modules which have map files. Which extends the coverage to a further 25 modules.
one of those weeks
May 23rd, 2008 by CaolánSee as gcc ate my starbasic with -fno-strict-aliasing it prompted me to check if we still need -fno-strict-aliasing anyway given all the warning cleanups of the last year. The short answer is definitely
, but it looks doable to make it possible, and I’ve gotten it to at least launch with -fstrict-aliasing which should be sufficient to do some measurements on it next week to see if there is any measurable difference. Unfortunately while I can (probably) make Ooo -fstrict-aliasing good there are a gadzillion warnings from the stlport headers used on i386 builds so unless stlport was bumped up to one of the later versions where the warnings are fixed (or stlport dropped and gcc’s stl used like we did for x86_64) then only non-i386 users could get the benefit.
Some other random thoughts to look at to see if they’d matter a damn are:
- revisit the symbol ordering stuff again where symbols used during startup are sorted side by side in the .so
- Use -fshort-wchar and make a shadow struct for OUString which can take a
wchar_t string to stick pre-created OUStrings into the rodata section. - somehow magically convert non-public symbols to a shorter name and/or reversed strings