changeset 163:6695cbc7fe43

2008-10-06 Omair Majid <omajid@redhat.com> * src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java (read): Continue reading if peek returns null. * src/native/org_classpath_icedtea_pulseaudio_Stream.c (Java_org_classpath_icedtea_pulseaudio_Stream_native_1pa_1stream_1peek): Return null if no data to read.
author Omair Majid <omajid@redhat.com>
date Mon, 06 Oct 2008 17:03:22 -0400
parents fa7dd0d762f1
children e688b471726e
files src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java src/native/org_classpath_icedtea_pulseaudio_Stream.c
diffstat 2 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java	Mon Oct 06 15:36:55 2008 -0400
+++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java	Mon Oct 06 17:03:22 2008 -0400
@@ -219,11 +219,12 @@
 
 					/* read a fragment, and drop it from the server */
 					currentFragment = stream.peek();
+					
 					stream.drop();
 					if (currentFragment == null) {
 						System.out
 								.println("DEBUG: PulseAudioTargetDataLine:read(): error in stream.peek()");
-						return sizeRead;
+						continue;
 					}
 
 					bytesRead = Math.min(currentFragment.length,
--- a/src/native/org_classpath_icedtea_pulseaudio_Stream.c	Mon Oct 06 15:36:55 2008 -0400
+++ b/src/native/org_classpath_icedtea_pulseaudio_Stream.c	Mon Oct 06 17:03:22 2008 -0400
@@ -560,6 +560,11 @@
 		return NULL;
 	}
 
+	/* no data available */
+	if (startLocation == NULL) {
+		return NULL;
+	}
+	
 	jsize length = count;
 	jbyteArray data = (*env)->NewByteArray(env, length);