diff options
author | Rodrigo Arias Mallo <rodarima@gmail.com> | 2024-05-31 19:53:14 +0200 |
---|---|---|
committer | Rodrigo Arias Mallo <rodarima@gmail.com> | 2024-10-05 09:46:55 +0200 |
commit | ac56aa678cfe1666b60821f342ccb7b3d3fa7a0d (patch) | |
tree | 2887de1a5a21c8550e4bd52ea8867c18a5e2bac9 /src/html.cc | |
parent | ee32215fc1937e8a5e3c26b646ca8563e8de92e9 (diff) |
Define CssLength as struct instead of int
The int type doesn't have a fixed size, and is only guarantee to hold 16
bits. The current implementation assumes a size of at least 32 bits, an
uses three bits to encode the type of information stored in the rest.
To add more types of lengths we would need to take more bits from the
value itself.
A simpler approach is just to use a enumeration to take care of the type
of length and a union to encapsulate the different lengths values.
Diffstat (limited to 'src/html.cc')
-rw-r--r-- | src/html.cc | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/html.cc b/src/html.cc index ac5dd1ab..1c5a08f4 100644 --- a/src/html.cc +++ b/src/html.cc @@ -2205,32 +2205,32 @@ static bool Html_load_image(BrowserWindow *bw, DilloUrl *url, static void Html_tag_open_img(DilloHtml *html, const char *tag, int tagsize) { - int space, border; + int border; const char *attrbuf; a_Html_common_image_attrs(html, tag, tagsize); /* Spacing to the left and right */ if ((attrbuf = a_Html_get_attr(html, tag, tagsize, "hspace"))) { - space = strtol(attrbuf, NULL, 10); + int space = strtol(attrbuf, NULL, 10); if (space > 0) { - space = CSS_CREATE_LENGTH(space, CSS_LENGTH_TYPE_PX); + CssLength len = CSS_CREATE_LENGTH(space, CSS_LENGTH_TYPE_PX); html->styleEngine->setNonCssHint (CSS_PROPERTY_MARGIN_LEFT, - CSS_TYPE_LENGTH_PERCENTAGE, space); + CSS_TYPE_LENGTH_PERCENTAGE, len); html->styleEngine->setNonCssHint (CSS_PROPERTY_MARGIN_RIGHT, - CSS_TYPE_LENGTH_PERCENTAGE, space); + CSS_TYPE_LENGTH_PERCENTAGE, len); } } /* Spacing at the top and bottom */ if ((attrbuf = a_Html_get_attr(html, tag, tagsize, "vspace"))) { - space = strtol(attrbuf, NULL, 10); + int space = strtol(attrbuf, NULL, 10); if (space > 0) { - space = CSS_CREATE_LENGTH(space, CSS_LENGTH_TYPE_PX); + CssLength len = CSS_CREATE_LENGTH(space, CSS_LENGTH_TYPE_PX); html->styleEngine->setNonCssHint (CSS_PROPERTY_MARGIN_TOP, - CSS_TYPE_LENGTH_PERCENTAGE, space); + CSS_TYPE_LENGTH_PERCENTAGE, len); html->styleEngine->setNonCssHint (CSS_PROPERTY_MARGIN_BOTTOM, - CSS_TYPE_LENGTH_PERCENTAGE, space); + CSS_TYPE_LENGTH_PERCENTAGE, len); } } @@ -2238,15 +2238,15 @@ static void Html_tag_open_img(DilloHtml *html, const char *tag, int tagsize) if ((attrbuf = a_Html_get_attr(html, tag, tagsize, "border"))) { border = strtol(attrbuf, NULL, 10); if (border >= 0) { - border = CSS_CREATE_LENGTH(border, CSS_LENGTH_TYPE_PX); + CssLength b = CSS_CREATE_LENGTH(border, CSS_LENGTH_TYPE_PX); html->styleEngine->setNonCssHint (CSS_PROPERTY_BORDER_TOP_WIDTH, - CSS_TYPE_LENGTH_PERCENTAGE, border); + CSS_TYPE_LENGTH_PERCENTAGE, b); html->styleEngine->setNonCssHint (CSS_PROPERTY_BORDER_BOTTOM_WIDTH, - CSS_TYPE_LENGTH_PERCENTAGE, border); + CSS_TYPE_LENGTH_PERCENTAGE, b); html->styleEngine->setNonCssHint (CSS_PROPERTY_BORDER_LEFT_WIDTH, - CSS_TYPE_LENGTH_PERCENTAGE, border); + CSS_TYPE_LENGTH_PERCENTAGE, b); html->styleEngine->setNonCssHint (CSS_PROPERTY_BORDER_RIGHT_WIDTH, - CSS_TYPE_LENGTH_PERCENTAGE, border); + CSS_TYPE_LENGTH_PERCENTAGE, b); html->styleEngine->setNonCssHint (CSS_PROPERTY_BORDER_TOP_STYLE, CSS_TYPE_ENUM, BORDER_SOLID); |