// static bool SVGTransformListSMILType::GetTransforms(const nsSMILValue& aValue, FallibleTArray<nsSVGTransform>& aTransforms) { NS_PRECONDITION(aValue.mType == Singleton(), "Unexpected SMIL value type"); const TransformArray& smilTransforms = *static_cast<const TransformArray*>(aValue.mU.mPtr); aTransforms.Clear(); if (!aTransforms.SetCapacity(smilTransforms.Length(), fallible)) return false; for (uint32_t i = 0; i < smilTransforms.Length(); ++i) { // No need to check the return value below since we have already allocated // the necessary space aTransforms.AppendElement(smilTransforms[i].ToSVGTransform(), fallible); } return true; }
PRBool gfxFT2LockedFace::GetFontTable(PRUint32 aTag, FallibleTArray<PRUint8>& aBuffer) { if (!mFace || !FT_IS_SFNT(mFace)) return PR_FALSE; FT_ULong length = 0; // TRUETYPE_TAG is defined equivalent to FT_MAKE_TAG FT_Error error = FT_Load_Sfnt_Table(mFace, aTag, 0, NULL, &length); if (error != 0) return PR_FALSE; if (NS_UNLIKELY(length > static_cast<FallibleTArray<PRUint8>::size_type>(-1)) || NS_UNLIKELY(!aBuffer.SetLength(length))) return PR_FALSE; error = FT_Load_Sfnt_Table(mFace, aTag, 0, aBuffer.Elements(), &length); if (NS_UNLIKELY(error != 0)) { aBuffer.Clear(); return PR_FALSE; } return PR_TRUE; }
bool gfxFT2LockedFace::GetFontTable(uint32_t aTag, FallibleTArray<uint8_t>& aBuffer) { if (!mFace || !FT_IS_SFNT(mFace)) return false; FT_ULong length = 0; // TRUETYPE_TAG is defined equivalent to FT_MAKE_TAG FT_Error error = FT_Load_Sfnt_Table(mFace, aTag, 0, NULL, &length); if (error != 0) return false; if (MOZ_UNLIKELY(length > static_cast<FallibleTArray<uint8_t>::size_type>(-1)) || MOZ_UNLIKELY(!aBuffer.SetLength(length))) return false; error = FT_Load_Sfnt_Table(mFace, aTag, 0, aBuffer.Elements(), &length); if (MOZ_UNLIKELY(error != 0)) { aBuffer.Clear(); return false; } return true; }