<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/123390/">https://git.reviewboard.kde.org/r/123390/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On avril 16th, 2015, 8:43 après-midi UTC, <b>Laurent Montel</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Hi volker
What did you use as program to detect it ?
Thanks for info.</p></pre>
</blockquote>
<p>On avril 17th, 2015, 7:02 matin UTC, <b>Volker Krause</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The tool is called "elf-packcheck", part of kde:scratch/vkrause/elf-dissector, and still in development. I'm using KF5 as testing ground, the run on widgetaddons yesterday showed only one bug resulting in wrong numbers, so if one doesn't blindly trust the output it's getting usable for finding unnecessary padding. But as the above output shows, there is still lots of work to be done on the optimizer to handle bitfield packing.</pre>
</blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Ah great.
Where did you find Iberty package for opensuse ? I found a very old package and it doesn't find some enum as DEMANGLE_COMPONENT_REFERENCE_THIS etc.</p></pre>
<br />
<p>- Laurent</p>
<br />
<p>On avril 16th, 2015, 7:53 après-midi UTC, Volker Krause wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
<div>Review request for KDE Frameworks and Christoph Feck.</div>
<div>By Volker Krause.</div>
<p style="color: grey;"><i>Updated avr. 16, 2015, 7:53 après-midi</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
kwidgetsaddons
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Saves 8 byte in all cases, on 64bit systems.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Used bytes: 37/48 (77.08%)
Used bits: 290/384 (75.52%)
Optimal size: 40 bytes (-8 bytes, 16.67%)
class FormLayoutWidgetItem // location: /k/kde5/src/kwidgetsaddons/src/kcolumnresizer.cpp:30
{
inherits QWidgetItem ; // member offset: 0, size: 24, alignment: 8
int m_width; // member offset: 24, size: 4, alignment: 4
// 4 byte(s) padding
QFormLayout* m_formLayout; // member offset: 32, size: 8, alignment: 8
ItemRole m_itemRole; // member offset: 40, size: 4 (needed: 2 bits), alignment: 4
// 4 byte(s) padding
}; // size: 48, alignment: 8
Used bytes: 82/96 (85.42%)
Used bits: 642/768 (83.59%)
Optimal size: 88 bytes (-8 bytes, 8.333%)
class KDateTable::KDateTablePrivate // location: /k/kde5/src/kwidgetsaddons/src/kdatetable.cpp:35
{
KDateTable* q; // member offset: 0, size: 8, alignment: 8
int fontsize; // member offset: 8, size: 4, alignment: 4
// 4 byte(s) padding
QDate m_date; // member offset: 16, size: 8, alignment: 8
int m_weekDayFirstOfMonth; // member offset: 24, size: 4, alignment: 4
int m_numDaysThisMonth; // member offset: 28, size: 4, alignment: 4
QRectF m_maxCell; // member offset: 32, size: 32, alignment: 8
int m_numWeekRows; // member offset: 64, size: 4, alignment: 4
int m_numDayColumns; // member offset: 68, size: 4, alignment: 4
bool m_popupMenuEnabled; // member offset: 72, size: 1 (needed: 1 bits), alignment: 1
bool m_useCustomColors; // member offset: 73, size: 1 (needed: 1 bits), alignment: 1
// 6 byte(s) padding
QHash<int, KDateTable::KDateTablePrivate::DatePaintingMode> m_customPaintingModes; // member offset: 80, size: 8, alignment: 8
int m_hoveredPos; // member offset: 88, size: 4, alignment: 4
// 4 byte(s) padding
}; // size: 96, alignment: 8
Used bytes: 189/200 (94.5%)
Used bits: 1506/1600 (94.12%)
Optimal size: 192 bytes (-8 bytes, 4%)
class KFontChooser::Private // location: /k/kde5/src/kwidgetsaddons/src/kfontchooser.cpp:79
{
KFontChooser* q; // member offset: 0, size: 8, alignment: 8
QPalette m_palette; // member offset: 8, size: 16, alignment: 8
bool signalsAllowed:1; // member offset: 24, size: 1 (needed: 1 bits), alignment: 1, bit offset: 7
bool usingFixed:1; // member offset: 24, size: 1 (needed: 1 bits), alignment: 1, bit offset: 6
// 7 byte(s) padding
QDoubleSpinBox* sizeOfFont; // member offset: 32, size: 8, alignment: 8
QTextEdit* sampleEdit; // member offset: 40, size: 8, alignment: 8
QLabel* familyLabel; // member offset: 48, size: 8, alignment: 8
QLabel* styleLabel; // member offset: 56, size: 8, alignment: 8
QCheckBox* familyCheckbox; // member offset: 64, size: 8, alignment: 8
QCheckBox* styleCheckbox; // member offset: 72, size: 8, alignment: 8
QCheckBox* sizeCheckbox; // member offset: 80, size: 8, alignment: 8
QLabel* sizeLabel; // member offset: 88, size: 8, alignment: 8
QListWidget* familyListBox; // member offset: 96, size: 8, alignment: 8
QListWidget* styleListBox; // member offset: 104, size: 8, alignment: 8
QListWidget* sizeListBox; // member offset: 112, size: 8, alignment: 8
QCheckBox* sizeIsRelativeCheckBox; // member offset: 120, size: 8, alignment: 8
QFont selFont; // member offset: 128, size: 16, alignment: 8
QString selectedStyle; // member offset: 144, size: 8, alignment: 8
qreal selectedSize; // member offset: 152, size: 8, alignment: 8
int customSizeRow; // member offset: 160, size: 4, alignment: 4
// 4 byte(s) padding
QString standardSizeAtCustom; // member offset: 168, size: 8, alignment: 8
QHash<QString, QString> qtFamilies; // member offset: 176, size: 8, alignment: 8
QHash<QString, QString> qtStyles; // member offset: 184, size: 8, alignment: 8
QHash<QString, QString> styleIDs; // member offset: 192, size: 8, alignment: 8
}; // size: 200, alignment: 8
Used bytes: 25/40 (62.5%)
Used bits: 173/320 (54.06%)
Optimal size: 32 bytes (-8 bytes, 20%)
class KCapacityBar::Private // location: /k/kde5/src/kwidgetsaddons/src/kcapacitybar.cpp:43
{
int value; // member offset: 0, size: 4, alignment: 4
// 4 byte(s) padding
QString text; // member offset: 8, size: 8, alignment: 8
bool fillFullBlocks; // member offset: 16, size: 1 (needed: 1 bits), alignment: 1
bool continuous; // member offset: 17, size: 1 (needed: 1 bits), alignment: 1
// 2 byte(s) padding
int barHeight; // member offset: 20, size: 4, alignment: 4
Alignment horizontalTextAlignment; // member offset: 24, size: 4, alignment: 4
ControlElement ce_capacityBar; // member offset: 28, size: 4 (needed: 10 bits), alignment: 4
DrawTextMode drawTextMode; // member offset: 32, size: 4 (needed: 1 bits), alignment: 4
// 4 byte(s) padding
}; // size: 40, alignment: 8
Used bytes: 176/184 (95.65%)
Used bits: 1408/1472 (95.65%)
Optimal size: 176 bytes (-8 bytes, 4.348%)
class KPasswordDialog::KPasswordDialogPrivate // location: /k/kde5/src/kwidgetsaddons/src/kpassworddialog.cpp:36
{
KPasswordDialog* q; // member offset: 0, size: 8, alignment: 8
KPasswordDialogFlags m_flags; // member offset: 8, size: 4, alignment: 4
// 4 byte(s) padding
Ui_KPasswordDialog ui; // member offset: 16, size: 136, alignment: 8
QMap<QString, QString> knownLogins; // member offset: 152, size: 8, alignment: 8
QComboBox* userEditCombo; // member offset: 160, size: 8, alignment: 8
QLabel* pixmapLabel; // member offset: 168, size: 8, alignment: 8
unsigned int commentRow; // member offset: 176, size: 4, alignment: 4
// 4 byte(s) padding
}; // size: 184, alignment: 8
Used bytes: 55/72 (76.39%)
Used bits: 420/576 (72.92%)
Optimal size: 64 bytes (-8 bytes, 11.11%)
class KRatingPainter::Private // location: /k/kde5/src/kwidgetsaddons/src/kratingpainter.cpp:30
{
int maxRating; // member offset: 0, size: 4, alignment: 4
// 4 byte(s) padding
QIcon icon; // member offset: 8, size: 8, alignment: 8
bool isEnabled; // member offset: 16, size: 1 (needed: 1 bits), alignment: 1
bool bHalfSteps; // member offset: 17, size: 1 (needed: 1 bits), alignment: 1
// 2 byte(s) padding
Alignment alignment; // member offset: 20, size: 4, alignment: 4
LayoutDirection direction; // member offset: 24, size: 4 (needed: 2 bits), alignment: 4
// 4 byte(s) padding
QPixmap customPixmap; // member offset: 32, size: 32, alignment: 8
int spacing; // member offset: 64, size: 4, alignment: 4
// 4 byte(s) padding
}; // size: 72, alignment: 8</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>src/kcapacitybar.cpp <span style="color: grey">(5009208d0057933553245b1f007c9779b916bdf6)</span></li>
<li>src/kcolumnresizer.cpp <span style="color: grey">(6316bff145c337d9f16ac33f1b8dadb168b67ab0)</span></li>
<li>src/kdatetable.cpp <span style="color: grey">(495d64b91faf21b26dcee51131b8cf2c270b213f)</span></li>
<li>src/kfontchooser.cpp <span style="color: grey">(16eecc42f20a733902bab00532610c1caee9ac3b)</span></li>
<li>src/kpassworddialog.cpp <span style="color: grey">(2d05df2d1feb3f87751db104d6d64dc736c58e1a)</span></li>
<li>src/kratingpainter.cpp <span style="color: grey">(624c3cb0a66b37e6ac250eaaffeae9604cfa6cc0)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/123390/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>