本文整理汇总了C++中MOZ_RELEASE_ASSERT函数的典型用法代码示例。如果您正苦于以下问题:C++ MOZ_RELEASE_ASSERT函数的具体用法?C++ MOZ_RELEASE_ASSERT怎么用?C++ MOZ_RELEASE_ASSERT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MOZ_RELEASE_ASSERT函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: MOZ_RELEASE_ASSERT
// The global is used to extract the principal.
already_AddRefed<InternalRequest> InternalRequest::GetRequestConstructorCopy(
nsIGlobalObject* aGlobal, ErrorResult& aRv) const {
MOZ_RELEASE_ASSERT(!mURLList.IsEmpty(),
"Internal Request's urlList should not be empty when "
"copied from constructor.");
RefPtr<InternalRequest> copy =
new InternalRequest(mURLList.LastElement(), mFragment);
copy->SetMethod(mMethod);
copy->mHeaders = new InternalHeaders(*mHeaders);
copy->SetUnsafeRequest();
copy->mBodyStream = mBodyStream;
copy->mBodyLength = mBodyLength;
// The "client" is not stored in our implementation. Fetch API users should
// use the appropriate window/document/principal and other Gecko security
// mechanisms as appropriate.
copy->mSameOriginDataURL = true;
copy->mPreserveContentCodings = true;
copy->mReferrer = mReferrer;
copy->mReferrerPolicy = mReferrerPolicy;
copy->mEnvironmentReferrerPolicy = mEnvironmentReferrerPolicy;
copy->mIntegrity = mIntegrity;
copy->mMozErrors = mMozErrors;
copy->mContentPolicyType = mContentPolicyTypeOverridden
? mContentPolicyType
: nsIContentPolicy::TYPE_FETCH;
copy->mMode = mMode;
copy->mCredentialsMode = mCredentialsMode;
copy->mCacheMode = mCacheMode;
copy->mRedirectMode = mRedirectMode;
copy->mCreatedByFetchEvent = mCreatedByFetchEvent;
copy->mContentPolicyTypeOverridden = mContentPolicyTypeOverridden;
copy->mPreferredAlternativeDataType = mPreferredAlternativeDataType;
return copy.forget();
}
开发者ID:Noctem,项目名称:gecko-dev,代码行数:37,代码来源:InternalRequest.cpp
示例2: TestScanUnsignedMax
static void
TestScanUnsignedMax()
{
Input<uintmax_t> u;
PoisonInput(u);
sscanf("14220563454333534", "%" SCNoMAX, &u.i);
MOZ_RELEASE_ASSERT(u.i == UINTMAX_C(432157943248732));
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("432157943248732", "%" SCNuMAX, &u.i);
MOZ_RELEASE_ASSERT(u.i == UINTMAX_C(432157943248732));
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("4c337ca791", "%" SCNxMAX, &u.i);
MOZ_RELEASE_ASSERT(u.i == UINTMAX_C(327281321873));
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
}
开发者ID:JasonGross,项目名称:mozjs,代码行数:20,代码来源:TestIntegerPrintfMacros.cpp
示例3: TestScanUnsigned64
static void
TestScanUnsigned64()
{
Input<uint64_t> u;
PoisonInput(u);
sscanf("17421742173", "%" SCNo64, &u.i);
MOZ_RELEASE_ASSERT(u.i == UINT64_C(017421742173));
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("421786713579", "%" SCNu64, &u.i);
MOZ_RELEASE_ASSERT(u.i == UINT64_C(421786713579));
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("DEADBEEF7457E", "%" SCNx64, &u.i);
MOZ_RELEASE_ASSERT(u.i == UINT64_C(0xDEADBEEF7457E));
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
}
开发者ID:JasonGross,项目名称:mozjs,代码行数:20,代码来源:TestIntegerPrintfMacros.cpp
示例4: TestScanUnsigned32
static void
TestScanUnsigned32()
{
Input<uint32_t> u;
PoisonInput(u);
sscanf("17421742", "%" SCNo32, &u.i);
MOZ_RELEASE_ASSERT(u.i == 017421742);
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("4217867", "%" SCNu32, &u.i);
MOZ_RELEASE_ASSERT(u.i == 4217867);
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("2ABCBEEF", "%" SCNx32, &u.i);
MOZ_RELEASE_ASSERT(u.i == 0x2ABCBEEF);
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
}
开发者ID:JasonGross,项目名称:mozjs,代码行数:20,代码来源:TestIntegerPrintfMacros.cpp
示例5: TestScanUnsigned16
static void
TestScanUnsigned16()
{
Input<uint16_t> u;
PoisonInput(u);
sscanf("1742", "%" SCNo16, &u.i);
MOZ_RELEASE_ASSERT(u.i == 01742);
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("4217", "%" SCNu16, &u.i);
MOZ_RELEASE_ASSERT(u.i == 4217);
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("2ABC", "%" SCNx16, &u.i);
MOZ_RELEASE_ASSERT(u.i == 0x2ABC);
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
}
开发者ID:JasonGross,项目名称:mozjs,代码行数:20,代码来源:TestIntegerPrintfMacros.cpp
示例6: TestScanUnsignedPtr
static void
TestScanUnsignedPtr()
{
Input<uintptr_t> u;
PoisonInput(u);
sscanf("57060516", "%" SCNoPTR, &u.i);
MOZ_RELEASE_ASSERT(u.i == uintptr_t(reinterpret_cast<void*>(12345678)));
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("87654321", "%" SCNuPTR, &u.i);
MOZ_RELEASE_ASSERT(u.i == uintptr_t(reinterpret_cast<void*>(87654321)));
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("4c3a791", "%" SCNxPTR, &u.i);
MOZ_RELEASE_ASSERT(u.i == uintptr_t(reinterpret_cast<void*>(0x4c3a791)));
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
}
开发者ID:JasonGross,项目名称:mozjs,代码行数:20,代码来源:TestIntegerPrintfMacros.cpp
示例7: TestScanUnsigned8
static void
TestScanUnsigned8()
{
#if SHOULD_TEST_8BIT_FORMAT_MACROS
Input<uint8_t> u;
PoisonInput(u);
sscanf("17", "%" SCNo8, &u.i);
MOZ_RELEASE_ASSERT(u.i == 017);
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("42", "%" SCNu8, &u.i);
MOZ_RELEASE_ASSERT(u.i == 42);
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
PoisonInput(u);
sscanf("2A", "%" SCNx8, &u.i);
MOZ_RELEASE_ASSERT(u.i == 0x2A);
MOZ_RELEASE_ASSERT(ExtraBitsUntouched(u));
#endif
}
开发者ID:JasonGross,项目名称:mozjs,代码行数:22,代码来源:TestIntegerPrintfMacros.cpp
示例8: reporter
//.........这里部分代码省略.........
SYMBOL(GetError),
SYMBOL(GetConfigs),
SYMBOL(GetConfigAttrib),
SYMBOL(WaitNative),
SYMBOL(GetProcAddress),
SYMBOL(SwapBuffers),
SYMBOL(CopyBuffers),
SYMBOL(QueryString),
SYMBOL(QueryContext),
SYMBOL(BindTexImage),
SYMBOL(ReleaseTexImage),
SYMBOL(QuerySurface),
{ nullptr, { nullptr } }
};
if (!GLLibraryLoader::LoadSymbols(mEGLLibrary, &earlySymbols[0])) {
NS_WARNING("Couldn't find required entry points in EGL library (early init)");
return false;
}
GLLibraryLoader::SymLoadStruct optionalSymbols[] = {
// On Android 4.3 and up, certain features like ANDROID_native_fence_sync
// can only be queried by using a special eglQueryString.
{ (PRFuncPtr*) &mSymbols.fQueryStringImplementationANDROID,
{ "_Z35eglQueryStringImplementationANDROIDPvi", nullptr } },
{ nullptr, { nullptr } }
};
// Do not warn about the failure to load this - see bug 1092191
Unused << GLLibraryLoader::LoadSymbols(mEGLLibrary, &optionalSymbols[0],
nullptr, nullptr, false);
#if defined(MOZ_WIDGET_GONK) && ANDROID_VERSION >= 18
MOZ_RELEASE_ASSERT(mSymbols.fQueryStringImplementationANDROID,
"GFX: Couldn't find eglQueryStringImplementationANDROID");
#endif
InitClientExtensions();
const auto lookupFunction =
(GLLibraryLoader::PlatformLookupFunction)mSymbols.fGetProcAddress;
// Client exts are ready. (But not display exts!)
if (IsExtensionSupported(ANGLE_platform_angle_d3d)) {
GLLibraryLoader::SymLoadStruct d3dSymbols[] = {
{ (PRFuncPtr*)&mSymbols.fGetPlatformDisplayEXT, { "eglGetPlatformDisplayEXT", nullptr } },
{ nullptr, { nullptr } }
};
bool success = GLLibraryLoader::LoadSymbols(mEGLLibrary,
&d3dSymbols[0],
lookupFunction);
if (!success) {
NS_ERROR("EGL supports ANGLE_platform_angle_d3d without exposing its functions!");
MarkExtensionUnsupported(ANGLE_platform_angle_d3d);
mSymbols.fGetPlatformDisplayEXT = nullptr;
}
}
// Check the ANGLE support the system has
nsCOMPtr<nsIGfxInfo> gfxInfo = do_GetService("@mozilla.org/gfx/info;1");
mIsANGLE = IsExtensionSupported(ANGLE_platform_angle);
EGLDisplay chosenDisplay = nullptr;
开发者ID:brendandahl,项目名称:positron,代码行数:67,代码来源:GLLibraryEGL.cpp
示例9: main
int
main()
{
MOZ_RELEASE_ASSERT(sum({1, 2, 3, 4, 5, 6}) == 7 * 3);
return 0;
}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:6,代码来源:TestInitializerList.cpp
示例10: MOZ_RELEASE_ASSERT
RefPtr<OmxPromiseLayer::OmxCommandPromise>
OmxPromiseLayer::SendCommand(OMX_COMMANDTYPE aCmd, OMX_U32 aParam1, OMX_PTR aCmdData)
{
if (aCmd == OMX_CommandFlush) {
// It doesn't support another flush commands before previous one is completed.
MOZ_RELEASE_ASSERT(!mFlushCommands.Length());
// Some coomponents don't send event with OMX_ALL, they send flush complete
// event with input port and another event for output port.
// In prupose of better compatibility, we interpret the OMX_ALL to OMX_DirInput
// and OMX_DirOutput flush separately.
OMX_DIRTYPE types[] = {OMX_DIRTYPE::OMX_DirInput, OMX_DIRTYPE::OMX_DirOutput};
for(const auto type : types) {
if ((aParam1 == type) || (aParam1 == OMX_ALL)) {
mFlushCommands.AppendElement(FlushCommand({type, aCmdData}));
}
if (type == OMX_DirInput) {
// Clear all buffered raw data.
mRawDatas.Clear();
}
}
// Don't overlay more than one flush command, some components can't overlay flush commands.
// So here we send another flush after receiving the previous flush completed event.
if (mFlushCommands.Length()) {
OMX_ERRORTYPE err =
mPlatformLayer->SendCommand(OMX_CommandFlush,
mFlushCommands.ElementAt(0).type,
mFlushCommands.ElementAt(0).cmd);
if (err != OMX_ErrorNone) {
OmxCommandFailureHolder failure(OMX_ErrorNotReady, OMX_CommandFlush);
return OmxCommandPromise::CreateAndReject(failure, __func__);
}
} else {
LOG("OMX_CommandFlush parameter error");
OmxCommandFailureHolder failure(OMX_ErrorNotReady, OMX_CommandFlush);
return OmxCommandPromise::CreateAndReject(failure, __func__);
}
} else {
OMX_ERRORTYPE err = mPlatformLayer->SendCommand(aCmd, aParam1, aCmdData);
if (err != OMX_ErrorNone) {
OmxCommandFailureHolder failure(OMX_ErrorNotReady, aCmd);
return OmxCommandPromise::CreateAndReject(failure, __func__);
}
}
RefPtr<OmxCommandPromise> p;
if (aCmd == OMX_CommandStateSet) {
p = mCommandStatePromise.Ensure(__func__);
} else if (aCmd == OMX_CommandFlush) {
p = mFlushPromise.Ensure(__func__);
} else if (aCmd == OMX_CommandPortEnable) {
p = mPortEnablePromise.Ensure(__func__);
} else if (aCmd == OMX_CommandPortDisable) {
p = mPortDisablePromise.Ensure(__func__);
} else {
LOG("error unsupport command");
MOZ_ASSERT(0);
}
return p;
}
开发者ID:Wafflespeanut,项目名称:gecko-dev,代码行数:63,代码来源:OmxPromiseLayer.cpp
示例11: MOZ_RELEASE_ASSERT
void
js::ThisThread::GetName(char* nameBuffer, size_t len)
{
MOZ_RELEASE_ASSERT(len > 0);
*nameBuffer = '\0';
}
开发者ID:luke-chang,项目名称:gecko-1,代码行数:6,代码来源:Thread.cpp
示例12: params
void
OriginAttributes::CreateSuffix(nsACString& aStr) const
{
UniquePtr<URLParams> params(new URLParams());
nsAutoString value;
//
// Important: While serializing any string-valued attributes, perform a
// release-mode assertion to make sure that they don't contain characters that
// will break the quota manager when it uses the serialization for file
// naming (see addonId below).
//
if (mAppId != nsIScriptSecurityManager::NO_APP_ID) {
value.AppendInt(mAppId);
params->Set(NS_LITERAL_STRING("appId"), value);
}
if (mInIsolatedMozBrowser) {
params->Set(NS_LITERAL_STRING("inBrowser"), NS_LITERAL_STRING("1"));
}
if (!mAddonId.IsEmpty()) {
if (mAddonId.FindCharInSet(dom::quota::QuotaManager::kReplaceChars) != kNotFound) {
#ifdef MOZ_CRASHREPORTER
CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("Crash_AddonId"),
NS_ConvertUTF16toUTF8(mAddonId));
#endif
MOZ_CRASH();
}
params->Set(NS_LITERAL_STRING("addonId"), mAddonId);
}
if (mUserContextId != nsIScriptSecurityManager::DEFAULT_USER_CONTEXT_ID) {
value.Truncate();
value.AppendInt(mUserContextId);
params->Set(NS_LITERAL_STRING("userContextId"), value);
}
if (mPrivateBrowsingId) {
value.Truncate();
value.AppendInt(mPrivateBrowsingId);
params->Set(NS_LITERAL_STRING("privateBrowsingId"), value);
}
if (!mFirstPartyDomain.IsEmpty()) {
MOZ_RELEASE_ASSERT(mFirstPartyDomain.FindCharInSet(dom::quota::QuotaManager::kReplaceChars) == kNotFound);
params->Set(NS_LITERAL_STRING("firstPartyDomain"), mFirstPartyDomain);
}
aStr.Truncate();
params->Serialize(value);
if (!value.IsEmpty()) {
aStr.AppendLiteral("^");
aStr.Append(NS_ConvertUTF16toUTF8(value));
}
// In debug builds, check the whole string for illegal characters too (just in case).
#ifdef DEBUG
nsAutoCString str;
str.Assign(aStr);
MOZ_ASSERT(str.FindCharInSet(dom::quota::QuotaManager::kReplaceChars) == kNotFound);
#endif
}
开发者ID:mykmelez,项目名称:graphene-gecko,代码行数:66,代码来源:BasePrincipal.cpp
示例13: unmapPages
void
unmapPages(void* p, size_t size)
{
if (munmap(p, size))
MOZ_RELEASE_ASSERT(errno == ENOMEM);
}
开发者ID:AtulKumar2,项目名称:gecko-dev,代码行数:6,代码来源:testGCAllocator.cpp
示例14: MOZ_RELEASE_ASSERT
void
ThreadStackHelper::CollectNativeLeafAddr(void* aAddr)
{
MOZ_RELEASE_ASSERT(mStackToFill);
TryAppendFrame(HangEntryProgCounter(reinterpret_cast<uintptr_t>(aAddr)));
}
开发者ID:luke-chang,项目名称:gecko-1,代码行数:6,代码来源:ThreadStackHelper.cpp
示例15: MOZ_RELEASE_ASSERT
void
SharedSurface_SurfaceTexture::WaitForBufferOwnership()
{
MOZ_RELEASE_ASSERT(!mSurface->GetAvailable());
mSurface->SetAvailable(true);
}
开发者ID:bgrins,项目名称:gecko-dev,代码行数:6,代码来源:SharedSurfaceEGL.cpp
示例16: MOZ_RELEASE_ASSERT
/* static */
const CanonicalBrowsingContext* CanonicalBrowsingContext::Cast(
const BrowsingContext* aContext) {
MOZ_RELEASE_ASSERT(XRE_IsParentProcess());
return static_cast<const CanonicalBrowsingContext*>(aContext);
}
开发者ID:jasonLaster,项目名称:gecko-dev,代码行数:6,代码来源:CanonicalBrowsingContext.cpp
示例17: reporter
//.........这里部分代码省略.........
SYMBOL(GetError),
SYMBOL(GetConfigs),
SYMBOL(GetConfigAttrib),
SYMBOL(WaitNative),
SYMBOL(GetProcAddress),
SYMBOL(SwapBuffers),
SYMBOL(CopyBuffers),
SYMBOL(QueryString),
SYMBOL(QueryContext),
SYMBOL(BindTexImage),
SYMBOL(ReleaseTexImage),
SYMBOL(QuerySurface),
{ nullptr, { nullptr } }
};
if (!GLLibraryLoader::LoadSymbols(mEGLLibrary, &earlySymbols[0])) {
NS_WARNING("Couldn't find required entry points in EGL library (early init)");
return false;
}
GLLibraryLoader::SymLoadStruct optionalSymbols[] = {
// On Android 4.3 and up, certain features like ANDROID_native_fence_sync
// can only be queried by using a special eglQueryString.
{ (PRFuncPtr*) &mSymbols.fQueryStringImplementationANDROID,
{ "_Z35eglQueryStringImplementationANDROIDPvi", nullptr } },
{ nullptr, { nullptr } }
};
// Do not warn about the failure to load this - see bug 1092191
GLLibraryLoader::LoadSymbols(mEGLLibrary, &optionalSymbols[0], nullptr, nullptr,
false);
#if defined(MOZ_WIDGET_GONK) && ANDROID_VERSION >= 18
MOZ_RELEASE_ASSERT(mSymbols.fQueryStringImplementationANDROID,
"Couldn't find eglQueryStringImplementationANDROID");
#endif
//Initialize client extensions
InitExtensionsFromDisplay(EGL_NO_DISPLAY);
GLLibraryLoader::PlatformLookupFunction lookupFunction =
(GLLibraryLoader::PlatformLookupFunction)mSymbols.fGetProcAddress;
#ifdef XP_WIN
if (IsExtensionSupported(ANGLE_platform_angle_d3d)) {
GLLibraryLoader::SymLoadStruct d3dSymbols[] = {
{ (PRFuncPtr*)&mSymbols.fGetPlatformDisplayEXT, { "eglGetPlatformDisplayEXT", nullptr } },
{ nullptr, { nullptr } }
};
bool success = GLLibraryLoader::LoadSymbols(mEGLLibrary,
&d3dSymbols[0],
lookupFunction);
if (!success) {
NS_ERROR("EGL supports ANGLE_platform_angle_d3d without exposing its functions!");
MarkExtensionUnsupported(ANGLE_platform_angle_d3d);
mSymbols.fGetPlatformDisplayEXT = nullptr;
}
}
#endif
mEGLDisplay = GetAndInitDisplay(*this, EGL_DEFAULT_DISPLAY);
const char* vendor = (char*)fQueryString(mEGLDisplay, LOCAL_EGL_VENDOR);
开发者ID:hoosteeno,项目名称:gecko-dev,代码行数:67,代码来源:GLLibraryEGL.cpp
示例18: strlen
void
ThreadStackHelper::CollectPseudoEntry(const js::ProfileEntry& aEntry)
{
// For non-js frames we just include the raw label.
if (!aEntry.isJs()) {
const char* entryLabel = aEntry.label();
// entryLabel is a statically allocated string, so we want to store a
// reference to it without performing any allocations. This is important, as
// we aren't allowed to allocate within this function.
//
// The variant for this kind of label in our HangStack object is a
// `nsCString`, which normally contains heap allocated string data. However,
// `nsCString` has an optimization for literal strings which causes the
// backing data to not be copied when being copied between nsCString
// objects.
//
// We take advantage of that optimization by creating a nsCString object
// which has the LITERAL flag set. Without this optimization, this code
// would be incorrect.
nsCString label;
label.AssignLiteral(entryLabel, strlen(entryLabel));
// Let's make sure we don't deadlock here, by asserting that `label`'s
// backing data matches.
MOZ_RELEASE_ASSERT(label.BeginReading() == entryLabel,
"String copy performed during ThreadStackHelper::CollectPseudoEntry");
TryAppendFrame(label);
return;
}
if (!aEntry.script()) {
TryAppendFrame(HangEntrySuppressed());
return;
}
if (!IsChromeJSScript(aEntry.script())) {
TryAppendFrame(HangEntryContent());
return;
}
// Rather than using the profiler's dynamic string, we compute our own string.
// This is because we want to do some size-saving strategies, and throw out
// information which won't help us as much.
// XXX: We currently don't collect the function name which hung.
const char* filename = JS_GetScriptFilename(aEntry.script());
unsigned lineno = JS_PCToLineNumber(aEntry.script(), aEntry.pc());
// Some script names are in the form "foo -> bar -> baz".
// Here we find the origin of these redirected scripts.
const char* basename = GetPathAfterComponent(filename, " -> ");
if (basename) {
filename = basename;
}
// Strip chrome:// or resource:// off of the filename if present.
basename = GetFullPathForScheme(filename, "chrome://");
if (!basename) {
basename = GetFullPathForScheme(filename, "resource://");
}
if (!basename) {
// If we're in an add-on script, under the {profile}/extensions
// directory, extract the path after the /extensions/ part.
basename = GetPathAfterComponent(filename, "/extensions/");
}
if (!basename) {
// Only keep the file base name for paths outside the above formats.
basename = strrchr(filename, '/');
basename = basename ? basename + 1 : filename;
// Look for Windows path separator as well.
filename = strrchr(basename, '\\');
if (filename) {
basename = filename + 1;
}
}
char buffer[128]; // Enough to fit longest js file name from the tree
size_t len = SprintfLiteral(buffer, "%s:%u", basename, lineno);
if (len < sizeof(buffer)) {
mDesiredBufferSize += len + 1;
if (mStackToFill->stack().Capacity() > mStackToFill->stack().Length() &&
(mStackToFill->strbuffer().Capacity() -
mStackToFill->strbuffer().Length()) > len + 1) {
// NOTE: We only increment this if we're going to successfully append.
mDesiredStackSize += 1;
uint32_t start = mStackToFill->strbuffer().Length();
mStackToFill->strbuffer().AppendElements(buffer, len);
mStackToFill->strbuffer().AppendElement('\0');
mStackToFill->stack().AppendElement(HangEntryBufOffset(start));
return;
}
}
TryAppendFrame(HangEntryChromeScript());
}
开发者ID:luke-chang,项目名称:gecko-1,代码行数:96,代码来源:ThreadStackHelper.cpp
示例19: MOZ_RELEASE_ASSERT
bool
BasePrincipal::Subsumes(nsIPrincipal* aOther, DocumentDomainConsideration aConsideration)
{
MOZ_RELEASE_ASSERT(aOther, "The caller is performing a nonsensical security check!");
return SubsumesInternal(aOther, aConsideration);
}
开发者ID:AtulKumar2,项目名称:gecko-dev,代码行数:6,代码来源:BasePrincipal.cpp
示例20: MOZ_RELEASE_ASSERT
void
PackagedAppVerifier::OnManifestVerified(bool aSuccess)
{
MOZ_RELEASE_ASSERT(NS_IsMainThread(), "OnManifestVerified must be on main thread.");
LOG(("PackagedAppVerifier::OnManifestVerified: %d", aSuccess));
// The listener could have been removed before we verify the resource.
if (!mListener) {
return;
}
if (!aSuccess && mBypassVerification) {
aSuccess = true;
LOG(("Developer mode! Treat junk signature valid."));
}
if (aSuccess && !mSignature.IsEmpty()) {
// Get the package location from the manifest
nsAutoCString packageOrigin;
mPackagedAppUtils->GetPackageOrigin(packageOrigin);
if (packageOrigin != mPackageOrigin) {
aSuccess = false;
LOG(("moz-package-location doesn't match:\nFrom: %s\nManifest: %s\n", mPackageOrigin.get(), packageOrigin.get()));
}
}
// Only when the manifest verified and package has signature would we
// regard this package is signed.
mIsPackageSigned = aSuccess && !mSignature.IsEmpty();
mState = aSuccess ? STATE_MANIFEST_VERIFIED_OK
: STATE_MANIFEST_VERIFIED_FAILED;
// Obtain the package identifier from manifest if the package is signed.
if (mIsPackageSigned) {
mPackagedAppUtils->GetPackageIdentifier(mPackageIdentifer);
LOG(("PackageIdentifer is: %s", mPackageIdentifer.get()));
}
// If the package is signed, add related info to the package cache.
if (mIsPackageSigned && mPackageCacheEntry) {
LOG(("This package is signed. Add this info to the cache channel."));
if (mPackageCacheEntry) {
mPackageCacheEntry->SetMetaDataElement(kSignedPakIdMetadataKey,
mPackageIdentifer.get());
mPackageCacheEntry = nullptr; // the cache entry is no longer needed.
}
}
RefPtr<ResourceCacheInfo> info(mPendingResourceCacheInfoList.popFirst());
MOZ_ASSERT(info);
mListener->OnVerified(true, // aIsManifest.
info->mURI,
info->mCacheEntry,
info->mStatusCode,
info->mIsLastPart,
aSuccess);
LOG(("Ready to verify resources that were cached during verification"));
// Verify the resources which were cached during verification accordingly.
for (auto i = mPendingResourceCacheInfoList.getFirst(); i; i = i->getNext()) {
VerifyResource(i);
}
}
开发者ID:reepush,项目名称:gecko-dev,代码行数:67,代码来源:PackagedAppVerifier.cpp
注:本文中的MOZ_RELEASE_ASSERT函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论