Review Request 108370: Use a generic hash function for KDevplatform types
Milian Wolff
mail at milianw.de
Sat Jan 12 16:43:21 UTC 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/108370/#review25306
-----------------------------------------------------------
>From a code pov looks good, just two small things.
Then I'd say lets merge this into master.
language/duchain/types/abstracttype.cpp
<http://git.reviewboard.kde.org/r/108370/#comment19296>
as mentioned on IRC:
make ::hash non-virtual and instead introduce a protected KDevHash hash_impl() virtual const to ensure KDevHash::finalize is only called once.
util/kdevhash.h
<http://git.reviewboard.kde.org/r/108370/#comment19295>
I'd use an explicit c++ reinterpret_cast here.
- Milian Wolff
On Jan. 12, 2013, 3:48 p.m., Olivier Jean de Gaalon wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/108370/
> -----------------------------------------------------------
>
> (Updated Jan. 12, 2013, 3:48 p.m.)
>
>
> Review request for KDevelop.
>
>
> Description
> -------
>
> Implement a generic hash function (minor variation of one-at-a-time) which can be used to hash the data of item repository data classes.
> The good:
> Removes around 80% of bucket clashes and 100% of actually equal hashes for different types in the real-world C++ cases I've tested.
> No need to pull numbers out of a hat and hope you didn't clash.
> The bad:
> The hash function is more expensive, and so might cancel out the gains in speed, at least in smaller projects (hard to create a real-world benchmark that can show the difference)
> The meh:
> Either way it makes no visually discernable difference, so it should probably be seen from an ease-of-use perspective.
>
> I've had this sitting around for a while, but here it is for reviewer's pleasure.
>
>
> Diffs
> -----
>
> language/duchain/declarationid.h 7caccf5
> language/duchain/identifier.cpp 4cfc90e
> language/duchain/indexeddeclaration.h 6f486ab
> language/duchain/indexedducontext.h d972202
> language/duchain/instantiationinformation.cpp dbc236d
> language/duchain/referencecounting.cpp a4dece2
> language/duchain/types/abstracttype.cpp e7f7d99
> language/duchain/types/arraytype.cpp 673f691
> language/duchain/types/constantintegraltype.cpp 4cb8a36
> language/duchain/types/delayedtype.cpp 5506a45
> language/duchain/types/enumerationtype.cpp 4901136
> language/duchain/types/enumeratortype.cpp a3d3ab6
> language/duchain/types/functiontype.cpp bc6b842
> language/duchain/types/integraltype.cpp f40f05b
> language/duchain/types/pointertype.cpp fbb2143
> language/duchain/types/referencetype.cpp 8919f7f
> language/duchain/types/structuretype.cpp 27b0088
> language/duchain/types/typealiastype.cpp 903e2e1
> language/duchain/types/unsuretype.cpp cba3984
> util/CMakeLists.txt 29de126
> util/kdevhash.h PRE-CREATION
>
> Diff: http://git.reviewboard.kde.org/r/108370/diff/
>
>
> Testing
> -------
>
>
> File Attachments
> ----------------
>
> Patch to make duchainify show itemrepository stats
> http://git.reviewboard.kde.org/media/uploaded/files/2013/01/12/duchainifywithitemrepositorystats.diff
>
>
> Thanks,
>
> Olivier Jean de Gaalon
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20130112/a66ce215/attachment-0001.html>
More information about the KDevelop-devel
mailing list