diff --git a/src/add-ons/input_server/devices/keyboard/KeyboardInputDevice.cpp b/src/add-ons/input_server/devices/keyboard/KeyboardInputDevice.cpp index e93afdeaa8..e49c0d7ad3 100644 --- a/src/add-ons/input_server/devices/keyboard/KeyboardInputDevice.cpp +++ b/src/add-ons/input_server/devices/keyboard/KeyboardInputDevice.cpp @@ -753,18 +753,22 @@ KeyboardInputDevice::DeviceWatcher(void *arg) if (numBytes2<=0) { numBytes2 = 1; + delete[] str2; str2 = str; - } + } else + delete[] str; if (is_keydown && (lastKeyCode == keycode)) { repeatCount++; msg->AddInt32("be:key_repeat", repeatCount); } else repeatCount = 1; - } + } else + delete[] str; if (numBytes2>0) msg->AddInt32("raw_char", (uint32)((uint8)str2[0] & 0x7f)); + delete[] str2; if (dev->owner->EnqueueMessage(msg)!=B_OK) delete msg;