| Index: xfa/fwl/core/fwl_noteimp.cpp
 | 
| diff --git a/xfa/fwl/core/fwl_noteimp.cpp b/xfa/fwl/core/fwl_noteimp.cpp
 | 
| index 1e2b7bf479eeac4d184c5f44941eac0a227cf6d2..857fdfbac679a8d3f4f843555802f7757641d6c6 100644
 | 
| --- a/xfa/fwl/core/fwl_noteimp.cpp
 | 
| +++ b/xfa/fwl/core/fwl_noteimp.cpp
 | 
| @@ -9,7 +9,11 @@
 | 
|  #include "core/fxcrt/fx_ext.h"
 | 
|  #include "third_party/base/ptr_util.h"
 | 
|  #include "third_party/base/stl_util.h"
 | 
| -#include "xfa/fwl/core/cfwl_message.h"
 | 
| +#include "xfa/fwl/core/cfwl_msgkey.h"
 | 
| +#include "xfa/fwl/core/cfwl_msgkillfocus.h"
 | 
| +#include "xfa/fwl/core/cfwl_msgmouse.h"
 | 
| +#include "xfa/fwl/core/cfwl_msgmousewheel.h"
 | 
| +#include "xfa/fwl/core/cfwl_msgsetfocus.h"
 | 
|  #include "xfa/fwl/core/cfwl_widgetmgr.h"
 | 
|  #include "xfa/fwl/core/ifwl_app.h"
 | 
|  #include "xfa/fwl/core/ifwl_tooltip.h"
 | 
| @@ -182,23 +186,21 @@ void CFWL_NoteDriver::UnRegisterForm(IFWL_Widget* pForm) {
 | 
|    m_forms.RemoveAt(nIndex);
 | 
|  }
 | 
|  
 | 
| -void CFWL_NoteDriver::QueueMessage(CFWL_Message* pMessage) {
 | 
| -  pMessage->Retain();
 | 
| -  m_noteQueue.Add(pMessage);
 | 
| +void CFWL_NoteDriver::QueueMessage(std::unique_ptr<CFWL_Message> pMessage) {
 | 
| +  m_noteQueue.push_back(std::move(pMessage));
 | 
|  }
 | 
|  
 | 
|  void CFWL_NoteDriver::UnqueueMessage(CFWL_NoteLoop* pNoteLoop) {
 | 
| -  if (m_noteQueue.GetSize() < 1)
 | 
| +  if (m_noteQueue.empty())
 | 
|      return;
 | 
|  
 | 
| -  CFWL_Message* pMessage = m_noteQueue[0];
 | 
| -  m_noteQueue.RemoveAt(0);
 | 
| -  if (!IsValidMessage(pMessage)) {
 | 
| -    pMessage->Release();
 | 
| +  std::unique_ptr<CFWL_Message> pMessage = std::move(m_noteQueue[0]);
 | 
| +  m_noteQueue.pop_front();
 | 
| +
 | 
| +  if (!IsValidMessage(pMessage.get()))
 | 
|      return;
 | 
| -  }
 | 
| -  ProcessMessage(pMessage);
 | 
| -  pMessage->Release();
 | 
| +
 | 
| +  ProcessMessage(pMessage.get());
 | 
|  }
 | 
|  
 | 
|  CFWL_NoteLoop* CFWL_NoteDriver::GetTopLoop() const {
 | 
| 
 |