/usr/include/thunderbird/nsLayoutStatics.h is in thunderbird-dev 1:52.8.0-1~deb8u1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | /* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef nsLayoutStatics_h__
#define nsLayoutStatics_h__
#include "nscore.h"
#include "MainThreadUtils.h"
#include "nsISupportsImpl.h"
#include "nsDebug.h"
// This isn't really a class, it's a namespace for static methods.
// Documents and other objects can hold a reference to the layout static
// objects so that they last past the xpcom-shutdown notification.
class nsLayoutStatics
{
public:
// Called by the layout module constructor. This call performs an AddRef()
// internally.
static nsresult Initialize();
static void AddRef()
{
NS_ASSERTION(NS_IsMainThread(),
"nsLayoutStatics reference counting must be on main thread");
NS_ASSERTION(sLayoutStaticRefcnt,
"nsLayoutStatics already dropped to zero!");
++sLayoutStaticRefcnt;
NS_LOG_ADDREF(&sLayoutStaticRefcnt, sLayoutStaticRefcnt,
"nsLayoutStatics", 1);
}
static void Release()
{
NS_ASSERTION(NS_IsMainThread(),
"nsLayoutStatics reference counting must be on main thread");
--sLayoutStaticRefcnt;
NS_LOG_RELEASE(&sLayoutStaticRefcnt, sLayoutStaticRefcnt,
"nsLayoutStatics");
if (!sLayoutStaticRefcnt)
Shutdown();
}
private:
// not to be called!
nsLayoutStatics();
static void Shutdown();
static nsrefcnt sLayoutStaticRefcnt;
};
class nsLayoutStaticsRef
{
public:
nsLayoutStaticsRef()
{
nsLayoutStatics::AddRef();
}
~nsLayoutStaticsRef()
{
nsLayoutStatics::Release();
}
};
#endif // nsLayoutStatics_h__
|