GPS: Fix race condition reporting NMEA data.

Change-Id: I80997e2686d9c08d7d2def094f9922e83cf41013
Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
Eddie Ho
2009-09-04 07:03:22 -04:00
committed by Mike Lockwood
parent f163f7f0f2
commit eb40aae254

View File

@@ -370,14 +370,14 @@ static jint android_location_GpsLocationProvider_read_sv_status(JNIEnv* env, job
static jint android_location_GpsLocationProvider_read_nmea(JNIEnv* env, jobject obj, jint index, jbyteArray nmeaArray, jint buffer_size)
{
// this should only be called from within a call to reportStatus, so we don't need to lock here
// this should only be called from within a call to reportNmea, so we don't need to lock here
jbyte* nmea = env->GetByteArrayElements(nmeaArray, 0);
int length = strlen(sNmeaBuffer[index].nmea);
int length = strlen(sNmeaBufferCopy[index].nmea);
if (length > buffer_size)
length = buffer_size;
memcpy(nmea, sNmeaBuffer[index].nmea, length);
memcpy(nmea, sNmeaBufferCopy[index].nmea, length);
env->ReleaseByteArrayElements(nmeaArray, nmea, 0);
return length;