[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

darin darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:25:59 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 824f81bd1750bc9c34db171a34e0fd037c12b0f0
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Feb 25 22:28:31 2003 +0000

            Reviewed by me, changes by Dave.
    
            - fixed 3181790 -- REGRESSION: TextRun objects of length 0 or with just the character '\n' leak
    
            * khtml/rendering/render_text.cpp: (RenderText::position): Destroy the passed-in
            TextRun if it's the kind that's not needed, rather than just returning.
    
            - fixed 3181794 -- REGRESSION: objects created by RenderObject::createInlineBox leak
    
            * khtml/rendering/render_box.cpp: (RenderBox::position): Only do work for replaced
            elements, and for those elements, destroy the passed-in InlineBox. Dave says this
            is not the real solution, but it does plug the leak.
    
            * khtml/rendering/render_flow.cpp: (RenderFlow::createInlineBox): Call through
            to the inherited createInlineBox for all replaced elements. This code was making
            the wrong kind of InlineBox for replaced elements.
    
            - removed Id cvs magic string which causes big headaches in generated files
    
            * khtml/css/parser.cpp: Removed Id cvs magic string.
            * khtml/css/parser.y: Removed Id cvs magic string.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3696 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index f502163..d946127 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,4 +1,27 @@
-<<<<<<< ChangeLog
+2003-02-25  Darin Adler  <darin at apple.com>
+
+        Reviewed by me, changes by Dave.
+
+        - fixed 3181790 -- REGRESSION: TextRun objects of length 0 or with just the character '\n' leak
+
+        * khtml/rendering/render_text.cpp: (RenderText::position): Destroy the passed-in
+        TextRun if it's the kind that's not needed, rather than just returning.
+
+        - fixed 3181794 -- REGRESSION: objects created by RenderObject::createInlineBox leak
+        	        
+        * khtml/rendering/render_box.cpp: (RenderBox::position): Only do work for replaced
+        elements, and for those elements, destroy the passed-in InlineBox. Dave says this
+        is not the real solution, but it does plug the leak.
+        
+        * khtml/rendering/render_flow.cpp: (RenderFlow::createInlineBox): Call through
+        to the inherited createInlineBox for all replaced elements. This code was making
+        the wrong kind of InlineBox for replaced elements.
+        
+        - removed Id cvs magic string which causes big headaches in generated files
+
+        * khtml/css/parser.cpp: Removed Id cvs magic string.
+        * khtml/css/parser.y: Removed Id cvs magic string.
+
 2003-02-24  David Hyatt  <hyatt at apple.com>
 
 	The new CSS1 parser, implementation of attr(), improvement of
@@ -159,7 +182,6 @@
         (QPainter::drawLine):
         * kwq/KWQString.h:
 
-=======
 2003-02-24  Maciej Stachowiak  <mjs at apple.com>
 
         Reviewed by John.
@@ -171,7 +193,6 @@
         (HTMLDocumentImpl::HTMLDocumentImpl): Added new processingLoadEvent bool.
         (HTMLDocumentImpl::close): Guard against re-entering the load event handler.
 
->>>>>>> 1.1437
 2003-02-24  Darin Adler  <darin at apple.com>
 
         Reviewed by Ken.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index f502163..d946127 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,4 +1,27 @@
-<<<<<<< ChangeLog
+2003-02-25  Darin Adler  <darin at apple.com>
+
+        Reviewed by me, changes by Dave.
+
+        - fixed 3181790 -- REGRESSION: TextRun objects of length 0 or with just the character '\n' leak
+
+        * khtml/rendering/render_text.cpp: (RenderText::position): Destroy the passed-in
+        TextRun if it's the kind that's not needed, rather than just returning.
+
+        - fixed 3181794 -- REGRESSION: objects created by RenderObject::createInlineBox leak
+        	        
+        * khtml/rendering/render_box.cpp: (RenderBox::position): Only do work for replaced
+        elements, and for those elements, destroy the passed-in InlineBox. Dave says this
+        is not the real solution, but it does plug the leak.
+        
+        * khtml/rendering/render_flow.cpp: (RenderFlow::createInlineBox): Call through
+        to the inherited createInlineBox for all replaced elements. This code was making
+        the wrong kind of InlineBox for replaced elements.
+        
+        - removed Id cvs magic string which causes big headaches in generated files
+
+        * khtml/css/parser.cpp: Removed Id cvs magic string.
+        * khtml/css/parser.y: Removed Id cvs magic string.
+
 2003-02-24  David Hyatt  <hyatt at apple.com>
 
 	The new CSS1 parser, implementation of attr(), improvement of
@@ -159,7 +182,6 @@
         (QPainter::drawLine):
         * kwq/KWQString.h:
 
-=======
 2003-02-24  Maciej Stachowiak  <mjs at apple.com>
 
         Reviewed by John.
@@ -171,7 +193,6 @@
         (HTMLDocumentImpl::HTMLDocumentImpl): Added new processingLoadEvent bool.
         (HTMLDocumentImpl::close): Guard against re-entering the load event handler.
 
->>>>>>> 1.1437
 2003-02-24  Darin Adler  <darin at apple.com>
 
         Reviewed by Ken.
diff --git a/WebCore/khtml/css/parser.cpp b/WebCore/khtml/css/parser.cpp
index cfa0938..4a4a867 100644
--- a/WebCore/khtml/css/parser.cpp
+++ b/WebCore/khtml/css/parser.cpp
@@ -75,7 +75,6 @@
  *  License along with this library; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- *  $Id$
  */
 
 #ifdef HAVE_CONFIG_H
@@ -130,7 +129,7 @@ static inline int getValueID(const char *tagStr, int len)
 #define YYMAXDEPTH 0
 #define YYPARSE_PARAM parser
 
-#line 80 "parser.y"
+#line 79 "parser.y"
 typedef union {
     CSSRuleImpl *rule;
     CSSSelector *selector;
@@ -150,7 +149,7 @@ typedef union {
     Value value;
     ValueList *valueList;
 } YYSTYPE;
-#line 100 "parser.y"
+#line 99 "parser.y"
 
 
 static inline int cssyyerror(const char *x ) {
@@ -285,20 +284,20 @@ static const short yyrhs[] = {    66,
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   226,   228,   229,   230,   233,   240,   246,   271,   273,   276,
-   278,   279,   282,   284,   289,   290,   293,   295,   306,   308,
-   318,   320,   321,   322,   323,   324,   327,   338,   341,   346,
-   348,   351,   355,   359,   366,   380,   385,   392,   394,   403,
-   425,   429,   434,   438,   443,   445,   446,   449,   451,   454,
-   474,   488,   504,   508,   525,   530,   534,   540,   561,   566,
-   571,   581,   588,   589,   590,   593,   602,   626,   632,   640,
-   644,   647,   650,   653,   656,   661,   663,   666,   672,   680,
-   684,   689,   692,   698,   706,   710,   716,   722,   727,   733,
-   741,   764,   771,   773,   776,   781,   794,   798,   801,   806,
-   808,   809,   810,   816,   817,   818,   820,   825,   827,   828,
-   829,   830,   831,   832,   833,   834,   835,   836,   837,   838,
-   839,   840,   841,   842,   843,   844,   848,   863,   870,   877,
-   885,   911,   913,   916,   918
+   225,   227,   228,   229,   232,   239,   245,   270,   272,   275,
+   277,   278,   281,   283,   288,   289,   292,   294,   305,   307,
+   317,   319,   320,   321,   322,   323,   326,   337,   340,   345,
+   347,   350,   354,   358,   365,   379,   384,   391,   393,   402,
+   424,   428,   433,   437,   442,   444,   445,   448,   450,   453,
+   473,   487,   503,   507,   524,   529,   533,   539,   560,   565,
+   570,   580,   587,   588,   589,   592,   601,   625,   631,   639,
+   643,   646,   649,   652,   655,   660,   662,   665,   671,   679,
+   683,   688,   691,   697,   705,   709,   715,   721,   726,   732,
+   740,   763,   770,   772,   775,   780,   793,   797,   800,   805,
+   807,   808,   809,   815,   816,   817,   819,   824,   826,   827,
+   828,   829,   830,   831,   832,   833,   834,   835,   836,   837,
+   838,   839,   840,   841,   842,   843,   847,   862,   869,   876,
+   884,   910,   912,   915,   917
 };
 #endif
 
@@ -1054,20 +1053,20 @@ yyreduce:
   switch (yyn) {
 
 case 5:
-#line 234 "parser.y"
+#line 233 "parser.y"
 {
         CSSParser *p = static_cast<CSSParser *>(parser);
 	p->rule = yyvsp[-2].rule;
     ;
     break;}
 case 6:
-#line 241 "parser.y"
+#line 240 "parser.y"
 {
 	/* can be empty */
     ;
     break;}
 case 7:
-#line 247 "parser.y"
+#line 246 "parser.y"
 {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	if ( yyvsp[-1].valueList ) {
@@ -1092,7 +1091,7 @@ case 7:
     ;
     break;}
 case 14:
-#line 284 "parser.y"
+#line 283 "parser.y"
 {
 #ifdef CSS_DEBUG
      kdDebug( 6080 ) << "charset rule: " << qString(yyvsp[-2].string) << endl;
@@ -1100,7 +1099,7 @@ case 14:
  ;
     break;}
 case 18:
-#line 295 "parser.y"
+#line 294 "parser.y"
 {
      CSSParser *p = static_cast<CSSParser *>(parser);
      if ( yyvsp[-1].rule && p->styleElement && p->styleElement->isCSSStyleSheet() ) {
@@ -1111,7 +1110,7 @@ case 18:
  ;
     break;}
 case 20:
-#line 308 "parser.y"
+#line 307 "parser.y"
 {
      CSSParser *p = static_cast<CSSParser *>(parser);
      if ( yyvsp[-1].rule && p->styleElement && p->styleElement->isCSSStyleSheet() ) {
@@ -1122,7 +1121,7 @@ case 20:
  ;
     break;}
 case 27:
-#line 328 "parser.y"
+#line 327 "parser.y"
 {
 #ifdef CSS_DEBUG
 	kdDebug( 6080 ) << "@import: " << qString(yyvsp[-3].string) << endl;
@@ -1135,32 +1134,32 @@ case 27:
     ;
     break;}
 case 28:
-#line 338 "parser.y"
+#line 337 "parser.y"
 {
         yyval.rule = 0;
     ;
     break;}
 case 29:
-#line 341 "parser.y"
+#line 340 "parser.y"
 {
         yyval.rule = 0;
     ;
     break;}
 case 32:
-#line 352 "parser.y"
+#line 351 "parser.y"
 {
 	yyval.mediaList = 0;
     ;
     break;}
 case 33:
-#line 355 "parser.y"
+#line 354 "parser.y"
 {
 	yyval.mediaList = new MediaListImpl();
 	yyval.mediaList->appendMedium( domString(yyvsp[0].string) );
     ;
     break;}
 case 34:
-#line 359 "parser.y"
+#line 358 "parser.y"
 {
 	yyval.mediaList = yyvsp[-3].mediaList;
 	if ( !yyval.mediaList ) yyval.mediaList = new MediaListImpl();
@@ -1168,7 +1167,7 @@ case 34:
     ;
     break;}
 case 35:
-#line 367 "parser.y"
+#line 366 "parser.y"
 {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	if ( yyvsp[-4].mediaList && yyvsp[-1].ruleList &&
@@ -1182,25 +1181,25 @@ case 35:
     ;
     break;}
 case 36:
-#line 381 "parser.y"
+#line 380 "parser.y"
 {
 	yyval.mediaList = new MediaListImpl();
 	yyval.mediaList->appendMedium( domString(yyvsp[0].string) );
     ;
     break;}
 case 37:
-#line 385 "parser.y"
+#line 384 "parser.y"
 {
 	yyval.mediaList = yyvsp[-3].mediaList;
 	yyval.mediaList->appendMedium( domString(yyvsp[0].string) );
     ;
     break;}
 case 38:
-#line 393 "parser.y"
+#line 392 "parser.y"
 { yyval.ruleList = 0; ;
     break;}
 case 39:
-#line 394 "parser.y"
+#line 393 "parser.y"
 {
       yyval.ruleList = yyvsp[-2].ruleList;
       if ( yyvsp[-1].rule ) {
@@ -1210,57 +1209,57 @@ case 39:
   ;
     break;}
 case 40:
-#line 404 "parser.y"
+#line 403 "parser.y"
 {
       yyval.string = yyvsp[-1].string;
   ;
     break;}
 case 41:
-#line 426 "parser.y"
+#line 425 "parser.y"
 {
       yyval.rule = 0;
     ;
     break;}
 case 42:
-#line 429 "parser.y"
+#line 428 "parser.y"
 {
       yyval.rule = 0;
     ;
     break;}
 case 43:
-#line 435 "parser.y"
+#line 434 "parser.y"
 {
       yyval.rule = 0;
     ;
     break;}
 case 44:
-#line 438 "parser.y"
+#line 437 "parser.y"
 {
       yyval.rule = 0;
     ;
     break;}
 case 45:
-#line 444 "parser.y"
+#line 443 "parser.y"
 { yyval.relation = CSSSelector::Sibling; ;
     break;}
 case 46:
-#line 445 "parser.y"
+#line 444 "parser.y"
 { yyval.relation = CSSSelector::Child; ;
     break;}
 case 47:
-#line 446 "parser.y"
+#line 445 "parser.y"
 { yyval.relation = CSSSelector::Descendant; ;
     break;}
 case 48:
-#line 450 "parser.y"
+#line 449 "parser.y"
 { yyval.val = -1; ;
     break;}
 case 49:
-#line 451 "parser.y"
+#line 450 "parser.y"
 { yyval.val = 1; ;
     break;}
 case 50:
-#line 455 "parser.y"
+#line 454 "parser.y"
 {
 #ifdef CSS_DEBUG
 	kdDebug( 6080 ) << "got ruleset" << endl << "  selector:" << endl;
@@ -1280,7 +1279,7 @@ case 50:
     ;
     break;}
 case 51:
-#line 475 "parser.y"
+#line 474 "parser.y"
 {
 	if ( yyvsp[0].selector ) {
 	    yyval.selectorList = new QPtrList<CSSSelector>;
@@ -1296,7 +1295,7 @@ case 51:
     ;
     break;}
 case 52:
-#line 488 "parser.y"
+#line 487 "parser.y"
 {
 	yyval.selectorList = yyvsp[-3].selectorList;
 	if ( yyvsp[0].selector ) {
@@ -1313,13 +1312,13 @@ case 52:
     ;
     break;}
 case 53:
-#line 505 "parser.y"
+#line 504 "parser.y"
 {
 	yyval.selector = yyvsp[0].selector;
     ;
     break;}
 case 54:
-#line 508 "parser.y"
+#line 507 "parser.y"
 {
     	yyval.selector = yyvsp[0].selector;
         CSSSelector *end = yyvsp[0].selector;
@@ -1337,28 +1336,28 @@ DOM::DocumentImpl *doc = p->document();
     ;
     break;}
 case 55:
-#line 526 "parser.y"
+#line 525 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->tag = yyvsp[-1].element;
     ;
     break;}
 case 56:
-#line 530 "parser.y"
+#line 529 "parser.y"
 {
 	yyval.selector = yyvsp[-1].selector;
 	yyval.selector->tag = yyvsp[-2].element;
     ;
     break;}
 case 57:
-#line 534 "parser.y"
+#line 533 "parser.y"
 {
 	yyval.selector = yyvsp[-1].selector;
 	yyval.selector->tag = -1;
     ;
     break;}
 case 58:
-#line 541 "parser.y"
+#line 540 "parser.y"
 {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	DOM::DocumentImpl *doc = p->document();
@@ -1381,20 +1380,20 @@ case 58:
     ;
     break;}
 case 59:
-#line 561 "parser.y"
+#line 560 "parser.y"
 {
 	yyval.element = -1;
     ;
     break;}
 case 60:
-#line 567 "parser.y"
+#line 566 "parser.y"
 {
 	yyval.selector = yyvsp[0].selector;
 	yyval.selector->nonCSSHint = static_cast<CSSParser *>(parser)->nonCSSHint;
     ;
     break;}
 case 61:
-#line 571 "parser.y"
+#line 570 "parser.y"
 {
 	yyval.selector = yyvsp[-1].selector;
         CSSSelector *end = yyvsp[-1].selector;
@@ -1405,7 +1404,7 @@ case 61:
     ;
     break;}
 case 62:
-#line 582 "parser.y"
+#line 581 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->match = CSSSelector::Id;
@@ -1414,7 +1413,7 @@ case 62:
     ;
     break;}
 case 66:
-#line 594 "parser.y"
+#line 593 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->match = CSSSelector::List;
@@ -1423,7 +1422,7 @@ case 66:
     ;
     break;}
 case 67:
-#line 603 "parser.y"
+#line 602 "parser.y"
 {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	DOM::DocumentImpl *doc = p->document();
@@ -1447,7 +1446,7 @@ case 67:
     ;
     break;}
 case 68:
-#line 627 "parser.y"
+#line 626 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->attr = yyvsp[-1].attribute;
@@ -1455,7 +1454,7 @@ case 68:
     ;
     break;}
 case 69:
-#line 632 "parser.y"
+#line 631 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->attr = yyvsp[-5].attribute;
@@ -1464,43 +1463,43 @@ case 69:
     ;
     break;}
 case 70:
-#line 641 "parser.y"
+#line 640 "parser.y"
 {
 	yyval.val = CSSSelector::Exact;
     ;
     break;}
 case 71:
-#line 644 "parser.y"
+#line 643 "parser.y"
 {
 	yyval.val = CSSSelector::List;
     ;
     break;}
 case 72:
-#line 647 "parser.y"
+#line 646 "parser.y"
 {
 	yyval.val = CSSSelector::Hyphen;
     ;
     break;}
 case 73:
-#line 650 "parser.y"
+#line 649 "parser.y"
 {
 	yyval.val = CSSSelector::Begin;
     ;
     break;}
 case 74:
-#line 653 "parser.y"
+#line 652 "parser.y"
 {
 	yyval.val = CSSSelector::End;
     ;
     break;}
 case 75:
-#line 656 "parser.y"
+#line 655 "parser.y"
 {
 	yyval.val = CSSSelector::Contain;
     ;
     break;}
 case 78:
-#line 667 "parser.y"
+#line 666 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->match = CSSSelector::Pseudo;
@@ -1508,7 +1507,7 @@ case 78:
     ;
     break;}
 case 79:
-#line 672 "parser.y"
+#line 671 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->match = CSSSelector::Pseudo;
@@ -1517,13 +1516,13 @@ case 79:
     ;
     break;}
 case 80:
-#line 681 "parser.y"
+#line 680 "parser.y"
 {
 	yyval.ok = yyvsp[0].ok;
     ;
     break;}
 case 81:
-#line 684 "parser.y"
+#line 683 "parser.y"
 {
 	yyval.ok = yyvsp[-1].ok;
 	if ( yyvsp[0].ok )
@@ -1531,13 +1530,13 @@ case 81:
     ;
     break;}
 case 82:
-#line 689 "parser.y"
+#line 688 "parser.y"
 {
 	yyval.ok = yyvsp[0].ok;
     ;
     break;}
 case 83:
-#line 692 "parser.y"
+#line 691 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1546,7 +1545,7 @@ case 83:
     ;
     break;}
 case 84:
-#line 698 "parser.y"
+#line 697 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1555,13 +1554,13 @@ case 84:
     ;
     break;}
 case 85:
-#line 707 "parser.y"
+#line 706 "parser.y"
 {
 	yyval.ok = yyvsp[-2].ok;
     ;
     break;}
 case 86:
-#line 710 "parser.y"
+#line 709 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1570,7 +1569,7 @@ case 86:
     ;
     break;}
 case 87:
-#line 716 "parser.y"
+#line 715 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1579,7 +1578,7 @@ case 87:
     ;
     break;}
 case 88:
-#line 722 "parser.y"
+#line 721 "parser.y"
 {
 	yyval.ok = yyvsp[-3].ok;
 	if ( yyvsp[-2].ok )
@@ -1587,7 +1586,7 @@ case 88:
     ;
     break;}
 case 89:
-#line 727 "parser.y"
+#line 726 "parser.y"
 {
 	yyval.ok = yyvsp[-3].ok;
 #ifdef CSS_DEBUG
@@ -1596,7 +1595,7 @@ case 89:
     ;
     break;}
 case 90:
-#line 733 "parser.y"
+#line 732 "parser.y"
 {
 	yyval.ok = yyvsp[-5].ok;
 #ifdef CSS_DEBUG
@@ -1605,7 +1604,7 @@ case 90:
     ;
     break;}
 case 91:
-#line 742 "parser.y"
+#line 741 "parser.y"
 {
 	yyval.ok = false;
 	CSSParser *p = static_cast<CSSParser *>(parser);
@@ -1628,29 +1627,29 @@ case 91:
     ;
     break;}
 case 92:
-#line 765 "parser.y"
+#line 764 "parser.y"
 {
 	QString str = qString(yyvsp[-1].string);
 	yyval.prop_id = getPropertyID( str.lower().latin1(), str.length() );
     ;
     break;}
 case 93:
-#line 772 "parser.y"
+#line 771 "parser.y"
 { yyval.b = true; ;
     break;}
 case 94:
-#line 773 "parser.y"
+#line 772 "parser.y"
 { yyval.b = false; ;
     break;}
 case 95:
-#line 777 "parser.y"
+#line 776 "parser.y"
 {
 	yyval.valueList = new ValueList;
 	yyval.valueList->addValue( yyvsp[0].value );
     ;
     break;}
 case 96:
-#line 781 "parser.y"
+#line 780 "parser.y"
 {
 	yyval.valueList = yyvsp[-2].valueList;
 	if ( yyvsp[-1].tok ) {
@@ -1664,37 +1663,37 @@ case 96:
     ;
     break;}
 case 97:
-#line 795 "parser.y"
+#line 794 "parser.y"
 {
 	yyval.tok = '/';
     ;
     break;}
 case 98:
-#line 798 "parser.y"
+#line 797 "parser.y"
 {
 	yyval.tok = ',';
     ;
     break;}
 case 99:
-#line 801 "parser.y"
+#line 800 "parser.y"
 {
         yyval.tok = 0;
   ;
     break;}
 case 100:
-#line 807 "parser.y"
+#line 806 "parser.y"
 { yyval.value = yyvsp[0].value; ;
     break;}
 case 101:
-#line 808 "parser.y"
+#line 807 "parser.y"
 { yyval.value = yyvsp[0].value; yyval.value.fValue *= yyvsp[-1].val; ;
     break;}
 case 102:
-#line 809 "parser.y"
+#line 808 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_STRING; ;
     break;}
 case 103:
-#line 810 "parser.y"
+#line 809 "parser.y"
 {
       QString str = qString( yyvsp[-1].string );
       yyval.value.id = getValueID( str.lower().latin1(), str.length() );
@@ -1703,101 +1702,101 @@ case 103:
   ;
     break;}
 case 104:
-#line 816 "parser.y"
+#line 815 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_URI; ;
     break;}
 case 105:
-#line 817 "parser.y"
+#line 816 "parser.y"
 { yyval.value.id = 0; yyval.value.iValue = 0; yyval.value.unit = CSSPrimitiveValue::CSS_UNKNOWN;/* ### */ ;
     break;}
 case 106:
-#line 818 "parser.y"
+#line 817 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[0].string; yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
     break;}
 case 107:
-#line 820 "parser.y"
+#line 819 "parser.y"
 {
       yyval.value = yyvsp[0].value;
   ;
     break;}
 case 108:
-#line 826 "parser.y"
+#line 825 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_NUMBER; ;
     break;}
 case 109:
-#line 827 "parser.y"
+#line 826 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;
     break;}
 case 110:
-#line 828 "parser.y"
+#line 827 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PX; ;
     break;}
 case 111:
-#line 829 "parser.y"
+#line 828 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_CM; ;
     break;}
 case 112:
-#line 830 "parser.y"
+#line 829 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MM; ;
     break;}
 case 113:
-#line 831 "parser.y"
+#line 830 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_IN; ;
     break;}
 case 114:
-#line 832 "parser.y"
+#line 831 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PT; ;
     break;}
 case 115:
-#line 833 "parser.y"
+#line 832 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PC; ;
     break;}
 case 116:
-#line 834 "parser.y"
+#line 833 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_DEG; ;
     break;}
 case 117:
-#line 835 "parser.y"
+#line 834 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_RAD; ;
     break;}
 case 118:
-#line 836 "parser.y"
+#line 835 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_GRAD; ;
     break;}
 case 119:
-#line 837 "parser.y"
+#line 836 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MS; ;
     break;}
 case 120:
-#line 838 "parser.y"
+#line 837 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_S; ;
     break;}
 case 121:
-#line 839 "parser.y"
+#line 838 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_HZ; ;
     break;}
 case 122:
-#line 840 "parser.y"
+#line 839 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_KHZ; ;
     break;}
 case 123:
-#line 841 "parser.y"
+#line 840 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EMS; ;
     break;}
 case 124:
-#line 842 "parser.y"
+#line 841 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = Value::Q_EMS; ;
     break;}
 case 125:
-#line 843 "parser.y"
+#line 842 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EXS; ;
     break;}
 case 126:
-#line 844 "parser.y"
+#line 843 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_DIMENSION ;
     break;}
 case 127:
-#line 849 "parser.y"
+#line 848 "parser.y"
 {
       Function *f = new Function;
       f->name = yyvsp[-4].string;
@@ -1808,11 +1807,11 @@ case 127:
   ;
     break;}
 case 128:
-#line 864 "parser.y"
+#line 863 "parser.y"
 { yyval.string = yyvsp[-1].string; ;
     break;}
 case 129:
-#line 871 "parser.y"
+#line 870 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -1821,7 +1820,7 @@ case 129:
     ;
     break;}
 case 130:
-#line 877 "parser.y"
+#line 876 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -1830,7 +1829,7 @@ case 130:
     ;
     break;}
 case 131:
-#line 886 "parser.y"
+#line 885 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -2060,6 +2059,6 @@ yyerrhandle:
     }
   return 1;
 }
-#line 921 "parser.y"
+#line 920 "parser.y"
 
 
diff --git a/WebCore/khtml/css/parser.y b/WebCore/khtml/css/parser.y
index be72e25..0ec81fd 100644
--- a/WebCore/khtml/css/parser.y
+++ b/WebCore/khtml/css/parser.y
@@ -19,7 +19,6 @@
  *  License along with this library; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- *  $Id$
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/WebCore/khtml/rendering/render_box.cpp b/WebCore/khtml/rendering/render_box.cpp
index 3d96d9a..686a934 100644
--- a/WebCore/khtml/rendering/render_box.cpp
+++ b/WebCore/khtml/rendering/render_box.cpp
@@ -437,8 +437,13 @@ bool RenderBox::absolutePosition(int &xPos, int &yPos, bool f)
 
 void RenderBox::position(InlineBox* box, int from, int len, bool reverse)
 {
-    m_x = box->xPos();
-    m_y = box->yPos();
+    if (isReplaced()) {
+        m_x = box->xPos();
+        m_y = box->yPos();
+
+        // Nuke the box.  We don't need it for replaced elements.
+        box->detach(renderArena());
+    }
 }
 
 void RenderBox::repaint(bool immediate)
diff --git a/WebCore/khtml/rendering/render_flow.cpp b/WebCore/khtml/rendering/render_flow.cpp
index d7e62b5..b9e8e93 100644
--- a/WebCore/khtml/rendering/render_flow.cpp
+++ b/WebCore/khtml/rendering/render_flow.cpp
@@ -153,6 +153,9 @@ void RenderFlow::detach(RenderArena* renderArena)
 
 InlineBox* RenderFlow::createInlineBox()
 {
+    if (isReplaced()) // Inline tables and inline blocks.
+        return RenderBox::createInlineBox();
+
     InlineFlowBox* flowBox = 0;
     if (isInlineFlow())
         flowBox = new (renderArena()) InlineFlowBox(this);
diff --git a/WebCore/khtml/rendering/render_text.cpp b/WebCore/khtml/rendering/render_text.cpp
index 22c97a0..8949ae0 100644
--- a/WebCore/khtml/rendering/render_text.cpp
+++ b/WebCore/khtml/rendering/render_text.cpp
@@ -1140,10 +1140,16 @@ InlineBox* RenderText::createInlineBox()
 
 void RenderText::position(InlineBox* box, int from, int len, bool reverse)
 {
+    TextRun *s = static_cast<TextRun*>(box);
+    
     // ### should not be needed!!!
-    if (len == 0 || (str->l && len == 1 && *(str->s+from) == '\n'))
+    if (len == 0 || (str->l && len == 1 && *(str->s+from) == '\n')) {
+        // We want the box to be destroyed.  This is a <br>, and we don't
+        // need <br>s to be included.
+        s->detach(renderArena());
         return;
-
+    }
+    
     reverse = reverse && !style()->visuallyOrdered();
 
 #ifdef DEBUG_LAYOUT
@@ -1152,7 +1158,6 @@ void RenderText::position(InlineBox* box, int from, int len, bool reverse)
     qDebug("setting run text to *%s*, len=%d, w)=%d" , cstr.string().latin1(), len, width );//" << y << ")" << " height=" << lineHeight(false) << " fontHeight=" << metrics(false).height() << " ascent =" << metrics(false).ascent() << endl;
 #endif
 
-    TextRun *s = static_cast<TextRun*>(box);
     s->m_reversed = reverse;
     s->m_start = from;
     s->m_len = len;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list