[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:23:00 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 864fe8ff4ab66552409b6429413ea96fd32ebf78
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Jan 31 04:09:16 2003 +0000

            Reviewed by Ken, Maciej, and Trey.
    
    	- fixed 3161486 -- REGRESSION: double click on a widget causes crash
    
            * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget):
            Only pass the mouseUp event if it's not the same as the current event.
            Through a strange set of circumstances, sometimes the "mouse down" event is a mouse up
            event (due to KHTML vs. AppKit differences for double-click handling).
    
            - fixed build with newer compiler
    
            * khtml/html/Makefile.am: Use ANSI-C style, not C++ style, gperf.
            * khtml/html/doctypes.cpp: Regenerated.
            * khtml/html/html_documentimpl.cpp: Do __inline workaround to make newer compiler happy.
            (HTMLDocumentImpl::determineParseMode): Change to use ANSI-C style.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3517 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 4a390e9..5a6dce0 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,23 @@
 === Safari-55 ===
 
+2003-01-30  Darin Adler  <darin at apple.com>
+
+        Reviewed by Ken, Maciej, and Trey.
+
+	- fixed 3161486 -- REGRESSION: double click on a widget causes crash
+
+        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget):
+        Only pass the mouseUp event if it's not the same as the current event.
+        Through a strange set of circumstances, sometimes the "mouse down" event is a mouse up
+        event (due to KHTML vs. AppKit differences for double-click handling).
+
+        - fixed build with newer compiler
+
+        * khtml/html/Makefile.am: Use ANSI-C style, not C++ style, gperf.
+        * khtml/html/doctypes.cpp: Regenerated.
+        * khtml/html/html_documentimpl.cpp: Do __inline workaround to make newer compiler happy.
+        (HTMLDocumentImpl::determineParseMode): Change to use ANSI-C style.
+
 2003-01-30  Richard Williamson   <rjw at apple.com>
 
         Fix for 3156831 (and dupe 3160816).  Don't access userInfo on an invalid NSTimer.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 4a390e9..5a6dce0 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,23 @@
 === Safari-55 ===
 
+2003-01-30  Darin Adler  <darin at apple.com>
+
+        Reviewed by Ken, Maciej, and Trey.
+
+	- fixed 3161486 -- REGRESSION: double click on a widget causes crash
+
+        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget):
+        Only pass the mouseUp event if it's not the same as the current event.
+        Through a strange set of circumstances, sometimes the "mouse down" event is a mouse up
+        event (due to KHTML vs. AppKit differences for double-click handling).
+
+        - fixed build with newer compiler
+
+        * khtml/html/Makefile.am: Use ANSI-C style, not C++ style, gperf.
+        * khtml/html/doctypes.cpp: Regenerated.
+        * khtml/html/html_documentimpl.cpp: Do __inline workaround to make newer compiler happy.
+        (HTMLDocumentImpl::determineParseMode): Change to use ANSI-C style.
+
 2003-01-30  Richard Williamson   <rjw at apple.com>
 
         Fix for 3156831 (and dupe 3160816).  Don't access userInfo on an invalid NSTimer.
diff --git a/WebCore/khtml/html/Makefile.am b/WebCore/khtml/html/Makefile.am
index 9f5df0b..3213d07 100644
--- a/WebCore/khtml/html/Makefile.am
+++ b/WebCore/khtml/html/Makefile.am
@@ -1,8 +1,8 @@
 kentities.c: kentities.gperf
 	$(GPERF) -a -L "ANSI-C" -C -G -c -o -t -k '*' -NfindEntity -D -s 2 $< > $@
 
-doctypes.cpp: doctypes.gperf
-	$(GPERF) -CEot -L "C++" -k "*" -N findDoctypeEntry -F ,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards $< > $@
+doctypes.cpp: doctypes.gperf Makefile.am
+	$(GPERF) -CEot -L "ANSI-C" -k "*" -N findDoctypeEntry -F ,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards $< > $@
 
 noinst_HEADERS = kentities.c doctypes.cpp
 BUILT_SOURCES = $(noinst_HEADERS)
diff --git a/WebCore/khtml/html/doctypes.cpp b/WebCore/khtml/html/doctypes.cpp
index 7384d7e..460f058 100644
--- a/WebCore/khtml/html/doctypes.cpp
+++ b/WebCore/khtml/html/doctypes.cpp
@@ -1,5 +1,5 @@
-/* C++ code produced by gperf version 2.7.2 */
-/* Command-line: gperf -CEot -L C++ -k '*' -N findDoctypeEntry -F ,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards doctypes.gperf  */
+/* ANSI-C code produced by gperf version 2.7.2 */
+/* Command-line: gperf -CEot -L ANSI-C -k '*' -N findDoctypeEntry -F ,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards doctypes.gperf  */
 struct PubIDInfo {
     enum eMode { 
         eQuirks,         
@@ -13,16 +13,15 @@ struct PubIDInfo {
 };
 /* maximum key range = 566, duplicates = 0 */
 
-class Perfect_Hash
-{
-private:
-  static inline unsigned int hash (const char *str, unsigned int len);
-public:
-  static const struct PubIDInfo *findDoctypeEntry (const char *str, unsigned int len);
-};
-
-inline unsigned int
-Perfect_Hash::hash (register const char *str, register unsigned int len)
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+hash (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
@@ -223,8 +222,11 @@ Perfect_Hash::hash (register const char *str, register unsigned int len)
   return hval;
 }
 
+#ifdef __GNUC__
+__inline
+#endif
 const struct PubIDInfo *
-Perfect_Hash::findDoctypeEntry (register const char *str, register unsigned int len)
+findDoctypeEntry (register const char *str, register unsigned int len)
 {
   enum
     {
diff --git a/WebCore/khtml/html/html_documentimpl.cpp b/WebCore/khtml/html/html_documentimpl.cpp
index 712f0eb..70e8e5a 100644
--- a/WebCore/khtml/html/html_documentimpl.cpp
+++ b/WebCore/khtml/html/html_documentimpl.cpp
@@ -73,7 +73,6 @@
 
 #include "khtml_factory.h"
 #include "rendering/render_object.h"
-#include "doctypes.cpp"
 
 #include <dcopclient.h>
 #include <kapplication.h>
@@ -93,6 +92,14 @@
 #include "KWQKCookieJar.h"
 #endif
 
+
+// Turn off inlining to avoid warning with newer gcc.
+#undef __inline
+#define __inline
+#include "doctypes.cpp"
+#undef __inline
+
+
 template class QPtrStack<DOM::NodeImpl>;
 
 using namespace DOM;
@@ -586,7 +593,7 @@ void HTMLDocumentImpl::determineParseMode( const QString &str )
             const char* pubIDStr = lowerPubID.latin1();
            
             // Look up the entry in our gperf-generated table.
-            const PubIDInfo* doctypeEntry = Perfect_Hash::findDoctypeEntry(pubIDStr, publicID.length());
+            const PubIDInfo* doctypeEntry = findDoctypeEntry(pubIDStr, publicID.length());
             if (!doctypeEntry) {
                 // The DOCTYPE is not in the list.  Assume strict mode.
                 pMode = Strict;
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index 0f2adab..14d8914 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -927,9 +927,11 @@ bool KWQKHTMLPart::passWidgetMouseDownEventToWidget(RenderWidget *renderWidget)
     // the khtml state with this mouseUp, which khtml never saw.
     // If this event isn't a mouseUp, we assume that the mouseUp will be coming later.  There
     // is a hole here if the widget consumes the mouseUp and subsequent events.
-    NSEvent *lastEvent = [NSApp currentEvent];
-    if ([lastEvent type] == NSLeftMouseUp) {
-        mouseUp(lastEvent);
+    NSEvent *currentEventAfterHandlingMouseDown = [NSApp currentEvent];
+    if (_currentEvent != currentEventAfterHandlingMouseDown) {
+        if ([currentEventAfterHandlingMouseDown type] == NSLeftMouseUp) {
+            mouseUp(currentEventAfterHandlingMouseDown);
+        }
     }
     
     return true;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list