зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1016629 - b. Use RAII class to assign mStackToFill; r=snorp
This commit is contained in:
Родитель
f98cb3b0c2
Коммит
e15783a41a
|
@ -109,6 +109,18 @@ ThreadStackHelper::~ThreadStackHelper()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
template <typename T>
|
||||||
|
class ScopedSetPtr
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
T*& mPtr;
|
||||||
|
public:
|
||||||
|
ScopedSetPtr(T*& p, T* val) : mPtr(p) { mPtr = val; }
|
||||||
|
~ScopedSetPtr() { mPtr = nullptr; }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ThreadStackHelper::GetStack(Stack& aStack)
|
ThreadStackHelper::GetStack(Stack& aStack)
|
||||||
{
|
{
|
||||||
|
@ -118,6 +130,8 @@ ThreadStackHelper::GetStack(Stack& aStack)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ScopedSetPtr<Stack> stackPtr(mStackToFill, &aStack);
|
||||||
|
|
||||||
#if defined(XP_LINUX)
|
#if defined(XP_LINUX)
|
||||||
if (!sInitialized) {
|
if (!sInitialized) {
|
||||||
MOZ_ASSERT(false);
|
MOZ_ASSERT(false);
|
||||||
|
@ -199,7 +213,6 @@ ThreadStackHelper::PrepareStackBuffer(Stack& aStack)
|
||||||
!aStack.EnsureBufferCapacity(mMaxBufferSize)) {
|
!aStack.EnsureBufferCapacity(mMaxBufferSize)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
mStackToFill = &aStack;
|
|
||||||
return true;
|
return true;
|
||||||
#else
|
#else
|
||||||
return false;
|
return false;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче