summaryrefslogtreecommitdiffstats
path: root/thunderbird-clipboard-crash.patch
diff options
context:
space:
mode:
Diffstat (limited to 'thunderbird-clipboard-crash.patch')
-rw-r--r--thunderbird-clipboard-crash.patch116
1 files changed, 116 insertions, 0 deletions
diff --git a/thunderbird-clipboard-crash.patch b/thunderbird-clipboard-crash.patch
new file mode 100644
index 0000000..d2861b8
--- /dev/null
+++ b/thunderbird-clipboard-crash.patch
@@ -0,0 +1,116 @@
+diff -r 7f1f309a34f8 widget/src/gtk2/nsClipboard.cpp
+--- a/mozilla/widget/src/gtk2/nsClipboard.cpp Thu Oct 22 12:45:52 2009 +0800
++++ b/mozilla/widget/src/gtk2/nsClipboard.cpp Fri Nov 13 11:19:27 2009 +0100
+@@ -424,25 +424,25 @@ nsClipboard::HasDataMatchingFlavors(cons
+ for (PRUint32 i = 0; i < aLength && !*_retval; i++) {
+ // We special case text/unicode here.
+ if (!strcmp(aFlavorList[i], kUnicodeMime) &&
+ gtk_selection_data_targets_include_text(selection_data)) {
+ *_retval = PR_TRUE;
+ break;
+ }
+
+ for (PRInt32 j = 0; j < n_targets; j++) {
+ gchar *atom_name = gdk_atom_name(targets[j]);
+- if (!strcmp(atom_name, aFlavorList[i]))
++ if (!g_strcmp0(atom_name, aFlavorList[i]))
+ *_retval = PR_TRUE;
+
+ // X clipboard wants image/jpeg, not image/jpg
+- if (!strcmp(aFlavorList[i], kJPEGImageMime) && !strcmp(atom_name, "image/jpeg"))
++ if (!g_strcmp0(aFlavorList[i], kJPEGImageMime) && !g_strcmp0(atom_name, "image/jpeg"))
+ *_retval = PR_TRUE;
+
+ g_free(atom_name);
+
+ if (*_retval)
+ break;
+ }
+ }
+ gtk_selection_data_free(selection_data);
+ g_free(targets);
+diff -r 7f1f309a34f8 widget/src/gtk2/nsDragService.cpp
+--- a/mozilla/widget/src/gtk2/nsDragService.cpp Thu Oct 22 12:45:52 2009 +0800
++++ b/mozilla/widget/src/gtk2/nsDragService.cpp Fri Nov 13 11:19:27 2009 +0100
+@@ -824,50 +824,47 @@ nsDragService::IsDataFlavorSupported(con
+
+ // check the target context vs. this flavor, one at a time
+ GList *tmp;
+ for (tmp = mTargetDragContext->targets; tmp; tmp = tmp->next) {
+ /* Bug 331198 */
+ GdkAtom atom = GDK_POINTER_TO_ATOM(tmp->data);
+ gchar *name = NULL;
+ name = gdk_atom_name(atom);
+ PR_LOG(sDragLm, PR_LOG_DEBUG,
+ ("checking %s against %s\n", name, aDataFlavor));
+- if (name && (strcmp(name, aDataFlavor) == 0)) {
++ if (g_strcmp0(name, aDataFlavor) == 0) {
+ PR_LOG(sDragLm, PR_LOG_DEBUG, ("good!\n"));
+ *_retval = PR_TRUE;
+ }
+ // check for automatic text/uri-list -> text/x-moz-url mapping
+ if (*_retval == PR_FALSE &&
+- name &&
+- (strcmp(name, gTextUriListType) == 0) &&
+- (strcmp(aDataFlavor, kURLMime) == 0)) {
++ (g_strcmp0(name, gTextUriListType) == 0) &&
++ (g_strcmp0(aDataFlavor, kURLMime) == 0)) {
+ PR_LOG(sDragLm, PR_LOG_DEBUG,
+ ("good! ( it's text/uri-list and \
+ we're checking against text/x-moz-url )\n"));
+ *_retval = PR_TRUE;
+ }
+ // check for automatic _NETSCAPE_URL -> text/x-moz-url mapping
+ if (*_retval == PR_FALSE &&
+- name &&
+- (strcmp(name, gMozUrlType) == 0) &&
+- (strcmp(aDataFlavor, kURLMime) == 0)) {
++ (g_strcmp0(name, gMozUrlType) == 0) &&
++ (g_strcmp0(aDataFlavor, kURLMime) == 0)) {
+ PR_LOG(sDragLm, PR_LOG_DEBUG,
+ ("good! ( it's _NETSCAPE_URL and \
+ we're checking against text/x-moz-url )\n"));
+ *_retval = PR_TRUE;
+ }
+ // check for auto text/plain -> text/unicode mapping
+ if (*_retval == PR_FALSE &&
+- name &&
+- (strcmp(name, kTextMime) == 0) &&
+- ((strcmp(aDataFlavor, kUnicodeMime) == 0) ||
+- (strcmp(aDataFlavor, kFileMime) == 0))) {
++ (g_strcmp0(name, kTextMime) == 0) &&
++ ((g_strcmp0(aDataFlavor, kUnicodeMime) == 0) ||
++ (g_strcmp0(aDataFlavor, kFileMime) == 0))) {
+ PR_LOG(sDragLm, PR_LOG_DEBUG,
+ ("good! ( it's text plain and we're checking \
+ against text/unicode or application/x-moz-file)\n"));
+ *_retval = PR_TRUE;
+ }
+ g_free(name);
+ }
+ return NS_OK;
+ }
+
+@@ -974,21 +971,21 @@ nsDragService::IsTargetContextList(void)
+
+ GList *tmp;
+
+ // walk the list of context targets and see if one of them is a list
+ // of items.
+ for (tmp = mTargetDragContext->targets; tmp; tmp = tmp->next) {
+ /* Bug 331198 */
+ GdkAtom atom = GDK_POINTER_TO_ATOM(tmp->data);
+ gchar *name = NULL;
+ name = gdk_atom_name(atom);
+- if (strcmp(name, gMimeListType) == 0)
++ if (g_strcmp0(name, gMimeListType) == 0)
+ retval = PR_TRUE;
+ g_free(name);
+ if (retval)
+ break;
+ }
+ return retval;
+ }
+
+ // Maximum time to wait for a "drag_received" arrived, in microseconds
+ #define NS_DND_TIMEOUT 500000