Ver Fonte

Fixes #1341: AudioBuffer.updateData only allows direct buffers (#1342)

* only allowing direct buffers now, see: https://hub.jmonkeyengine.org/t/solved-playing-audio-from-audiobuffer-in-audionode-causes-jre-to-die/43091/12

* style correction

Co-authored-by: Stephen Gold <[email protected]>
matthias plasser há 5 anos atrás
pai
commit
c85e2bcfd4
1 ficheiros alterados com 7 adições e 1 exclusões
  1. 7 1
      jme3-core/src/main/java/com/jme3/audio/AudioBuffer.java

+ 7 - 1
jme3-core/src/main/java/com/jme3/audio/AudioBuffer.java

@@ -31,9 +31,9 @@
  */
 package com.jme3.audio;
 
-import com.jme3.audio.AudioData.DataType;
 import com.jme3.util.BufferUtils;
 import com.jme3.util.NativeObject;
+
 import java.nio.ByteBuffer;
 
 /**
@@ -85,8 +85,14 @@ public class AudioBuffer extends AudioData {
     /**
      * Update the data in the buffer with new data.
      * @param data
+     * @throws IllegalArgumentException if the provided buffer is not a direct buffer
      */
     public void updateData(ByteBuffer data){
+        if (!data.isDirect()) {
+            throw new IllegalArgumentException(
+                    "Currently only direct buffers are allowed");
+        }
+
         this.audioData = data;
         updateNeeded = true;
     }