| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Change a few opcode values to be more consistent (namely, bit 7 set generally implies that there's data to follow).
svn path=/trunk/libcss/; revision=6048
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6047
|
|
|
|
|
|
| |
into value + unit pairs.
svn path=/trunk/libcss/; revision=6046
|
|
|
|
|
|
| |
necessarily integers.
svn path=/trunk/libcss/; revision=6045
|
|
|
|
|
|
| |
comparisons rather than simply comparing pointers. Calling strncasecmp for such short strings may incur an excessive overhead. If so, we can perform the comparison ourselves, thus avoiding the function call. Making the lexer separate the units from the value probably isn't helpful, particularly thanks to the need to handle "color: 0f0000;" in quirks mode (this will be lexed as a dimension).
svn path=/trunk/libcss/; revision=6044
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6043
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6042
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6041
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6037
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6020
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6018
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6017
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6016
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6015
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6014
|
|
|
|
|
|
| |
If you thought the code was ugly before, this is worse.
svn path=/trunk/libcss/; revision=6013
|
|
|
|
| |
svn path=/trunk/libcss/; revision=6012
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5973
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5883
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5882
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5881
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5880
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5879
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5878
|
|
|
|
|
|
| |
This simplifies and shortens the code.
svn path=/trunk/libcss/; revision=5877
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5876
|
|
|
|
|
|
| |
Use this when parsing counter functions.
svn path=/trunk/libcss/; revision=5875
|
|
|
|
|
|
| |
Beginnings of a content property parser.
svn path=/trunk/libcss/; revision=5874
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5870
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5869
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5867
|
|
|
|
|
|
| |
Something approximating background-position.
svn path=/trunk/libcss/; revision=5866
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5865
|
|
|
|
|
|
|
|
| |
length everywhere. Purge the length part from the encoding of a string in the bytecode.
Fix bytecode dump code to cope with this.
svn path=/trunk/libcss/; revision=5864
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
into the css_token_type enum.
svn path=/trunk/libcss/; revision=5860
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
Overall time breakdown for allzengarden.css is approximately:
lex : 37%
core : 43%
lang : 20%
svn path=/trunk/libcss/; revision=5857
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5856
|
|
|
|
|
|
| |
Update eatWS appropriately. This reduces the number of calls to getToken by a million or so.
svn path=/trunk/libcss/; revision=5855
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5854
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5848
|
|
|
|
| |
svn path=/trunk/libcss/; revision=5847
|
|
|
|
|
|
| |
css21 is now language, as everything will share the same parsing rules (although there is facility to alter behaviour based upon the language level -- consult language->sheet->level and then decide what to do)
svn path=/trunk/libcss/; revision=5815
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
stylesheet. Summary: lots.
svn path=/trunk/libcss/; revision=5808
|