Memory audit of code in src directory. Found and fixed some leaks.

Declaring this directory memory clean.

M src/Pluglet.cpp
M src/Pluglet.h

- use do_GetService instead of servman->GetServiceByContractID

- do not keep a reference to plugletEngine as an ivar

M src/PlugletFactory.cpp
M src/PlugletFactory.h

- use nsnull instead of NULL

- do not keep a reference to plugletEngine as an ivar

- use PL_strdup and PL_strfree to duplicate and free strings

M src/PlugletsDir.cpp

- use PL_strdup and PL_strfree to duplicate and free strings


git-svn-id: svn://10.0.0.236/trunk@215043 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
edburns%acm.org
2006-11-09 20:10:17 +00:00
parent db0b5fc1ed
commit 3e78a4fbf3
5 changed files with 68 additions and 49 deletions

View File

@@ -42,13 +42,10 @@ static NS_DEFINE_IID(kIPluginInstanceIID, NS_IPLUGININSTANCE_IID);
NS_IMPL_ISUPPORTS1(Pluglet,nsIPluginInstance);
Pluglet::Pluglet(jobject object) : plugletEngine(nsnull), peer(nsnull) {
nsIServiceManager *servman = nsnull;
NS_GetServiceManager(&servman);
Pluglet::Pluglet(jobject object) : peer(nsnull) {
nsresult rv;
rv = servman->GetServiceByContractID(PLUGLETENGINE_ContractID,
NS_GET_IID(iPlugletEngine),
getter_AddRefs(plugletEngine));
nsCOMPtr<iPlugletEngine> plugletEngine =
do_GetService(PLUGLETENGINE_ContractID, &rv);
if (NS_FAILED(rv)) {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
("Pluglet::Pluglet: Cannot access iPlugletEngine service\n"));
@@ -74,7 +71,8 @@ Pluglet::~Pluglet() {
Registry::Remove(jthis);
JNIEnv *jniEnv = nsnull;
nsresult rv;
plugletEngine = do_GetService(PLUGLETENGINE_ContractID, &rv);
nsCOMPtr<iPlugletEngine> plugletEngine =
do_GetService(PLUGLETENGINE_ContractID, &rv);
if (plugletEngine) {
rv = plugletEngine->GetJNIEnv(&jniEnv);
if (NS_FAILED(rv)) {
@@ -103,6 +101,9 @@ NS_METHOD Pluglet::Initialize(nsIPluginInstancePeer* _peer) {
("Pluglet::Initialize\n"));
JNIEnv *env = nsnull;
nsresult rv;
nsCOMPtr<iPlugletEngine> plugletEngine =
do_GetService(PLUGLETENGINE_ContractID, &rv);
rv = plugletEngine->GetJNIEnv(&env);
if (NS_FAILED(rv)) {
@@ -175,6 +176,8 @@ NS_METHOD Pluglet::Start(void) {
("Pluglet::Start\n"));
JNIEnv *env = nsnull;
nsresult rv;
nsCOMPtr<iPlugletEngine> plugletEngine =
do_GetService(PLUGLETENGINE_ContractID, &rv);
rv = plugletEngine->GetJNIEnv(&env);
if (NS_FAILED(rv)) {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
@@ -193,6 +196,8 @@ NS_METHOD Pluglet::Stop(void) {
("Pluglet::Stop\n"));
JNIEnv *env = nsnull;
nsresult rv;
nsCOMPtr<iPlugletEngine> plugletEngine =
do_GetService(PLUGLETENGINE_ContractID, &rv);
rv = plugletEngine->GetJNIEnv(&env);
if (NS_FAILED(rv)) {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
@@ -211,6 +216,8 @@ NS_METHOD Pluglet::Destroy(void) {
("Pluglet::Destroy\n"));
JNIEnv *env = nsnull;
nsresult rv;
nsCOMPtr<iPlugletEngine> plugletEngine =
do_GetService(PLUGLETENGINE_ContractID, &rv);
rv = plugletEngine->GetJNIEnv(&env);
if (NS_FAILED(rv)) {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
@@ -234,6 +241,8 @@ NS_METHOD Pluglet::NewStream(nsIPluginStreamListener** listener) {
}
nsresult rv;
JNIEnv *env;
nsCOMPtr<iPlugletEngine> plugletEngine =
do_GetService(PLUGLETENGINE_ContractID, &rv);
rv = plugletEngine->GetJNIEnv(&env);
if (NS_FAILED(rv)) {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
@@ -265,6 +274,8 @@ NS_METHOD Pluglet::SetWindow(nsPluginWindow* window) {
if (view->SetWindow(window) == PR_TRUE) {
nsresult rv;
JNIEnv *env;
nsCOMPtr<iPlugletEngine> plugletEngine =
do_GetService(PLUGLETENGINE_ContractID, &rv);
rv = plugletEngine->GetJNIEnv(&env);
if (NS_FAILED(rv)) {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,