111 lines
4.3 KiB
Diff
111 lines
4.3 KiB
Diff
|
From: Martin Stránský
|
||
|
Subject: Fix crash in clipboard handling
|
||
|
References:
|
||
|
https://bugzilla.mozilla.org/show_bug.cgi?id=495392
|
||
|
|
||
|
|
||
|
diff --git a/widget/src/gtk2/nsClipboard.cpp b/widget/src/gtk2/nsClipboard.cpp
|
||
|
--- a/widget/src/gtk2/nsClipboard.cpp
|
||
|
+++ b/widget/src/gtk2/nsClipboard.cpp
|
||
|
@@ -440,21 +440,21 @@ nsClipboard::HasDataMatchingFlavors(cons
|
||
|
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;
|
||
|
}
|
||
|
}
|
||
|
diff --git a/widget/src/gtk2/nsDragService.cpp b/widget/src/gtk2/nsDragService.cpp
|
||
|
--- a/widget/src/gtk2/nsDragService.cpp
|
||
|
+++ b/widget/src/gtk2/nsDragService.cpp
|
||
|
@@ -796,46 +796,43 @@ nsDragService::IsDataFlavorSupported(con
|
||
|
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;
|
||
|
@@ -946,17 +943,17 @@ nsDragService::IsTargetContextList(void)
|
||
|
|
||
|
// 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;
|
||
|
}
|
||
|
|