| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
svn path=/trunk/libcss/; revision=11972
|
|
|
|
| |
svn path=/trunk/libcss/; revision=11599
|
|
|
|
| |
svn path=/trunk/libcss/; revision=11557
|
|
|
|
| |
svn path=/trunk/libcss/; revision=11522
|
|
|
|
| |
svn path=/trunk/libcss/; revision=11492
|
|
|
|
|
|
| |
r=jmb,kinnison,vince
svn path=/trunk/libcss/; revision=11408
|
|
|
|
|
|
| |
Move properties ready for split
svn path=/trunk/libcss/; revision=11005
|
|
|
|
|
|
| |
parallelise their processing
svn path=/trunk/libcss/; revision=10999
|
|
|
|
|
|
|
|
|
|
|
| |
These prevent stylesheets being used in multiple contexts simultaneously.
Their values can be inferred from the context in which the stylesheet is used.
Replace use of ownerRule to backtrack in style selection with a (fixed-size)
stack of rules to process. This prevents crashes when a sheet that was
previously imported somewhere is reused as a top-level sheet.
svn path=/trunk/libcss/; revision=10581
|
|
|
|
| |
svn path=/trunk/libcss/; revision=10168
|
|
|
|
|
|
|
| |
TODO: update the tests to include a refcounting proof
svn path=/trunk/libcss/; revision=10162
|
|
|
|
|
|
|
|
|
| |
They are properties of the context in which the stylesheet is used.
Therefore, for top-level sheets, this information must be provided at selection
time. For child sheets, the origin is inherited from their parent and the
applicable media types are specified on the linking mechanism.
svn path=/trunk/libcss/; revision=9802
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2) Cache unused css_style objects with chunks of size 16, 32, 48, and 64 bytes
The above should reduce heap churn somewhat.
Further improvements are possible:
1) Make the property parsers write the parsed values direct into the output
bytecode, instead of into a temporary object which is then merged into
the output.
2) Perform similar caching for css_rule and selector objects.
3) Shrink-wrap finalised output styles rather than leaving them oversized.
4) Perform measurement to determine the optimal chunk sizes (power-of-2 makes
maths simple and 16 is plucked from thin air) and cache bucket count/sizes.
svn path=/trunk/libcss/; revision=9502
|
|
|
|
|
|
| |
compilers.
svn path=/trunk/libcss/; revision=8990
|
|
|
|
| |
svn path=/trunk/libcss/; revision=8830
|
|
|
|
| |
svn path=/trunk/libcss/; revision=8228
|
|
|
|
| |
svn path=/trunk/libcss/; revision=8024
|
|
|
|
| |
svn path=/trunk/libcss/; revision=8014
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6519
|
|
|
|
|
|
|
|
|
| |
It passes the tests, perhaps we need more of them.
Lifetimes of lwc_string objects really need attention before we can consider
this finished.
svn path=/trunk/libcss/; revision=6517
|
|
|
|
|
|
| |
No longer is the client called back mid-parse. Instead, they must acquire details of and process imported stylesheets after css_stylesheet_data_done() has been called on the parent sheet. The return code of css_stylesheet_data_done() informs the client of the need to process imported sheets.
svn path=/trunk/libcss/; revision=6504
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6482
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6453
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6406
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6270
|
|
|
|
|
|
|
|
| |
Note that we store the specificity on each simple selector. Thus the total specificity for a combinator chain is obtained by summing the specificity of each chain member.
TODO: distinguish between pseudo classes and elements.
svn path=/trunk/libcss/; revision=6267
|
|
|
|
|
|
| |
element selectors. Everything else is handled via detail.
svn path=/trunk/libcss/; revision=6266
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6263
|
|
|
|
|
|
|
| |
Create a common header for the test harnesses to use, instead.
Fix z-index dumping while we're at it.
svn path=/trunk/libcss/; revision=6146
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6064
|
|
|
|
|
|
|
| |
There's still a bunch of outstanding functionality here (like URL resolution and media list parsing).
Also, there's currently no way of telling the client to stop fetching data for a stylesheet (and, more importantly, not to attempt to access the stylesheet again as it's about to be destroyed)
svn path=/trunk/libcss/; revision=6062
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6059
|
|
|
|
|
|
| |
pointless to create objects on the heap which can equally well be on the stack, given the shortness of their lifetime.
svn path=/trunk/libcss/; revision=5863
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5862
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use pointers to parserutils_hash_entry directly in stylesheet datastructures.
The upshot of this for allzengarden.css is:
5506 slots used (of 8192 => 67.211914%)
Data:
8 full blocks: 32768 bytes
9 partial blocks: 35124 bytes (of 36864 => 95.279945%)
Total: 69936 (4112) (32)
Hash structures: 65584
i.e. a total string dictionary size of 135,520 bytes, which is some 74,056 bytes less than before.
svn path=/trunk/libcss/; revision=5859
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This approximately halves the size of the interned string table.
We now have the following for allzengarden.css:
5507 slots used (of 8192 => 67.224121%)
Data:
3 full blocks: 12288 bytes
10 partial blocks: 38946 bytes (of 40960 => 95.083008%)
Total: 53488 (4112) (32)
Entries:
21 full blocks: 86016 bytes
1 partial blocks: 2096 bytes (of 4096 => 51.171875%)
Total: 90496 (4112) (32)
Hash structures: 65592
Which gives a total dictionary size of 209,576 bytes.
Note that 43% of this is parserutils_hash_entry structures (length-pointer pairs). It would be good, therefore, to be able to purge these.
svn path=/trunk/libcss/; revision=5852
|
|
|
|
|
|
| |
through a singly linked list to find the end every time we want to insert a rule. This doubles parsing speed.
svn path=/trunk/libcss/; revision=5811
|
|
|
|
|
|
| |
previous approach. Space requirements for rule objects alone is now 447,120 bytes as opposed to 819,270 bytes previously. This reduces the space requirements for allzengarden.css to 2,041,712 bytes, which is 45% the size of what we had originally.
svn path=/trunk/libcss/; revision=5810
|
|
|
|
|
|
|
|
|
|
| |
use dict entries directly as strings.
iChange the way in which selectors are represented. This significantly reduces memory requirements -- reducing the approximate usage count (excludes the string dictionary, which is about 360k) of allzengarden.css from 4,535,400 bytes to 2,414,312 bytes on a 64bit platform.
The string dictionary is now created and owned by the stylesheet object. The parser is just given access to this so that it can store strings in it.
svn path=/trunk/libcss/; revision=5809
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5675
|
|
|
|
|
|
| |
Provide API to create/destroy css_styles and append them to css_rules.
svn path=/trunk/libcss/; revision=5625
|
|
|
|
|
|
| |
Stub out handlers for properties.
svn path=/trunk/libcss/; revision=5620
|
|
|
|
|
|
| |
selectors in the ruleset. Therefore, hang it off the css_rule object, rather than having a separate copy for every selector in the ruleset. Selectors know which css_rule they belong to so can easily find the applicable style information.
svn path=/trunk/libcss/; revision=5609
|
|
|
|
|
|
| |
Make the css21 test driver call this so we can see if it's working.
svn path=/trunk/libcss/; revision=5602
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5599
|
|
|
|
|
|
| |
frontend. This probably wants reworking as we don't really want to be switching on the language level every time we want to interact with the parser frontend.
svn path=/trunk/libcss/; revision=5437
|
|
|
|
|
|
| |
Make public headers use libcss_ as their guard macro prefix.
svn path=/trunk/libcss/; revision=5433
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5376
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5306
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5305
|