Memory leaks fixing
Author: Suresh Duddi

# Memory leaks fixing effort

## Viewer

- Startup (not the firsttime)
- Show default page
- Quit

Component | Leaks fixing by... | Status
--- | --- | ---
bin/Components/
caps.dll |  |
chardet.dll |  |
history.dll | dp |
jsloader.dll |  |
lwbrk.dll |  |
necko.dll | warren |
necko_resource.dll | warren |
necko_file.dll | warren |
nsgif.dll | kipp |
nslocale.dll | cata |
mimetype.dll | dp |
oji.dll |  |
profile.dll | dp |
raptorhtml.dll | kipp |
raptorview.dll | kipp |
rdf.dll | kipp |
uconv.dll | cata |
ucvlatin.dll | cata |
ucharuti.dll | cata |
xpc3250.dll |  |
xppref32.dll | neeti |
bin/
jsdom.dll |  |
raptorhtmlpars.dll | vidur |
raptorgfxwin.dll |  |
raptorweb.dll |  |
raptorplugin.dll |  |
raptorwidget.dll |  |

## How to fix leaks in a dll

1. Convert dll to use nsIModule. Sample code is in mozilla/xpcom/sample/nsSampleModule.cpp
2. While in purify run bin/TestShutdown on the dll. For this you will need to find a CID that the module implements. Then invoke TestShutdown as

% TestShutdown {123d4-4908-490840-409850}

3. Make sure there are no leaks from the purify output.
   Use ns<dll>Module::Shutdown() to release any global memory that is being leaked.