fix: correct Android JNI float array reads
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
This commit is contained in:
@@ -1186,8 +1186,8 @@ jni::jboolean NativeMapView::setRasterParticleColors(JNIEnv& env,
|
||||
auto* layer = dynamic_cast<mbgl::style::RasterParticleLayer*>(map->getStyle().getLayer(jni::Make<std::string>(env, layerId)));
|
||||
if (!layer || particle.Length(env) != 4 || trail.Length(env) != 4) return false;
|
||||
std::array<float, 4> particleColor, trailColor;
|
||||
jni::GetArrayRegion(env, particle, 0, 4, particleColor.data());
|
||||
jni::GetArrayRegion(env, trail, 0, 4, trailColor.data());
|
||||
particle.GetRegion(env, 0, particleColor);
|
||||
trail.GetRegion(env, 0, trailColor);
|
||||
if (!mbgl::style::validWeatherRGBA(particleColor) || !mbgl::style::validWeatherRGBA(trailColor)) return false;
|
||||
layer->setParticleColor(particleColor);
|
||||
layer->setTrailColor(trailColor);
|
||||
@@ -1202,8 +1202,8 @@ jni::jboolean NativeMapView::setWeatherColorStops(JNIEnv& env,
|
||||
const auto count = speeds.Length(env);
|
||||
if (!layer || count < 2 || count > static_cast<jni::jsize>(mbgl::style::MaxWeatherColorStops) || rgba.Length(env) != count * 4) return false;
|
||||
std::vector<float> speedValues(count), rgbaValues(static_cast<size_t>(count) * 4);
|
||||
jni::GetArrayRegion(env, speeds, 0, count, speedValues.data());
|
||||
jni::GetArrayRegion(env, rgba, 0, count * 4, rgbaValues.data());
|
||||
speeds.GetRegion(env, 0, speedValues);
|
||||
rgba.GetRegion(env, 0, rgbaValues);
|
||||
std::vector<mbgl::style::WeatherColorStop> stops;
|
||||
stops.reserve(count);
|
||||
for (jni::jsize i = 0; i < count; ++i) {
|
||||
|
||||
Reference in New Issue
Block a user