Ensure that mBuf <-- 0 before assignment begins. Otherwise we run the rise of a failed assignment causing a duplicate free.

This commit is contained in:
waterson%netscape.com 1999-06-12 16:39:11 +00:00
Родитель 1baa234591
Коммит 3ff9c4f8c4
3 изменённых файлов: 12 добавлений и 0 удалений

Просмотреть файл

@ -84,6 +84,7 @@ nsXPIDLString::StartAssignmentByValue()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_TRUE;
return &mBuf;
}
@ -95,6 +96,7 @@ nsXPIDLString::StartAssignmentByReference()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_FALSE;
return (const PRUnichar**) &mBuf;
}
@ -145,6 +147,7 @@ nsXPIDLCString::StartAssignmentByValue()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_TRUE;
return &mBuf;
}
@ -156,6 +159,7 @@ nsXPIDLCString::StartAssignmentByReference()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_FALSE;
return (const char**) &mBuf;
}

Просмотреть файл

@ -84,6 +84,7 @@ nsXPIDLString::StartAssignmentByValue()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_TRUE;
return &mBuf;
}
@ -95,6 +96,7 @@ nsXPIDLString::StartAssignmentByReference()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_FALSE;
return (const PRUnichar**) &mBuf;
}
@ -145,6 +147,7 @@ nsXPIDLCString::StartAssignmentByValue()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_TRUE;
return &mBuf;
}
@ -156,6 +159,7 @@ nsXPIDLCString::StartAssignmentByReference()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_FALSE;
return (const char**) &mBuf;
}

Просмотреть файл

@ -84,6 +84,7 @@ nsXPIDLString::StartAssignmentByValue()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_TRUE;
return &mBuf;
}
@ -95,6 +96,7 @@ nsXPIDLString::StartAssignmentByReference()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_FALSE;
return (const PRUnichar**) &mBuf;
}
@ -145,6 +147,7 @@ nsXPIDLCString::StartAssignmentByValue()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_TRUE;
return &mBuf;
}
@ -156,6 +159,7 @@ nsXPIDLCString::StartAssignmentByReference()
if (mBufOwner && mBuf)
XPIDL_FREE(mBuf);
mBuf = 0;
mBufOwner = PR_FALSE;
return (const char**) &mBuf;
}