diff options
author | wolfbeast <mcwerewolf@gmail.com> | 2018-11-02 08:33:16 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2018-11-02 08:33:16 +0100 |
commit | 09fec033ec18a5c0eb29815924114016cee32a00 (patch) | |
tree | ba4801aaa5362aea0846e9dabb2fa9defe1c9352 /widget | |
parent | 9dc6bf850afece8e66b6c65aa8c5a81ee51005d7 (diff) | |
download | UXP-09fec033ec18a5c0eb29815924114016cee32a00.tar UXP-09fec033ec18a5c0eb29815924114016cee32a00.tar.gz UXP-09fec033ec18a5c0eb29815924114016cee32a00.tar.lz UXP-09fec033ec18a5c0eb29815924114016cee32a00.tar.xz UXP-09fec033ec18a5c0eb29815924114016cee32a00.zip |
Don't allocate PendingAction twice.
Diffstat (limited to 'widget')
-rw-r--r-- | widget/windows/TSFTextStore.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/widget/windows/TSFTextStore.cpp b/widget/windows/TSFTextStore.cpp index 7224126b8..c80de831c 100644 --- a/widget/windows/TSFTextStore.cpp +++ b/widget/windows/TSFTextStore.cpp @@ -4247,14 +4247,14 @@ TSFTextStore::InsertTextAtSelectionInternal(const nsAString& aInsertStr, TS_SELECTION_ACP oldSelection = contentForTSF.Selection().ACP(); if (!mComposition.IsComposing()) { // Use a temporary composition to contain the text - PendingAction* compositionStart = mPendingActions.AppendElement(); + PendingAction* compositionStart = mPendingActions.AppendElements(2); + PendingAction* compositionEnd = compositionStart + 1; compositionStart->mType = PendingAction::COMPOSITION_START; compositionStart->mSelectionStart = oldSelection.acpStart; compositionStart->mSelectionLength = oldSelection.acpEnd - oldSelection.acpStart; compositionStart->mAdjustSelection = false; - PendingAction* compositionEnd = mPendingActions.AppendElement(); compositionEnd->mType = PendingAction::COMPOSITION_END; compositionEnd->mData = aInsertStr; @@ -4455,10 +4455,12 @@ TSFTextStore::RecordCompositionEndAction() } // When only setting selection is necessary, we should append it. if (pendingAction.mAdjustSelection) { + LONG selectionStart = pendingAction.mSelectionStart; + LONG selectionLength = pendingAction.mSelectionLength; PendingAction* setSelection = mPendingActions.AppendElement(); setSelection->mType = PendingAction::SET_SELECTION; - setSelection->mSelectionStart = pendingAction.mSelectionStart; - setSelection->mSelectionLength = pendingAction.mSelectionLength; + setSelection->mSelectionStart = selectionStart; + setSelection->mSelectionLength = selectionLength; setSelection->mSelectionReversed = false; } // Remove the redundant pending composition. |