summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Changes to the encoding of content in bytecode to better match the spec.John Mark Bell2008-12-034-12/+285
| | | | | | Beginnings of a content property parser. svn path=/trunk/libcss/; revision=5874
* Something approximating clipJohn Mark Bell2008-12-024-17/+138
| | | | svn path=/trunk/libcss/; revision=5870
* Rather less memory corruption.John Mark Bell2008-12-021-8/+8
| | | | svn path=/trunk/libcss/; revision=5869
* border-spacingJohn Mark Bell2008-12-021-5/+90
| | | | svn path=/trunk/libcss/; revision=5867
* Fix up azimuth to cater for !important after property value.John Mark Bell2008-12-012-13/+157
| | | | | | Something approximating background-position. svn path=/trunk/libcss/; revision=5866
* Finish azimuthJohn Mark Bell2008-12-012-2/+72
| | | | svn path=/trunk/libcss/; revision=5865
* The advantage of interning strings is that you don't have to store their ↵John Mark Bell2008-12-013-30/+20
| | | | | | | | 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
* Given that we're going to be copying selector details, anyway, it seems ↵John Mark Bell2008-12-013-64/+26
| | | | | | 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
* Retain pointer to dictionary entries so we don't have to rediscover it later.John Mark Bell2008-12-019-463/+437
| | | | svn path=/trunk/libcss/; revision=5862
* Simplify decision as to whether to intern token data by inserting markers ↵John Mark Bell2008-12-012-29/+23
| | | | | | into the css_token_type enum. svn path=/trunk/libcss/; revision=5860
* Divorce css_string from whatever gets stored in lpu hashes.John Mark Bell2008-12-015-16/+19
| | | | | | | | | | | | | | | | | | 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
* More modifications to allow numerous iterations for profiling.John Mark Bell2008-11-303-73/+88
| | | | | | | | | | | Overall time breakdown for allzengarden.css is approximately: lex : 37% core : 43% lang : 20% svn path=/trunk/libcss/; revision=5857
* Modify to allow a configurable number of iterations for profiling.John Mark Bell2008-11-301-27/+43
| | | | svn path=/trunk/libcss/; revision=5856
* Make getToken reduce consecutive whitespace tokens to a single whitespace token.John Mark Bell2008-11-301-9/+19
| | | | | | Update eatWS appropriately. This reduces the number of calls to getToken by a million or so. svn path=/trunk/libcss/; revision=5855
* Slightly clearer code. Marginally faster, too.John Mark Bell2008-11-301-42/+52
| | | | svn path=/trunk/libcss/; revision=5854
* Use parserutils_hash instead of parserutils_dict.John Mark Bell2008-11-307-30/+30
| | | | | | | | | | | | | | | | | | | | | | 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
* Commentary on which tokens actually need string data interning.John Mark Bell2008-11-301-0/+12
| | | | svn path=/trunk/libcss/; revision=5848
* Beginnings of azimuth.John Mark Bell2008-11-302-6/+70
| | | | svn path=/trunk/libcss/; revision=5847
* Tidy things up somewhat.John Mark Bell2008-11-286-607/+615
| | | | | | 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
* Optimise css_stylesheet_add_rule by the cunning approach of not iterating ↵John Mark Bell2008-11-282-9/+7
| | | | | | 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
* Change the way in which css_rules are defined. This is more compact than the ↵John Mark Bell2008-11-282-64/+117
| | | | | | 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
* css_string is now the same as a parserutils_dict_entry. This allows us to ↵John Mark Bell2008-11-2713-517/+676
| | | | | | | | | | 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
* Calculate some kind of ballpark figure for the memory requirements of a ↵John Mark Bell2008-11-271-12/+31
| | | | | | stylesheet. Summary: lots. svn path=/trunk/libcss/; revision=5808
* Prevent reading from beyond the start of token data.John Mark Bell2008-11-271-5/+6
| | | | svn path=/trunk/libcss/; revision=5807
* Don't intern strings for CSS_TOKEN_S tokens. This is pointless, as all we ↵John Mark Bell2008-11-271-1/+5
| | | | | | care about is the token type in this case. svn path=/trunk/libcss/; revision=5806
* z-indexJohn Mark Bell2008-11-261-4/+53
| | | | svn path=/trunk/libcss/; revision=5805
* word-spacingJohn Mark Bell2008-11-261-4/+57
| | | | svn path=/trunk/libcss/; revision=5804
* widthJohn Mark Bell2008-11-261-4/+56
| | | | svn path=/trunk/libcss/; revision=5803
* widowsJohn Mark Bell2008-11-261-4/+49
| | | | svn path=/trunk/libcss/; revision=5802
* white-spaceJohn Mark Bell2008-11-262-4/+44
| | | | svn path=/trunk/libcss/; revision=5801
* volumeJohn Mark Bell2008-11-262-5/+96
| | | | svn path=/trunk/libcss/; revision=5800
* visibilityJohn Mark Bell2008-11-261-4/+35
| | | | svn path=/trunk/libcss/; revision=5799
* vertical-alignJohn Mark Bell2008-11-262-5/+94
| | | | svn path=/trunk/libcss/; revision=5798
* unicode-bidiJohn Mark Bell2008-11-252-5/+38
| | | | svn path=/trunk/libcss/; revision=5797
* text-transformJohn Mark Bell2008-11-252-5/+42
| | | | svn path=/trunk/libcss/; revision=5796
* text-indentJohn Mark Bell2008-11-251-4/+54
| | | | svn path=/trunk/libcss/; revision=5795
* text-alignJohn Mark Bell2008-11-252-5/+40
| | | | svn path=/trunk/libcss/; revision=5794
* table-layoutJohn Mark Bell2008-11-251-4/+33
| | | | svn path=/trunk/libcss/; revision=5793
* stressJohn Mark Bell2008-11-251-4/+48
| | | | svn path=/trunk/libcss/; revision=5792
* speech-rateJohn Mark Bell2008-11-252-5/+80
| | | | svn path=/trunk/libcss/; revision=5790
* speakJohn Mark Bell2008-11-252-5/+37
| | | | svn path=/trunk/libcss/; revision=5789
* speak-punctuationJohn Mark Bell2008-11-252-5/+35
| | | | svn path=/trunk/libcss/; revision=5788
* speak-numeralJohn Mark Bell2008-11-252-5/+36
| | | | svn path=/trunk/libcss/; revision=5787
* speak-headerJohn Mark Bell2008-11-252-5/+35
| | | | svn path=/trunk/libcss/; revision=5786
* richnessJohn Mark Bell2008-11-251-4/+50
| | | | svn path=/trunk/libcss/; revision=5785
* positionJohn Mark Bell2008-11-252-5/+44
| | | | svn path=/trunk/libcss/; revision=5784
* pitchJohn Mark Bell2008-11-252-5/+72
| | | | svn path=/trunk/libcss/; revision=5783
* pitch-rangeJohn Mark Bell2008-11-251-4/+48
| | | | svn path=/trunk/libcss/; revision=5782
* pause-beforeJohn Mark Bell2008-11-251-4/+52
| | | | svn path=/trunk/libcss/; revision=5781
* Fix previous commitJohn Mark Bell2008-11-251-1/+1
| | | | svn path=/trunk/libcss/; revision=5780