Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=21810 Remove use of static C++ objects that are destroyed at exit time (destructors) Create DEFINE_STATIC_LOCAL macro. Change static local objects to leak to avoid exit-time destructor. Update code that was changed to fix this issue that ran into a gcc bug (<rdar://problem/6354696> Codegen issue with C++ static reference in gcc build 5465). Also typdefs for template types needed to be added in some cases so the type could make it through the macro successfully. Basically code of the form: static T m; becomes: DEFINE_STATIC_LOCAL(T, m, ()); Also any code of the form: static T& m = *new T; also becomes: DEFINE_STATIC_LOCAL(T, m, ()); git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38418 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Showing with 675 additions and 304 deletions