Android: Don't grab wiimote report if size is < 1

Fixes crash when using official wiimotes with the dolphin bar.
This commit is contained in:
zackhow 2019-01-27 16:38:48 -05:00
parent b14e540671
commit 831ab64e1c
1 changed files with 7 additions and 4 deletions

View File

@ -95,10 +95,13 @@ bool WiimoteAndroid::IsConnected() const
int WiimoteAndroid::IORead(u8* buf)
{
int read_size = m_env->CallStaticIntMethod(s_adapter_class, m_input_func, m_mayflash_index);
jbyte* java_data = m_env->GetByteArrayElements(m_java_wiimote_payload, nullptr);
memcpy(buf + 1, java_data, std::min(MAX_PAYLOAD - 1, read_size));
buf[0] = 0xA1;
m_env->ReleaseByteArrayElements(m_java_wiimote_payload, java_data, 0);
if (read_size > 0)
{
jbyte* java_data = m_env->GetByteArrayElements(m_java_wiimote_payload, nullptr);
memcpy(buf + 1, java_data, std::min(MAX_PAYLOAD - 1, read_size));
buf[0] = 0xA1;
m_env->ReleaseByteArrayElements(m_java_wiimote_payload, java_data, 0);
}
return read_size <= 0 ? read_size : read_size + 1;
}