]> git.eshelyaron.com Git - emacs.git/commitdiff
Take precautions against NULL returns from getPrimaryClip
authorPo Lu <luangruo@yahoo.com>
Tue, 22 Aug 2023 07:28:38 +0000 (15:28 +0800)
committerPo Lu <luangruo@yahoo.com>
Tue, 22 Aug 2023 07:28:38 +0000 (15:28 +0800)
* java/org/gnu/emacs/EmacsSdk11Clipboard.java (getClipboardData):
Return null if the clip data is not set.  Also delete superfluous
debugging code.  (bug#65445)
(getClipboard): Don't dereference NULL clip data.

java/org/gnu/emacs/EmacsSdk11Clipboard.java

index 4959ec36eed1554045d8528b9465d488b961337e..b34753922b8619fb04476df2ef33971386b711c4 100644 (file)
@@ -71,10 +71,6 @@ public final class EmacsSdk11Clipboard extends EmacsClipboard
   public synchronized void
   onPrimaryClipChanged ()
   {
-    Log.d (TAG, ("onPrimaryClipChanged: "
-                + monitoredClipboardChangedCount
-                + " " + clipboardChangedCount));
-
     /* Increment monitoredClipboardChangeCount.  If it is now greater
        than clipboardChangedCount, then Emacs no longer owns the
        clipboard.  */
@@ -187,6 +183,10 @@ public final class EmacsSdk11Clipboard extends EmacsClipboard
     /* N.B. that Android calls the clipboard the ``primary clip''; it
        is not related to the X primary selection.  */
     clip = manager.getPrimaryClip ();
+
+    if (clip == null)
+      return null;
+
     description = clip.getDescription ();
     i = description.getMimeTypeCount ();
     typeArray = new byte[i][i];
@@ -237,14 +237,12 @@ public final class EmacsSdk11Clipboard extends EmacsClipboard
        return null;
       }
 
-    Log.d (TAG, "getClipboardData: "+ mimeType);
-
     /* Now obtain the clipboard data and the data corresponding to
        that MIME type.  */
 
     data = manager.getPrimaryClip ();
 
-    if (data.getItemCount () < 1)
+    if (data == null || data.getItemCount () < 1)
       return null;
 
     try
@@ -254,8 +252,6 @@ public final class EmacsSdk11Clipboard extends EmacsClipboard
        if (uri == null)
          return null;
 
-       Log.d (TAG, "getClipboardData: "+ uri);
-
        /* Now open the file descriptor.  */
        assetFd = resolver.openTypedAssetFileDescriptor (uri, mimeType,
                                                         null);
@@ -270,8 +266,6 @@ public final class EmacsSdk11Clipboard extends EmacsClipboard
 
        /* Close the original offset.  */
        assetFd.close ();
-
-       Log.d (TAG, "getClipboardData: "+ value);
       }
     catch (FileNotFoundException e)
       {