Reviewed by Ada.
[WebKit-https.git] / WebCore / platform / mac / ContextMenuMac.mm
index 5b221658245cbcc553c75c5ce0863c37ff068a77..e69f585f1329f41852756be87ee80cfe75c83269 100644 (file)
 
 @end
 
-using namespace WebCore;
+namespace WebCore {
 
 static MenuTarget* target;
+
+ContextMenu::ContextMenu(const HitTestResult& result)
+    : m_hitTestResult(result)
+    , m_platformDescription([NSMutableArray array])
+{
+}
+
+ContextMenu::~ContextMenu()
+{
+    [m_platformDescription release];
+}
  
 static NSMenuItem* getNSMenuItem(ContextMenu* menu, const ContextMenuItem& item)
 {
     if (!menu->platformDescription())
-        menu->setPlatformDescription([[[NSMutableArray alloc] init] autorelease]);
+        return 0;
     
     ContextMenuController* currentController = menu->controller();
     if (!target)
@@ -104,29 +115,35 @@ static NSMenuItem* getNSMenuItem(ContextMenu* menu, const ContextMenuItem& item)
 void ContextMenu::appendItem(const ContextMenuItem& item)
 {
     NSMenuItem* menuItem = getNSMenuItem(this, item);
-    [m_menu addObject:menuItem];
+    if (!menuItem)
+        return;
+        
+    [m_platformDescription addObject:menuItem];
     [menuItem release];
 }
 
 unsigned ContextMenu::itemCount() const
 {
-    return [m_menu count];
+    return [m_platformDescription count];
 }
 
 void ContextMenu::insertItem(unsigned position, const ContextMenuItem& item)
 {
     NSMenuItem* menuItem = getNSMenuItem(this, item);
-    [m_menu insertObject:menuItem atIndex:position];
+    if (!menuItem)
+        return;
+        
+    [m_platformDescription insertObject:menuItem atIndex:position];
     [menuItem release];
 }
 
 void ContextMenu::setPlatformDescription(NSMutableArray* menu)
 {
-    if (menu == m_menu)
+    if (menu == m_platformDescription)
         return;
     
-    [m_menu release]; 
-    m_menu = [menu retain];
+    [m_platformDescription release]; 
+    m_platformDescription = [menu retain];
 }
 
 void ContextMenu::show()
@@ -136,3 +153,5 @@ void ContextMenu::show()
 void ContextMenu::hide()
 {
 }
+
+}