path: root/src/gui/text/qcssparser_p.h
diff options
authorDavid Faure <>2019-03-03 14:55:20 +0100
committerDavid Faure <>2019-12-03 17:54:24 +0100
commit9f79ab360fd8a504601d3c66a7773eeaa09bffde (patch)
tree966c2191c7a314f005cf752d17ceaa99b15f32c7 /src/gui/text/qcssparser_p.h
parente4d1a03df00b7fb9528f4cd600038515a07196db (diff)
Fix assert in QTextDocument CSS parser on "border-width: 1pt"
The code was assuming that if the parsing of the value worked, then it must be a list of 4 variants. But in this case it's just a single length. This came from <td> using 4 values for border-width while other elements use a single value. But the storage is shared. So the fix is to use 4 values everywhere. When reading 4 and there's only one, it gets duplicated, so the caller can just use the first one in that case. Task-number: QTBUG-80496 Change-Id: I682244b6e3781c4d673a62d5e6511dac263c58e8 Reviewed-by: Nils Jeisecke <> Reviewed-by: Shawn Rutledge <>
Diffstat (limited to 'src/gui/text/qcssparser_p.h')
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gui/text/qcssparser_p.h b/src/gui/text/qcssparser_p.h
index ab85e76cf3..d91b095a76 100644
--- a/src/gui/text/qcssparser_p.h
+++ b/src/gui/text/qcssparser_p.h
@@ -856,13 +856,13 @@ struct Q_GUI_EXPORT ValueExtractor
int extractStyleFeatures();
bool extractImage(QIcon *icon, Qt::Alignment *a, QSize *size);
- int lengthValue(const Declaration &decl);
+ void lengthValues(const Declaration &decl, int *m);
void extractFont();
void borderValue(const Declaration &decl, int *width, QCss::BorderStyle *style, QBrush *color);
LengthData lengthValue(const Value& v);
- void lengthValues(const Declaration &decl, int *m);
+ int lengthValue(const Declaration &decl);
QSize sizeValue(const Declaration &decl);
void sizeValues(const Declaration &decl, QSize *radii);