Is there a reason why you can't combine both loops to make it easier on the CPU?
Lua Code:
function TDButton_DestroyAllOverlays()
local frame;
for key, frame in pairs(TDButton_Frames) do
frame:GetParent().tdOverlays = nil;
frame:ClearAllPoints();
frame:Hide();
frame:SetParent(UIParent);
frame.width = nil;
frame.height = nil;
tinsert(TDButton_FramePool, frame);
TDButton_Frames[key] = nil;
end
end