diff options
author | ojan@google.com <ojan@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-03 23:34:04 +0000 |
---|---|---|
committer | ojan@google.com <ojan@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-03 23:34:04 +0000 |
commit | 83f8b61d6498f23b6e74598bffa9866fda52ea3a (patch) | |
tree | 6359863ae2d40e953a8c4b7cf27e1664dd08a09b /base | |
parent | 0dea0a65b4cabd5910fb8747a0cb3935a27e6ec5 (diff) | |
download | chromium_src-83f8b61d6498f23b6e74598bffa9866fda52ea3a.zip chromium_src-83f8b61d6498f23b6e74598bffa9866fda52ea3a.tar.gz chromium_src-83f8b61d6498f23b6e74598bffa9866fda52ea3a.tar.bz2 |
Reverting 9109.
Broke the build.
Review URL: http://codereview.chromium.org/20029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9110 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/win_util.cc | 63 | ||||
-rw-r--r-- | base/win_util.h | 18 |
2 files changed, 0 insertions, 81 deletions
diff --git a/base/win_util.cc b/base/win_util.cc index e18007b..cfd7f2b 100644 --- a/base/win_util.cc +++ b/base/win_util.cc @@ -4,15 +4,12 @@ #include "base/win_util.h" -#include <map> #include <sddl.h> #include "base/logging.h" #include "base/registry.h" #include "base/scoped_handle.h" -#include "base/singleton.h" #include "base/string_util.h" -#include "base/tracked.h" namespace win_util { @@ -364,66 +361,6 @@ std::wstring FormatLastWin32Error() { return FormatMessage(GetLastError()); } -typedef std::map<HWND, tracked_objects::Location> HWNDInfoMap; -struct HWNDBirthMapTrait : public DefaultSingletonTraits<HWNDInfoMap> { -}; -struct HWNDDeathMapTrait : public DefaultSingletonTraits<HWNDInfoMap> { -}; - -void NotifyHWNDCreation(const tracked_objects::Location& from_here, HWND hwnd) { - HWNDInfoMap* birth_map = Singleton<HWNDInfoMap, HWNDBirthMapTrait>::get(); - HWNDInfoMap::iterator birth_iter = birth_map->find(hwnd); - if (birth_iter != birth_map->end()) { - birth_map->erase(birth_iter); - - // We have already seen this HWND, was it destroyed? - HWNDInfoMap* death_map = Singleton<HWNDInfoMap, HWNDDeathMapTrait>::get(); - HWNDInfoMap::iterator death_iter = death_map->find(hwnd); - if (death_iter == death_map->end()) { - // We did not get a destruction notification. The code is probably not - // calling NotifyHWNDDestruction for that HWND. - NOTREACHED() << "Creation of HWND reported for already tracked HWND. The " - "HWND destruction is probably not tracked properly. " - "Fix it!"; - } else { - death_map->erase(death_iter); - } - } - birth_map->insert(std::pair<HWND, tracked_objects::Location>(hwnd, - from_here)); -} - -void NotifyHWNDDestruction(const tracked_objects::Location& from_here, - HWND hwnd) { - HWNDInfoMap* death_map = Singleton<HWNDInfoMap, HWNDDeathMapTrait>::get(); - HWNDInfoMap::iterator death_iter = death_map->find(hwnd); - - HWNDInfoMap* birth_map = Singleton<HWNDInfoMap, HWNDBirthMapTrait>::get(); - HWNDInfoMap::iterator birth_iter = birth_map->find(hwnd); - - if (death_iter != death_map->end()) { - std::string allocation, first_delete, second_delete; - if (birth_iter != birth_map->end()) - birth_iter->second.Write(true, true, &allocation); - death_iter->second.Write(true, true, &first_delete); - from_here.Write(true, true, &second_delete); - NOTREACHED() << "Double delete of an HWND. Please file a bug with info on " - "how you got that assertion and the following information:\n" - "Double delete of HWND 0x" << hwnd << "\n" << - "Allocated at " << allocation << "\n" << - "Deleted first at " << first_delete << "\n" << - "Deleted again at " << second_delete; - death_map->erase(death_iter); - } - - if (birth_iter == birth_map->end()) { - NOTREACHED() << "Destruction of HWND reported for unknown HWND. The HWND " - "construction is probably not tracked properly. Fix it!"; - } - death_map->insert(std::pair<HWND, tracked_objects::Location>(hwnd, - from_here)); -} - } // namespace win_util #ifdef _MSC_VER diff --git a/base/win_util.h b/base/win_util.h index f6ce1c2..317c332 100644 --- a/base/win_util.h +++ b/base/win_util.h @@ -10,8 +10,6 @@ #include <string> -#include "base/tracked.h" - namespace win_util { // NOTE: Keep these in order so callers can do things like @@ -104,22 +102,6 @@ std::wstring FormatMessage(unsigned messageid); // Uses the last Win32 error to generate a human readable message string. std::wstring FormatLastWin32Error(); -// These 2 methods are used to track HWND creation/destruction to investigate -// a mysterious crasher http://crbugs.com/4714 (crasher in on NCDestroy) that -// might be caused by a multiple delete of an HWND. -void NotifyHWNDCreation(const tracked_objects::Location& from_here, HWND hwnd); -void NotifyHWNDDestruction(const tracked_objects::Location& from_here, - HWND hwnd); - -#ifdef NDEBUG -#define TRACK_HWND_CREATION(hwnd) -#define TRACK_HWND_DESTRUCTION(hwnd) -#else -#define TRACK_HWND_CREATION(hwnd) win_util::NotifyHWNDCreation(FROM_HERE, hwnd) -#define TRACK_HWND_DESTRUCTION(hwnd) \ - win_util::NotifyHWNDDestruction(FROM_HERE, hwnd) -#endif - } // namespace win_util #endif // BASE_WIN_UTIL_H__ |