Bug 1185589 - Fix unintentional assignment in PuppetWidget::ExecuteNativeKeyBinding. r=masayuki, a=2.1+
--- a/widget/xpwidgets/PuppetWidget.cpp
+++ b/widget/xpwidgets/PuppetWidget.cpp
@@ -326,35 +326,38 @@ PuppetWidget::ExecuteNativeKeyBinding(Na
void* aCallbackData)
{
// B2G doesn't have native key bindings.
#ifdef MOZ_B2G
return false;
#else // #ifdef MOZ_B2G
MOZ_ASSERT(mNativeKeyCommandsValid);
- nsTArray<mozilla::CommandInt>& commands = mSingleLineCommands;
+ const nsTArray<mozilla::CommandInt>* commands = nullptr;
switch (aType) {
case nsIWidget::NativeKeyBindingsForSingleLineEditor:
- commands = mSingleLineCommands;
+ commands = &mSingleLineCommands;
break;
case nsIWidget::NativeKeyBindingsForMultiLineEditor:
- commands = mMultiLineCommands;
+ commands = &mMultiLineCommands;
break;
case nsIWidget::NativeKeyBindingsForRichTextEditor:
- commands = mRichTextCommands;
+ commands = &mRichTextCommands;
+ break;
+ default:
+ MOZ_CRASH("Invalid type");
break;
}
- if (commands.IsEmpty()) {
+ if (commands->IsEmpty()) {
return false;
}
- for (uint32_t i = 0; i < commands.Length(); i++) {
- aCallback(static_cast<mozilla::Command>(commands[i]), aCallbackData);
+ for (uint32_t i = 0; i < commands->Length(); i++) {
+ aCallback(static_cast<mozilla::Command>((*commands)[i]), aCallbackData);
}
return true;
#endif
}
LayerManager*
PuppetWidget::GetLayerManager(PLayerTransactionChild* aShadowManager,
LayersBackend aBackendHint,