From d244bd899b465c49112a200492ad71dd340a0a04 Mon Sep 17 00:00:00 2001 From: Geoff Lankow Date: Thu, 21 Jun 2012 19:33:49 +1200 Subject: [PATCH 001/154] Bug 749930 - Replace uses of nsILocalFile with nsIFile (more C++ bits); r=Neil --- toolkit/profile/nsToolkitProfileService.cpp | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp index 93c79bac2b21..f10b97d71bb7 100644 --- a/toolkit/profile/nsToolkitProfileService.cpp +++ b/toolkit/profile/nsToolkitProfileService.cpp @@ -382,13 +382,9 @@ nsToolkitProfileService::Init() rv = gDirServiceProvider->GetUserLocalDataDirectory(getter_AddRefs(mTempData)); NS_ENSURE_SUCCESS(rv, rv); - nsCOMPtr listFile; - rv = mAppData->Clone(getter_AddRefs(listFile)); + rv = mAppData->Clone(getter_AddRefs(mListFile)); NS_ENSURE_SUCCESS(rv, rv); - mListFile = do_QueryInterface(listFile); - NS_ENSURE_TRUE(listFile, NS_ERROR_NO_INTERFACE); - rv = mListFile->AppendNative(NS_LITERAL_CSTRING("profiles.ini")); NS_ENSURE_SUCCESS(rv, rv); @@ -399,7 +395,7 @@ nsToolkitProfileService::Init() } PRInt64 size; - rv = listFile->GetFileSize(&size); + rv = mListFile->GetFileSize(&size); if (NS_FAILED(rv) || !size) { return NS_OK; } @@ -727,15 +723,11 @@ nsToolkitProfileService::CreateProfileInternal(nsIFile* aRootDir, nsCAutoString dirName; if (!rootDir) { - nsCOMPtr file; - rv = gDirServiceProvider->GetUserProfilesRootDir(getter_AddRefs(file), + rv = gDirServiceProvider->GetUserProfilesRootDir(getter_AddRefs(rootDir), aProfileName, aAppName, aVendorName); NS_ENSURE_SUCCESS(rv, rv); - rootDir = do_QueryInterface(file); - NS_ENSURE_TRUE(rootDir, NS_ERROR_UNEXPECTED); - dirName = aName; SaltProfileName(dirName); @@ -753,16 +745,12 @@ nsToolkitProfileService::CreateProfileInternal(nsIFile* aRootDir, localDir = aRootDir; } else { - nsCOMPtr file; - rv = gDirServiceProvider->GetUserProfilesLocalDir(getter_AddRefs(file), + rv = gDirServiceProvider->GetUserProfilesLocalDir(getter_AddRefs(localDir), aProfileName, aAppName, aVendorName); NS_ENSURE_SUCCESS(rv, rv); - localDir = do_QueryInterface(file); - NS_ENSURE_TRUE(localDir, NS_ERROR_UNEXPECTED); - // use same salting if (NS_IsNativeUTF8()) { localDir->AppendNative(dirName); From df25d98bb1125a60e1037f252da40e0b2352be81 Mon Sep 17 00:00:00 2001 From: Bobby Holley Date: Thu, 21 Jun 2012 09:53:49 +0200 Subject: [PATCH 002/154] Bug 753162 - Don't assume that we end up in the same compartment as we started in CrossCompartmentWrapper. r=mrbkap --- js/src/jswrapper.cpp | 28 ++++++++++++------------- js/xpconnect/crashtests/753162.html | 23 ++++++++++++++++++++ js/xpconnect/crashtests/crashtests.list | 1 + 3 files changed, 38 insertions(+), 14 deletions(-) create mode 100644 js/xpconnect/crashtests/753162.html diff --git a/js/src/jswrapper.cpp b/js/src/jswrapper.cpp index 6d200f0791b3..a238610a1ec9 100644 --- a/js/src/jswrapper.cpp +++ b/js/src/jswrapper.cpp @@ -452,7 +452,7 @@ CrossCompartmentWrapper::getPropertyDescriptor(JSContext *cx, JSObject *wrapper, PIERCE(cx, wrapper, set ? SET : GET, call.destination->wrapId(cx, &id), DirectWrapper::getPropertyDescriptor(cx, wrapper, id, set, desc), - call.origin->wrap(cx, desc)); + cx->compartment->wrap(cx, desc)); } bool @@ -462,7 +462,7 @@ CrossCompartmentWrapper::getOwnPropertyDescriptor(JSContext *cx, JSObject *wrapp PIERCE(cx, wrapper, set ? SET : GET, call.destination->wrapId(cx, &id), DirectWrapper::getOwnPropertyDescriptor(cx, wrapper, id, set, desc), - call.origin->wrap(cx, desc)); + cx->compartment->wrap(cx, desc)); } bool @@ -481,7 +481,7 @@ CrossCompartmentWrapper::getOwnPropertyNames(JSContext *cx, JSObject *wrapper, A PIERCE(cx, wrapper, GET, NOTHING, DirectWrapper::getOwnPropertyNames(cx, wrapper, props), - call.origin->wrap(cx, props)); + cx->compartment->wrap(cx, props)); } bool @@ -499,7 +499,7 @@ CrossCompartmentWrapper::enumerate(JSContext *cx, JSObject *wrapper, AutoIdVecto PIERCE(cx, wrapper, GET, NOTHING, DirectWrapper::enumerate(cx, wrapper, props), - call.origin->wrap(cx, props)); + cx->compartment->wrap(cx, props)); } bool @@ -526,7 +526,7 @@ CrossCompartmentWrapper::get(JSContext *cx, JSObject *wrapper, JSObject *receive PIERCE(cx, wrapper, GET, call.destination->wrap(cx, &receiver) && call.destination->wrapId(cx, &id), DirectWrapper::get(cx, wrapper, receiver, id, vp), - call.origin->wrap(cx, vp)); + cx->compartment->wrap(cx, vp)); } bool @@ -550,7 +550,7 @@ CrossCompartmentWrapper::keys(JSContext *cx, JSObject *wrapper, AutoIdVector &pr PIERCE(cx, wrapper, GET, NOTHING, DirectWrapper::keys(cx, wrapper, props), - call.origin->wrap(cx, props)); + cx->compartment->wrap(cx, props)); } /* @@ -628,7 +628,7 @@ CrossCompartmentWrapper::iterate(JSContext *cx, JSObject *wrapper, unsigned flag PIERCE(cx, wrapper, GET, NOTHING, DirectWrapper::iterate(cx, wrapper, flags, vp), - CanReify(vp) ? Reify(cx, call.origin, vp) : call.origin->wrap(cx, vp)); + CanReify(vp) ? Reify(cx, cx->compartment, vp) : cx->compartment->wrap(cx, vp)); } bool @@ -652,7 +652,7 @@ CrossCompartmentWrapper::call(JSContext *cx, JSObject *wrapper_, unsigned argc, return false; call.leave(); - return call.origin->wrap(cx, vp); + return cx->compartment->wrap(cx, vp); } bool @@ -673,7 +673,7 @@ CrossCompartmentWrapper::construct(JSContext *cx, JSObject *wrapper_, unsigned a return false; call.leave(); - return call.origin->wrap(cx, rval); + return cx->compartment->wrap(cx, rval); } extern JSBool @@ -712,7 +712,7 @@ CrossCompartmentWrapper::nativeCall(JSContext *cx, JSObject *wrapper, Class *cla srcArgs.rval() = dstArgs.rval(); dstArgs.pop(); call.leave(); - return call.origin->wrap(cx, &srcArgs.rval()); + return cx->compartment->wrap(cx, &srcArgs.rval()); } bool @@ -740,7 +740,7 @@ CrossCompartmentWrapper::obj_toString(JSContext *cx, JSObject *wrapper) return NULL; call.leave(); - if (!call.origin->wrap(cx, &str)) + if (!cx->compartment->wrap(cx, &str)) return NULL; return str; } @@ -757,7 +757,7 @@ CrossCompartmentWrapper::fun_toString(JSContext *cx, JSObject *wrapper, unsigned return NULL; call.leave(); - if (!call.origin->wrap(cx, &str)) + if (!cx->compartment->wrap(cx, &str)) return NULL; return str; } @@ -773,7 +773,7 @@ CrossCompartmentWrapper::defaultValue(JSContext *cx, JSObject *wrapper, JSType h return false; call.leave(); - return call.origin->wrap(cx, vp); + return cx->compartment->wrap(cx, vp); } bool @@ -782,7 +782,7 @@ CrossCompartmentWrapper::iteratorNext(JSContext *cx, JSObject *wrapper, Value *v PIERCE(cx, wrapper, GET, NOTHING, IndirectProxyHandler::iteratorNext(cx, wrapper, vp), - call.origin->wrap(cx, vp)); + cx->compartment->wrap(cx, vp)); } CrossCompartmentWrapper CrossCompartmentWrapper::singleton(0u); diff --git a/js/xpconnect/crashtests/753162.html b/js/xpconnect/crashtests/753162.html new file mode 100644 index 000000000000..7e53a29e5ec3 --- /dev/null +++ b/js/xpconnect/crashtests/753162.html @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/js/xpconnect/crashtests/crashtests.list b/js/xpconnect/crashtests/crashtests.list index be441669877f..5961e23067cf 100644 --- a/js/xpconnect/crashtests/crashtests.list +++ b/js/xpconnect/crashtests/crashtests.list @@ -39,4 +39,5 @@ load 720305-1.html load 723465.html load 751995.html asserts(0-1) load 752038.html # We may hit bug 645229 here. +asserts(1) load 753162.html # We hit bug 675518 or bug 680086 here. load 754311.html From 9e215b1aaac1dfcd3aab0a45a2e542eca09ea0b0 Mon Sep 17 00:00:00 2001 From: Bobby Holley Date: Thu, 21 Jun 2012 10:02:36 +0200 Subject: [PATCH 003/154] Bug 732870 - Have nsDOMStringMapSH::PreCreate use the element as its parent, rather than the window. r=peterv --- dom/base/nsDOMClassInfo.cpp | 18 +++--------------- js/xpconnect/crashtests/732870.html | 23 +++++++++++++++++++++++ js/xpconnect/crashtests/crashtests.list | 1 + 3 files changed, 27 insertions(+), 15 deletions(-) create mode 100644 js/xpconnect/crashtests/732870.html diff --git a/dom/base/nsDOMClassInfo.cpp b/dom/base/nsDOMClassInfo.cpp index 19e992830e21..ecfc0a5f60cb 100644 --- a/dom/base/nsDOMClassInfo.cpp +++ b/dom/base/nsDOMClassInfo.cpp @@ -8557,21 +8557,9 @@ nsDOMStringMapSH::PreCreate(nsISupports *nativeObj, JSContext *cx, nsDOMStringMap* dataset = static_cast(nativeObj); - nsIDocument* document = dataset->GetElement()->OwnerDoc(); - - nsCOMPtr sgo = - do_GetInterface(document->GetScopeObject()); - - if (sgo) { - JSObject *global = sgo->GetGlobalJSObject(); - - if (global) { - *parentObj = global; - return NS_OK; - } - } - - return NS_OK; + // Parent the string map to its element. + nsINode* element = dataset->GetElement(); + return WrapNativeParent(cx, globalObj, element, element, parentObj); } NS_IMETHODIMP diff --git a/js/xpconnect/crashtests/732870.html b/js/xpconnect/crashtests/732870.html new file mode 100644 index 000000000000..bd827bcb36e2 --- /dev/null +++ b/js/xpconnect/crashtests/732870.html @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/js/xpconnect/crashtests/crashtests.list b/js/xpconnect/crashtests/crashtests.list index 5961e23067cf..fc1badda1689 100644 --- a/js/xpconnect/crashtests/crashtests.list +++ b/js/xpconnect/crashtests/crashtests.list @@ -37,6 +37,7 @@ load 648206-1.html load 705875.html load 720305-1.html load 723465.html +load 732870.html load 751995.html asserts(0-1) load 752038.html # We may hit bug 645229 here. asserts(1) load 753162.html # We hit bug 675518 or bug 680086 here. From 58ef37f17a499619ce0c340d3fbe25fed4946b6a Mon Sep 17 00:00:00 2001 From: Jonathan Watt Date: Thu, 21 Jun 2012 01:29:50 +0100 Subject: [PATCH 004/154] Bug 766227 - More nsSVGIntegrationUtils cleanup and commenting to make it a lot easier to understand. r=longsonr. --HG-- extra : rebase_source : fab6126eac4f1135562e1b2404bf5c52d0500344 --- layout/generic/nsFrame.cpp | 4 +- layout/svg/base/src/nsSVGIntegrationUtils.cpp | 280 ++++++++++++------ layout/svg/base/src/nsSVGIntegrationUtils.h | 66 +++-- layout/svg/base/src/nsSVGUtils.cpp | 2 +- 4 files changed, 231 insertions(+), 121 deletions(-) diff --git a/layout/generic/nsFrame.cpp b/layout/generic/nsFrame.cpp index 02fdc901def1..548a6b526eff 100644 --- a/layout/generic/nsFrame.cpp +++ b/layout/generic/nsFrame.cpp @@ -4655,7 +4655,7 @@ nsIFrame::InvalidateInternal(const nsRect& aDamageRect, nscoord aX, nscoord aY, { nsSVGEffects::InvalidateDirectRenderingObservers(this); if (nsSVGIntegrationUtils::UsingEffectsForFrame(this)) { - nsRect r = nsSVGIntegrationUtils::GetInvalidAreaForChangedSource(this, + nsRect r = nsSVGIntegrationUtils::AdjustInvalidAreaForSVGEffects(this, aDamageRect + nsPoint(aX, aY)); /* Rectangle is now in our own local space, so aX and aY are effectively * zero. Thus we'll pretend that the entire time this was in our own @@ -4924,7 +4924,7 @@ ComputeOutlineAndEffectsRect(nsIFrame* aFrame, bool* aAnyOutlineOrEffects, aFrame->Properties(). Set(nsIFrame::PreEffectsBBoxProperty(), new nsRect(r)); } - r = nsSVGIntegrationUtils::ComputeFrameEffectsRect(aFrame, r); + r = nsSVGIntegrationUtils::ComputePostEffectsVisualOverflowRect(aFrame, r); } return r; diff --git a/layout/svg/base/src/nsSVGIntegrationUtils.cpp b/layout/svg/base/src/nsSVGIntegrationUtils.cpp index 95b31ccfb50d..4b9358509695 100644 --- a/layout/svg/base/src/nsSVGIntegrationUtils.cpp +++ b/layout/svg/base/src/nsSVGIntegrationUtils.cpp @@ -21,6 +21,120 @@ // ---------------------------------------------------------------------- +/** + * This class is used to get the pre-effects visual overflow rect of a frame, + * or, in the case of a frame with continuations, to collect the union of the + * pre-effects visual overflow rects of all the continuations. The result is + * relative to the origin (top left corner of the border box) of the frame, or, + * if the frame has continuations, the origin of the _first_ continuation. + */ +class PreEffectsVisualOverflowCollector : public nsLayoutUtils::BoxCallback +{ +public: + /** + * If the pre-effects visual overflow rect of the frame being examined + * happens to be known, it can be passed in as aCurrentFrame and its + * pre-effects visual overflow rect can be passed in as + * aCurrentFrameOverflowArea. This is just an optimization to save a + * frame property lookup - these arguments are optional. + */ + PreEffectsVisualOverflowCollector(nsIFrame* aFirstContinuation, + nsIFrame* aCurrentFrame, + const nsRect& aCurrentFrameOverflowArea) + : mFirstContinuation(aFirstContinuation) + , mCurrentFrame(aCurrentFrame) + , mCurrentFrameOverflowArea(aCurrentFrameOverflowArea) + { + NS_ASSERTION(!mFirstContinuation->GetPrevContinuation(), + "We want the first continuation here"); + } + + virtual void AddBox(nsIFrame* aFrame) { + nsRect overflow = (aFrame == mCurrentFrame) ? + mCurrentFrameOverflowArea : GetPreEffectsVisualOverflowRect(aFrame); + mResult.UnionRect(mResult, overflow + aFrame->GetOffsetTo(mFirstContinuation)); + } + + nsRect GetResult() const { + return mResult; + } + +private: + + static nsRect GetPreEffectsVisualOverflowRect(nsIFrame* aFrame) { + nsRect* r = static_cast + (aFrame->Properties().Get(nsIFrame::PreEffectsBBoxProperty())); + if (r) { + return *r; + } + // Despite the fact that we're invoked for frames with SVG effects applied, + // we can actually get here. All continuations and special siblings of a + // frame with SVG effects applied will have the PreEffectsBBoxProperty + // property set on them. Therefore, the frames that are passed to us will + // always have that property set...well, with one exception. If the frames + // for an element with SVG effects applied have been subject to an "IB + // split", then the block frame(s) that caused the split will have been + // wrapped in anonymous, inline-block, nsBlockFrames of pseudo-type + // nsCSSAnonBoxes::mozAnonymousBlock. These "special sibling" anonymous + // blocks will have the PreEffectsBBoxProperty property set on them, but + // they will never be passed to us. Instead, we'll be passed the block + // children that they wrap, which don't have the PreEffectsBBoxProperty + // property set on them. This is actually okay. What we care about is + // collecting the _pre_ effects visual overflow rects of the frames to + // which the SVG effects have been applied. Since the IB split results in + // any overflow rect adjustments for transforms, effects, etc. taking + // place on the anonymous block wrappers, the wrapped children are left + // with their overflow rects unaffected. In other words, calling + // GetVisualOverflowRect() on the children will return their pre-effects + // visual overflow rects, just as we need. + // + // A couple of tests that demonstrate the IB split and cause us to get here + // are: + // + // * reftests/svg/svg-integration/clipPath-html-06.xhtml + // * reftests/svg/svg-integration/clipPath-html-06-extref.xhtml + // + // If we ever got passed a frame with the PreTransformOverflowAreasProperty + // property set, that would be bad, since then our GetVisualOverflowRect() + // call would give us the post-effects, and post-transform, overflow rect. + // + NS_ASSERTION(aFrame->GetParent()->GetStyleContext()->GetPseudo() == + nsCSSAnonBoxes::mozAnonymousBlock, + "How did we getting here, then?"); + NS_ASSERTION(!aFrame->Properties().Get( + aFrame->PreTransformOverflowAreasProperty()), + "GetVisualOverflowRect() won't return the pre-effects rect!"); + return aFrame->GetVisualOverflowRect(); + } + + nsIFrame* mFirstContinuation; + nsIFrame* mCurrentFrame; + const nsRect& mCurrentFrameOverflowArea; + nsRect mResult; +}; + +/** + * Gets the union of the pre-effects visual overflow rects of all of a frame's + * continuations, in "user space". + */ +static nsRect +GetPreEffectsVisualOverflowUnion(nsIFrame* aFirstContinuation, + nsIFrame* aCurrentFrame, + const nsRect& aCurrentFramePreEffectsOverflow, + const nsPoint& aFirstContinuationToUserSpace) +{ + NS_ASSERTION(!aFirstContinuation->GetPrevContinuation(), + "Need first continuation here"); + PreEffectsVisualOverflowCollector collector(aFirstContinuation, + aCurrentFrame, + aCurrentFramePreEffectsOverflow); + // Compute union of all overflow areas relative to aFirstContinuation: + nsLayoutUtils::GetAllInFlowBoxes(aFirstContinuation, &collector); + // Return the result in user space: + return collector.GetResult() + aFirstContinuationToUserSpace; +} + + bool nsSVGIntegrationUtils::UsingEffectsForFrame(const nsIFrame* aFrame) { @@ -69,54 +183,28 @@ nsSVGIntegrationUtils::GetSVGCoordContextForNonSVGFrame(nsIFrame* aNonSVGFrame) presContext->AppUnitsToFloatCSSPixels(r.height)); } -static nsRect -GetPreEffectsOverflowRect(nsIFrame* aFrame) +gfxRect +nsSVGIntegrationUtils::GetSVGBBoxForNonSVGFrame(nsIFrame* aNonSVGFrame) { - nsRect* r = static_cast - (aFrame->Properties().Get(nsIFrame::PreEffectsBBoxProperty())); - if (r) - return *r; - return aFrame->GetVisualOverflowRect(); -} - -struct BBoxCollector : public nsLayoutUtils::BoxCallback { - nsIFrame* mReferenceFrame; - nsIFrame* mCurrentFrame; - const nsRect& mCurrentFrameOverflowArea; - nsRect mResult; - - BBoxCollector(nsIFrame* aReferenceFrame, nsIFrame* aCurrentFrame, - const nsRect& aCurrentFrameOverflowArea) - : mReferenceFrame(aReferenceFrame), mCurrentFrame(aCurrentFrame), - mCurrentFrameOverflowArea(aCurrentFrameOverflowArea) {} - - virtual void AddBox(nsIFrame* aFrame) { - nsRect overflow = aFrame == mCurrentFrame ? mCurrentFrameOverflowArea - : GetPreEffectsOverflowRect(aFrame); - mResult.UnionRect(mResult, overflow + aFrame->GetOffsetTo(mReferenceFrame)); - } -}; - -static nsRect -GetSVGBBox(nsIFrame* aFirstContinuation, - nsIFrame* aCurrentFrame, - const nsRect& aCurrentFramesPreEffectsOverflow, - const nsPoint& aFirstContinuationToUserSpace) -{ - NS_ASSERTION(!aFirstContinuation->GetPrevContinuation(), - "Need first continuation here"); - // Compute union of all overflow areas relative to aFirstContinuation: - BBoxCollector collector(aFirstContinuation, aCurrentFrame, - aCurrentFramesPreEffectsOverflow); - nsLayoutUtils::GetAllInFlowBoxes(aFirstContinuation, &collector); - // Get it into "user space" for non-SVG frames - return collector.mResult + aFirstContinuationToUserSpace; + NS_ASSERTION(!aNonSVGFrame->IsFrameOfType(nsIFrame::eSVG), + "SVG frames should not get here"); + nsIFrame* firstFrame = + nsLayoutUtils::GetFirstContinuationOrSpecialSibling(aNonSVGFrame); + // 'r' is in "user space": + nsRect r = GetPreEffectsVisualOverflowUnion(firstFrame, nsnull, nsRect(), + GetOffsetToUserSpace(firstFrame)); + return nsLayoutUtils::RectToGfxRect(r, + aNonSVGFrame->PresContext()->AppUnitsPerCSSPixel()); } nsRect -nsSVGIntegrationUtils::ComputeFrameEffectsRect(nsIFrame* aFrame, - const nsRect& aOverflowRect) + nsSVGIntegrationUtils:: + ComputePostEffectsVisualOverflowRect(nsIFrame* aFrame, + const nsRect& aPreEffectsOverflowRect) { + NS_ASSERTION(!(aFrame->GetStateBits() & NS_FRAME_SVG_LAYOUT), + "Don't call this on SVG child frames"); + nsIFrame* firstFrame = nsLayoutUtils::GetFirstContinuationOrSpecialSibling(aFrame); nsSVGEffects::EffectProperties effectProperties = @@ -124,25 +212,48 @@ nsSVGIntegrationUtils::ComputeFrameEffectsRect(nsIFrame* aFrame, nsSVGFilterFrame *filterFrame = effectProperties.mFilter ? effectProperties.mFilter->GetFilterFrame() : nsnull; if (!filterFrame) - return aOverflowRect; + return aPreEffectsOverflowRect; - // XXX this isn't really right. We can't compute the correct filter - // bbox until all aFrame's continuations have been reflowed. - // but then it's too late to set the overflow areas for the earlier frames. - nsPoint firstFrameToUserSpace = GetOffsetToUserSpace(firstFrame); - nsRect r = GetSVGBBox(firstFrame, aFrame, aOverflowRect, - firstFrameToUserSpace); - // r is relative to user space + // XXX Since we're called during reflow, this is broken for frames with + // continuations. When we're called for a frame with continuations, we're + // called for each continuation in turn as they're reflowed. However, it + // isn't until the last continuation is reflowed that the following + // GetOffsetToUserSpace() and GetPreEffectsVisualOverflowUnion() calls will + // obtain valid border boxes for all the continuations. As a result, we'll + // end up returning bogus post-filter visual overflow rects for all the prior + // continuations. Unfortunately, by the time the last continuation is + // reflowed, it's too late to go back and set and propagate the overflow + // rects on the previous continuations. + // + // XXXjwatt It seems like the only reason we pass an override bbox to + // GetPostFilterBounds instead of just letting the filter code call into our + // GetSVGBBoxForNonSVGFrame method is as a slight optimization so + // GetPreEffectsVisualOverflowUnion won't have to look up the + // aPreEffectsOverflowRect that we have to hand. The bbox we provide is + // the same as the bbox it would otherwise get - well, almost. We do round it + // out to pixel boundaries, but does that matter? If so, it would have been + // nice to have a comment here explaining why (and should + // GetSVGBBoxForNonSVGFrame also round out?). If not, it doesn't look like + // the extra code complexity is worth it to me. PRUint32 appUnitsPerDevPixel = aFrame->PresContext()->AppUnitsPerDevPixel(); - nsIntRect p = r.ToOutsidePixels(appUnitsPerDevPixel); - p = filterFrame->GetPostFilterBounds(firstFrame, &p); - r = p.ToAppUnits(appUnitsPerDevPixel); - // Make it relative to aFrame again - return r - (aFrame->GetOffsetTo(firstFrame) + firstFrameToUserSpace); + nsPoint firstFrameToUserSpace = GetOffsetToUserSpace(firstFrame); + // overrideBBox is in "user space", in dev pixels: + nsIntRect overrideBBox = + GetPreEffectsVisualOverflowUnion(firstFrame, aFrame, + aPreEffectsOverflowRect, + firstFrameToUserSpace). + ToOutsidePixels(appUnitsPerDevPixel); + + nsRect overflowRect = + filterFrame->GetPostFilterBounds(firstFrame, &overrideBBox). + ToAppUnits(appUnitsPerDevPixel); + + // Return overflowRect relative to aFrame, rather than "user space": + return overflowRect - (aFrame->GetOffsetTo(firstFrame) + firstFrameToUserSpace); } nsRect -nsSVGIntegrationUtils::GetInvalidAreaForChangedSource(nsIFrame* aFrame, +nsSVGIntegrationUtils::AdjustInvalidAreaForSVGEffects(nsIFrame* aFrame, const nsRect& aInvalidRect) { // Don't bother calling GetEffectProperties; the filter property should @@ -256,17 +367,6 @@ nsSVGIntegrationUtils::PaintFramesWithEffects(nsRenderingContext* aCtx, NS_ASSERTION(!svgChildFrame, "Should never be called on an SVG frame"); #endif - float opacity = aEffectsFrame->GetStyleDisplay()->mOpacity; - if (opacity == 0.0f) - return; - - /* Properties are added lazily and may have been removed by a restyle, - so make sure all applicable ones are set again. */ - nsIFrame* firstFrame = - nsLayoutUtils::GetFirstContinuationOrSpecialSibling(aEffectsFrame); - nsSVGEffects::EffectProperties effectProperties = - nsSVGEffects::GetEffectProperties(firstFrame); - /* SVG defines the following rendering model: * * 1. Render geometry @@ -281,18 +381,28 @@ nsSVGIntegrationUtils::PaintFramesWithEffects(nsRenderingContext* aCtx, * + Merge opacity and masking if both used together. */ + float opacity = aEffectsFrame->GetStyleDisplay()->mOpacity; + if (opacity == 0.0f) { + return; + } + + /* Properties are added lazily and may have been removed by a restyle, + so make sure all applicable ones are set again. */ + nsIFrame* firstFrame = + nsLayoutUtils::GetFirstContinuationOrSpecialSibling(aEffectsFrame); + nsSVGEffects::EffectProperties effectProperties = + nsSVGEffects::GetEffectProperties(firstFrame); + bool isOK = true; nsSVGClipPathFrame *clipPathFrame = effectProperties.GetClipPathFrame(&isOK); nsSVGFilterFrame *filterFrame = effectProperties.GetFilterFrame(&isOK); nsSVGMaskFrame *maskFrame = effectProperties.GetMaskFrame(&isOK); + if (!isOK) { + return; // Some resource is missing. We shouldn't paint anything. + } bool isTrivialClip = clipPathFrame ? clipPathFrame->IsTrivial() : true; - if (!isOK) { - // Some resource is missing. We shouldn't paint anything. - return; - } - gfxContext* gfx = aCtx->ThebesContext(); gfxContextMatrixAutoSaveRestore matrixAutoSaveRestore(gfx); @@ -304,7 +414,7 @@ nsSVGIntegrationUtils::PaintFramesWithEffects(nsRenderingContext* aCtx, ToAppUnits(appUnitsPerDevPixel); aCtx->Translate(offset); - gfxMatrix matrix = GetInitialMatrix(aEffectsFrame); + gfxMatrix cssPxToDevPxMatrix = GetCSSPxToDevPxMatrix(aEffectsFrame); bool complexEffects = false; /* Check if we need to do additional operations on this child's @@ -321,7 +431,7 @@ nsSVGIntegrationUtils::PaintFramesWithEffects(nsRenderingContext* aCtx, */ if (clipPathFrame && isTrivialClip) { gfx->Save(); - clipPathFrame->ClipPaint(aCtx, aEffectsFrame, matrix); + clipPathFrame->ClipPaint(aCtx, aEffectsFrame, cssPxToDevPxMatrix); } /* Paint the child */ @@ -351,13 +461,13 @@ nsSVGIntegrationUtils::PaintFramesWithEffects(nsRenderingContext* aCtx, nsRefPtr maskSurface = maskFrame ? maskFrame->ComputeMaskAlpha(aCtx, aEffectsFrame, - matrix, opacity) : nsnull; + cssPxToDevPxMatrix, opacity) : nsnull; nsRefPtr clipMaskSurface; if (clipPathFrame && !isTrivialClip) { gfx->PushGroup(gfxASurface::CONTENT_COLOR_ALPHA); - nsresult rv = clipPathFrame->ClipPaint(aCtx, aEffectsFrame, matrix); + nsresult rv = clipPathFrame->ClipPaint(aCtx, aEffectsFrame, cssPxToDevPxMatrix); clipMaskSurface = gfx->PopGroup(); if (NS_SUCCEEDED(rv) && clipMaskSurface) { @@ -382,7 +492,7 @@ nsSVGIntegrationUtils::PaintFramesWithEffects(nsRenderingContext* aCtx, } gfxMatrix -nsSVGIntegrationUtils::GetInitialMatrix(nsIFrame* aNonSVGFrame) +nsSVGIntegrationUtils::GetCSSPxToDevPxMatrix(nsIFrame* aNonSVGFrame) { NS_ASSERTION(!aNonSVGFrame->IsFrameOfType(nsIFrame::eSVG), "SVG frames should not get here"); @@ -395,20 +505,6 @@ nsSVGIntegrationUtils::GetInitialMatrix(nsIFrame* aNonSVGFrame) 0.0, 0.0); } -gfxRect -nsSVGIntegrationUtils::GetSVGBBoxForNonSVGFrame(nsIFrame* aNonSVGFrame) -{ - NS_ASSERTION(!aNonSVGFrame->IsFrameOfType(nsIFrame::eSVG), - "SVG frames should not get here"); - nsIFrame* firstFrame = - nsLayoutUtils::GetFirstContinuationOrSpecialSibling(aNonSVGFrame); - // 'r' is in "user space": - nsRect r = GetSVGBBox(firstFrame, nsnull, nsRect(), - GetOffsetToUserSpace(firstFrame)); - return nsLayoutUtils::RectToGfxRect(r, - aNonSVGFrame->PresContext()->AppUnitsPerCSSPixel()); -} - class PaintFrameCallback : public gfxDrawingCallback { public: PaintFrameCallback(nsIFrame* aFrame, diff --git a/layout/svg/base/src/nsSVGIntegrationUtils.h b/layout/svg/base/src/nsSVGIntegrationUtils.h index 85d819789ebf..d75bc806762c 100644 --- a/layout/svg/base/src/nsSVGIntegrationUtils.h +++ b/layout/svg/base/src/nsSVGIntegrationUtils.h @@ -23,7 +23,7 @@ struct nsSize; * Integration of SVG effects (clipPath clipping, masking and filters) into * regular display list based painting and hit-testing. */ -class nsSVGIntegrationUtils +class nsSVGIntegrationUtils MOZ_FINAL { public: /** @@ -78,25 +78,48 @@ public: GetSVGCoordContextForNonSVGFrame(nsIFrame* aNonSVGFrame); /** - * Adjust overflow rect for effects. - * XXX this is a problem. We really need to compute the effects rect for - * a whole chain of frames for a given element at once. but we have no - * way to do this effectively with Gecko's current reflow architecture. - * See http://groups.google.com/group/mozilla.dev.tech.layout/msg/6b179066f3051f65 + * SVG effects such as SVG filters, masking and clipPath may require an SVG + * "bbox" for the element they're being applied to in order to make decisions + * about positioning, and to resolve various lengths against. This method + * provides the "bbox" for non-SVG frames. The bbox returned is in CSS px + * units, and is the union of all aNonSVGFrame's continuations' overflow + * areas, relative to the top-left of the union of all aNonSVGFrame's + * continuations' border box rects. */ - static nsRect - ComputeFrameEffectsRect(nsIFrame* aFrame, const nsRect& aOverflowRect); + static gfxRect + GetSVGBBoxForNonSVGFrame(nsIFrame* aNonSVGFrame); + /** - * Adjust the frame's invalidation area to cover effects + * Used to adjust a frame's pre-effects visual overflow rect to take account + * of SVG effects. + * + * XXX This method will not do the right thing for frames with continuations. + * It really needs all the continuations to have been reflowed before being + * called, but we currently call it on each continuation as its overflow + * rects are set during the reflow of each particular continuation. Gecko's + * current reflow architecture does not allow us to set the overflow rects + * for a whole chain of continuations for a given element at the point when + * the last continuation is reflowed. See: + * http://groups.google.com/group/mozilla.dev.tech.layout/msg/6b179066f3051f65 */ static nsRect - GetInvalidAreaForChangedSource(nsIFrame* aFrame, const nsRect& aInvalidRect); + ComputePostEffectsVisualOverflowRect(nsIFrame* aFrame, + const nsRect& aPreEffectsOverflowRect); + + /** + * Used to adjust the area of a frame that needs to be invalidated to take + * account of SVG effects. + */ + static nsRect + AdjustInvalidAreaForSVGEffects(nsIFrame* aFrame, const nsRect& aInvalidRect); + /** * Figure out which area of the source is needed given an area to * repaint */ static nsRect GetRequiredSourceForInvalidArea(nsIFrame* aFrame, const nsRect& aDamageRect); + /** * Returns true if the given point is not clipped out by effects. * @param aPt in appunits relative to aFrame @@ -115,23 +138,14 @@ public: nsDisplayListBuilder* aBuilder, nsDisplayList* aInnerList); + /** + * SVG frames expect to paint in SVG user units, which are equal to CSS px + * units. This method provides a transform matrix to multiply onto a + * gfxContext's current transform to convert the context's current units from + * its usual dev pixels to SVG user units/CSS px to keep the SVG code happy. + */ static gfxMatrix - GetInitialMatrix(nsIFrame* aNonSVGFrame); - /** - * Returns aNonSVGFrame's rect in CSS pixel units. This is the union - * of all its continuations' rectangles. The top-left is always 0,0 - * since "user space" origin for non-SVG frames is the top-left of the - * union of all the continuations' rectangles. - */ - static gfxRect - GetSVGRectForNonSVGFrame(nsIFrame* aNonSVGFrame); - /** - * Returns aNonSVGFrame's bounding box in CSS units. This is the union - * of all its continuations' overflow areas, relative to the top-left - * of all the continuations' rectangles. - */ - static gfxRect - GetSVGBBoxForNonSVGFrame(nsIFrame* aNonSVGFrame); + GetCSSPxToDevPxMatrix(nsIFrame* aNonSVGFrame); /** * @param aRenderingContext the target rendering context in which the paint diff --git a/layout/svg/base/src/nsSVGUtils.cpp b/layout/svg/base/src/nsSVGUtils.cpp index 580149f1c1dd..7d384f8a6590 100644 --- a/layout/svg/base/src/nsSVGUtils.cpp +++ b/layout/svg/base/src/nsSVGUtils.cpp @@ -1059,7 +1059,7 @@ nsSVGUtils::GetCanvasTM(nsIFrame *aFrame) // XXX yuck, we really need a common interface for GetCanvasTM if (!aFrame->IsFrameOfType(nsIFrame::eSVG)) { - return nsSVGIntegrationUtils::GetInitialMatrix(aFrame); + return nsSVGIntegrationUtils::GetCSSPxToDevPxMatrix(aFrame); } nsIAtom* type = aFrame->GetType(); From 3a7ab6bdea92ec0a09e442ddb5862cbcf8f5c529 Mon Sep 17 00:00:00 2001 From: Jeff Walden Date: Mon, 11 Jun 2012 16:16:46 -0700 Subject: [PATCH 005/154] Bug 426163 - Make MOZ_CRASH() use TerminateProcess on Windows rather than exit so that destructors and atexit handlers aren't called. r=ted --HG-- extra : rebase_source : 631b1707f06852f4c47acbfb9c7401b22507267b --- mfbt/Assertions.h | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/mfbt/Assertions.h b/mfbt/Assertions.h index a6615c2f0fb8..25d7d8ebd207 100644 --- a/mfbt/Assertions.h +++ b/mfbt/Assertions.h @@ -13,7 +13,23 @@ #include #include -#ifndef WIN32 +#ifdef WIN32 + /* + * TerminateProcess and GetCurrentProcess are defined in , which + * further depends on . We hardcode these few definitions manually + * because those headers clutter the global namespace with a significant + * number of undesired macros and symbols. + */ +# ifdef __cplusplus + extern "C" { +# endif + __declspec(dllimport) int __stdcall + TerminateProcess(void* hProcess, unsigned int uExitCode); + __declspec(dllimport) void* __stdcall GetCurrentProcess(void); +# ifdef __cplusplus + } +# endif +#else # include #endif #ifdef ANDROID @@ -120,22 +136,30 @@ extern "C" { * On MSVC use the __debugbreak compiler intrinsic, which produces an inline * (not nested in a system function) breakpoint. This distinctively invokes * Breakpad without requiring system library symbols on all stack-processing - * machines, as a nested breakpoint would require. (Technically all Windows - * compilers would require this, but practically only MSVC matters.) + * machines, as a nested breakpoint would require. We use TerminateProcess + * with the exit code aborting would generate because we don't want to invoke + * atexit handlers, destructors, library unload handlers, and so on when our + * process might be in a compromised state. We don't use abort() because + * it'd cause Windows to annoyingly pop up the process error dialog multiple + * times. See bug 345118 and bug 426163. + * + * (Technically these are Windows requirements, not MSVC requirements. But + * practically you need MSVC for debugging, and we only ship builds created + * by MSVC, so doing it this way reduces complexity.) */ # ifdef __cplusplus # define MOZ_CRASH() \ do { \ __debugbreak(); \ *((volatile int*) NULL) = 123; \ - ::exit(3); \ + ::TerminateProcess(::GetCurrentProcess(), 3); \ } while (0) # else # define MOZ_CRASH() \ do { \ __debugbreak(); \ *((volatile int*) NULL) = 123; \ - exit(3); \ + TerminateProcess(GetCurrentProcess(), 3); \ } while (0) # endif #else From 765347bb6f827c4437664374f9a45e621de46a1f Mon Sep 17 00:00:00 2001 From: Jeff Walden Date: Mon, 11 Jun 2012 16:16:47 -0700 Subject: [PATCH 006/154] Bug 760995 - Move Scoped.h into the mozilla namespace. r=sparky --HG-- extra : rebase_source : ea32c4240ea552c72ed16074c803927e638474dc --- mfbt/Scoped.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mfbt/Scoped.h b/mfbt/Scoped.h index 27016b3c32ee..b811a47d5e44 100644 --- a/mfbt/Scoped.h +++ b/mfbt/Scoped.h @@ -35,12 +35,12 @@ * Note that the RAII classes defined in this header do _not_ perform any form * of reference-counting or garbage-collection. These classes have exactly two * behaviors: + * * - if |forget()| has not been called, the resource is always deallocated at * the end of the scope; * - if |forget()| has been called, any control on the resource is unbound * and the resource is not deallocated by the class. * - * * Extension: * * In addition, this header provides class |Scoped| and macro |SCOPED_TEMPLATE| @@ -52,6 +52,8 @@ #include "mozilla/Attributes.h" #include "mozilla/GuardObjects.h" +namespace mozilla { + /* * Scoped is a helper to create RAII wrappers * Type argument |Traits| is expected to have the following structure: @@ -159,9 +161,9 @@ class Scoped */ #define SCOPED_TEMPLATE(name, Traits) \ template \ -struct name : public Scoped > \ +struct name : public mozilla::Scoped > \ { \ - typedef Scoped > Super; \ + typedef mozilla::Scoped > Super; \ typedef typename Super::Resource Resource; \ name& operator=(Resource ptr) { \ Super::operator=(ptr); \ @@ -221,4 +223,6 @@ struct ScopedDeleteArrayTraits : public ScopedFreePtrTraits }; SCOPED_TEMPLATE(ScopedDeleteArray, ScopedDeleteArrayTraits) +} /* namespace mozilla */ + #endif // mozilla_Scoped_h_ From eb986aa0c730efb8130d1331373dffb87e66f40d Mon Sep 17 00:00:00 2001 From: Jeff Walden Date: Mon, 11 Jun 2012 16:16:46 -0700 Subject: [PATCH 007/154] Eliminate Assertions.h's dependency on Types.h, for a narrower interface and minimized dependencies. No bug, r=Ms2ger --HG-- extra : rebase_source : 0d68ef6274ad697bf4ff49038ef19368174dad54 --- mfbt/Assertions.h | 2 +- mfbt/HashFunctions.cpp | 1 + mfbt/HashFunctions.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/mfbt/Assertions.h b/mfbt/Assertions.h index 25d7d8ebd207..407fb24e98d1 100644 --- a/mfbt/Assertions.h +++ b/mfbt/Assertions.h @@ -9,8 +9,8 @@ #define mozilla_Assertions_h_ #include "mozilla/Attributes.h" -#include "mozilla/Types.h" +#include #include #include #ifdef WIN32 diff --git a/mfbt/HashFunctions.cpp b/mfbt/HashFunctions.cpp index 199e265de52e..28d4c9f4022b 100644 --- a/mfbt/HashFunctions.cpp +++ b/mfbt/HashFunctions.cpp @@ -6,6 +6,7 @@ /* Implementations of hash functions. */ #include "mozilla/HashFunctions.h" +#include "mozilla/Types.h" #include diff --git a/mfbt/HashFunctions.h b/mfbt/HashFunctions.h index 64ac6f91ce5c..7a19749e556d 100644 --- a/mfbt/HashFunctions.h +++ b/mfbt/HashFunctions.h @@ -48,6 +48,7 @@ #include "mozilla/Assertions.h" #include "mozilla/Attributes.h" #include "mozilla/StandardInteger.h" +#include "mozilla/Types.h" #ifdef __cplusplus namespace mozilla { From 5593b79924c3e92742fdb34299a8cdabd4df2088 Mon Sep 17 00:00:00 2001 From: Jeff Walden Date: Thu, 14 Jun 2012 19:13:27 -0700 Subject: [PATCH 008/154] Bug 765990 - Never use Rooted as a temporary, so that the Rooted->Handle conversion path occurs in only one manner, not two (ambiguous) manners. r=luke --- dom/base/nsDOMWindowUtils.cpp | 4 +- js/src/builtin/MapObject.cpp | 8 +- js/src/builtin/RegExp.cpp | 20 +-- js/src/frontend/BytecodeEmitter.cpp | 4 +- js/src/frontend/Parser.cpp | 9 +- js/src/gc/Root.h | 13 +- js/src/jsapi.cpp | 107 +++++++++------- js/src/jsarray.cpp | 48 +++++--- js/src/jscntxt.h | 2 +- js/src/jscompartment.cpp | 4 +- js/src/jsdate.cpp | 4 +- js/src/jsdbgapi.cpp | 3 +- js/src/jsexn.cpp | 3 +- js/src/jsfriendapi.cpp | 9 +- js/src/jsfun.cpp | 3 +- js/src/jsfuninlines.h | 10 +- js/src/jsinfer.cpp | 4 +- js/src/jsinterp.cpp | 6 +- js/src/jsinterpinlines.h | 18 +-- js/src/jsobj.cpp | 182 ++++++++++++++++------------ js/src/jsobj.h | 32 +++-- js/src/jsobjinlines.h | 79 +++++++----- js/src/json.cpp | 6 +- js/src/jsonparser.cpp | 3 +- js/src/jsproxy.cpp | 81 ++++++++----- js/src/jsscope.cpp | 4 +- js/src/jsscript.cpp | 3 +- js/src/jsscript.h | 3 +- js/src/jsstr.cpp | 24 ++-- js/src/jstypedarray.cpp | 87 ++++++++----- js/src/jswrapper.cpp | 17 ++- js/src/jsxml.cpp | 104 +++++++++------- js/src/methodjit/Compiler.cpp | 61 +++++----- js/src/methodjit/FastOps.cpp | 4 +- js/src/methodjit/PolyIC.cpp | 13 +- js/src/methodjit/StubCalls.cpp | 21 ++-- js/src/shell/js.cpp | 13 +- js/src/shell/jsheaptools.cpp | 3 +- js/src/vm/ArgumentsObject.cpp | 9 +- js/src/vm/Debugger.cpp | 50 +++++--- js/src/vm/RegExpObject.cpp | 16 +-- js/src/vm/ScopeObject.cpp | 39 +++--- js/xpconnect/src/XPCComponents.cpp | 6 +- 43 files changed, 676 insertions(+), 463 deletions(-) diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp index 346deb715b30..6d69e267dacb 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp @@ -1825,13 +1825,13 @@ nsDOMWindowUtils::GetParent(const JS::Value& aObject, return NS_ERROR_XPC_BAD_CONVERT_JS; } - JSObject* parent = JS_GetParent(JSVAL_TO_OBJECT(aObject)); + JS::Rooted parent(aCx, JS_GetParent(JSVAL_TO_OBJECT(aObject))); *aParent = OBJECT_TO_JSVAL(parent); // Outerize if necessary. if (parent) { if (JSObjectOp outerize = js::GetObjectClass(parent)->ext.outerObject) { - *aParent = OBJECT_TO_JSVAL(outerize(aCx, JS::RootedObject(aCx, parent))); + *aParent = OBJECT_TO_JSVAL(outerize(aCx, parent)); } } diff --git a/js/src/builtin/MapObject.cpp b/js/src/builtin/MapObject.cpp index 9fca8d2a5ec3..a7893d5d6e8c 100644 --- a/js/src/builtin/MapObject.cpp +++ b/js/src/builtin/MapObject.cpp @@ -155,8 +155,8 @@ JSFunctionSpec MapObject::methods[] = { JSObject * MapObject::initClass(JSContext *cx, JSObject *obj) { - return InitClass(cx, Rooted(cx, &obj->asGlobal()), - &class_, JSProto_Map, construct, methods); + Rooted global(cx, &obj->asGlobal()); + return InitClass(cx, global, &class_, JSProto_Map, construct, methods); } void @@ -348,8 +348,8 @@ JSFunctionSpec SetObject::methods[] = { JSObject * SetObject::initClass(JSContext *cx, JSObject *obj) { - return InitClass(cx, Rooted(cx, &obj->asGlobal()), - &class_, JSProto_Set, construct, methods); + Rooted global(cx, &obj->asGlobal()); + return InitClass(cx, global, &class_, JSProto_Set, construct, methods); } void diff --git a/js/src/builtin/RegExp.cpp b/js/src/builtin/RegExp.cpp index 6d1a611b04ae..20e278283bc2 100644 --- a/js/src/builtin/RegExp.cpp +++ b/js/src/builtin/RegExp.cpp @@ -23,8 +23,8 @@ class RegExpMatchBuilder JSContext * const cx; RootedObject array; - bool setProperty(JSAtom *name, Value v) { - return !!baseops::DefineProperty(cx, array, RootedId(cx, AtomToId(name)), &v, + bool setProperty(Handle name, Value v) { + return !!baseops::DefineProperty(cx, array, name, &v, JS_PropertyStub, JS_StrictPropertyStub, JSPROP_ENUMERATE); } @@ -38,12 +38,14 @@ class RegExpMatchBuilder } bool setIndex(int index) { - return setProperty(cx->runtime->atomState.indexAtom, Int32Value(index)); + Rooted name(cx, cx->runtime->atomState.indexAtom); + return setProperty(name, Int32Value(index)); } bool setInput(JSString *str) { JS_ASSERT(str); - return setProperty(cx->runtime->atomState.inputAtom, StringValue(str)); + Rooted name(cx, cx->runtime->atomState.inputAtom); + return setProperty(name, StringValue(str)); } }; @@ -194,8 +196,8 @@ CompileRegExpObject(JSContext *cx, RegExpObjectBuilder &builder, CallArgs args) { if (args.length() == 0) { RegExpStatics *res = cx->regExpStatics(); - RegExpObject *reobj = builder.build(RootedAtom(cx, cx->runtime->emptyString), - res->getFlags()); + Rooted empty(cx, cx->runtime->emptyString); + RegExpObject *reobj = builder.build(empty, res->getFlags()); if (!reobj) return false; args.rval() = ObjectValue(*reobj); @@ -242,7 +244,8 @@ CompileRegExpObject(JSContext *cx, RegExpObjectBuilder &builder, CallArgs args) if (!sourceObj.getProperty(cx, cx->runtime->atomState.sourceAtom, &v)) return false; - RegExpObject *reobj = builder.build(RootedAtom(cx, &v.toString()->asAtom()), flags); + Rooted sourceAtom(cx, &v.toString()->asAtom()); + RegExpObject *reobj = builder.build(sourceAtom, flags); if (!reobj) return false; @@ -462,7 +465,8 @@ js_InitRegExpClass(JSContext *cx, JSObject *obj) proto->setPrivate(NULL); RegExpObjectBuilder builder(cx, &proto->asRegExp()); - if (!builder.build(RootedAtom(cx, cx->runtime->emptyString), RegExpFlag(0))) + Rooted empty(cx, cx->runtime->emptyString); + if (!builder.build(empty, RegExpFlag(0))) return NULL; if (!DefinePropertiesAndBrand(cx, proto, NULL, regexp_methods)) diff --git a/js/src/frontend/BytecodeEmitter.cpp b/js/src/frontend/BytecodeEmitter.cpp index 208967f7077b..8710dfe41e39 100644 --- a/js/src/frontend/BytecodeEmitter.cpp +++ b/js/src/frontend/BytecodeEmitter.cpp @@ -5614,8 +5614,8 @@ EmitObject(JSContext *cx, BytecodeEmitter *bce, ParseNode *pn) if (obj) { JS_ASSERT(!obj->inDictionaryMode()); - if (!DefineNativeProperty(cx, obj, RootedId(cx, AtomToId(pn3->pn_atom)), - UndefinedValue(), NULL, NULL, + Rooted id(cx, AtomToId(pn3->pn_atom)); + if (!DefineNativeProperty(cx, obj, id, UndefinedValue(), NULL, NULL, JSPROP_ENUMERATE, 0, 0)) { return false; diff --git a/js/src/frontend/Parser.cpp b/js/src/frontend/Parser.cpp index 1448986fc340..fcc4e6733f33 100644 --- a/js/src/frontend/Parser.cpp +++ b/js/src/frontend/Parser.cpp @@ -540,7 +540,8 @@ BindLocalVariable(JSContext *cx, TreeContext *tc, ParseNode *pn, BindingKind kin JS_ASSERT(kind == VARIABLE || kind == CONSTANT); unsigned index = tc->sc->bindings.numVars(); - if (!tc->sc->bindings.add(cx, RootedAtom(cx, pn->pn_atom), kind)) + Rooted atom(cx, pn->pn_atom); + if (!tc->sc->bindings.add(cx, atom, kind)) return false; if (!pn->pn_cookie.set(cx, tc->staticLevel, index)) @@ -604,7 +605,7 @@ Parser::functionBody(FunctionBodyType type) if (!CheckStrictParameters(context, this)) return NULL; - Rooted const arguments(context, context->runtime->atomState.argumentsAtom); + Rooted arguments(context, context->runtime->atomState.argumentsAtom); /* * Non-top-level functions use JSOP_DEFFUN which is a dynamic scope @@ -6851,8 +6852,8 @@ Parser::primaryExpr(TokenKind tt, bool afterDoubleDot) pn->pn_xflags |= PNX_NONCONST; /* NB: Getter function in { get x(){} } is unnamed. */ - pn2 = functionDef(RootedPropertyName(context, NULL), - op == JSOP_GETTER ? Getter : Setter, Expression); + Rooted funName(context, NULL); + pn2 = functionDef(funName, op == JSOP_GETTER ? Getter : Setter, Expression); if (!pn2) return NULL; TokenPos pos = {begin, pn2->pn_pos.end}; diff --git a/js/src/gc/Root.h b/js/src/gc/Root.h index 6b87ca8e60f9..4505ab1d3acb 100644 --- a/js/src/gc/Root.h +++ b/js/src/gc/Root.h @@ -96,7 +96,7 @@ class Handle * Construct a handle from an explicitly rooted location. This is the * normal way to create a handle, and normally happens implicitly. */ - template inline Handle(const Rooted &root); + template inline Handle(Rooted &root); const T *address() const { return ptr; } T value() const { return *ptr; } @@ -163,15 +163,6 @@ class Rooted Rooted(JSContext *cx) { init(cx, RootMethods::initial()); } Rooted(JSContext *cx, T initial) { init(cx, initial); } - /* - * This method is only necessary due to an obscure C++98 requirement (that - * there be an accessible, usable copy constructor when passing a temporary - * to an implicitly-called constructor for use with a const-ref parameter). - * (Head spinning yet?) We can remove this when we build the JS engine - * with -std=c++11. - */ - operator Handle () const { return Handle(*this); } - ~Rooted() { #if defined(JSGC_ROOT_ANALYSIS) || defined(JSGC_USE_EXACT_ROOTING) @@ -217,7 +208,7 @@ class Rooted template template inline -Handle::Handle(const Rooted &root) +Handle::Handle(Rooted &root) { testAssign(); ptr = reinterpret_cast(root.address()); diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index 18015169e533..a56918e823b6 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -1779,7 +1779,8 @@ JS_InitStandardClasses(JSContext *cx, JSObject *obj) assertSameCompartment(cx, obj); - return GlobalObject::initStandardClasses(cx, Rooted(cx, &obj->global())); + Rooted global(cx, &obj->global()); + return GlobalObject::initStandardClasses(cx, global); } #define CLASP(name) (&name##Class) @@ -3143,7 +3144,7 @@ JS_ConvertStub(JSContext *cx, JSHandleObject obj, JSType type, jsval *vp) { JS_ASSERT(type != JSTYPE_OBJECT && type != JSTYPE_FUNCTION); JS_ASSERT(obj); - return DefaultValue(cx, RootedObject(cx, obj), type, vp); + return DefaultValue(cx, obj, type, vp); } JS_PUBLIC_API(JSObject *) @@ -3231,12 +3232,15 @@ JS_GetPrototype(JSObject *obj) } JS_PUBLIC_API(JSBool) -JS_SetPrototype(JSContext *cx, JSObject *obj, JSObject *proto) +JS_SetPrototype(JSContext *cx, JSObject *obj_, JSObject *proto_) { AssertNoGC(cx); CHECK_REQUEST(cx); - assertSameCompartment(cx, obj, proto); - return SetProto(cx, RootedObject(cx, obj), RootedObject(cx, proto), JS_FALSE); + assertSameCompartment(cx, obj_, proto_); + + Rooted obj(cx, obj_); + Rooted proto(cx, proto_); + return SetProto(cx, obj, proto, JS_FALSE); } JS_PUBLIC_API(JSObject *) @@ -3247,14 +3251,17 @@ JS_GetParent(JSObject *obj) } JS_PUBLIC_API(JSBool) -JS_SetParent(JSContext *cx, JSObject *obj, JSObject *parent) +JS_SetParent(JSContext *cx, JSObject *obj_, JSObject *parent_) { AssertNoGC(cx); CHECK_REQUEST(cx); - JS_ASSERT(!obj->isScope()); - JS_ASSERT(parent || !obj->getParent()); - assertSameCompartment(cx, obj, parent); - return JSObject::setParent(cx, RootedObject(cx, obj), RootedObject(cx, parent)); + JS_ASSERT(!obj_->isScope()); + JS_ASSERT(parent_ || !obj_->getParent()); + assertSameCompartment(cx, obj_, parent_); + + Rooted obj(cx, obj_); + Rooted parent(cx, parent_); + return JSObject::setParent(cx, obj, parent); } JS_PUBLIC_API(JSObject *) @@ -3804,12 +3811,15 @@ JS_DefineUCPropertyWithTinyId(JSContext *cx, JSObject *obj, const jschar *name, } JS_PUBLIC_API(JSBool) -JS_DefineOwnProperty(JSContext *cx, JSObject *obj, jsid id, jsval descriptor, JSBool *bp) +JS_DefineOwnProperty(JSContext *cx, JSObject *obj_, jsid id_, jsval descriptor, JSBool *bp) { AssertNoGC(cx); CHECK_REQUEST(cx); - assertSameCompartment(cx, obj, id, descriptor); - return js_DefineOwnProperty(cx, RootedObject(cx, obj), RootedId(cx, id), descriptor, bp); + assertSameCompartment(cx, obj_, id_, descriptor); + + Rooted obj(cx, obj_); + Rooted id(cx, id_); + return js_DefineOwnProperty(cx, obj, id, descriptor, bp); } JS_PUBLIC_API(JSObject *) @@ -3985,11 +3995,14 @@ JS_GetUCPropertyAttrsGetterAndSetter(JSContext *cx, JSObject *obj, } JS_PUBLIC_API(JSBool) -JS_GetOwnPropertyDescriptor(JSContext *cx, JSObject *obj, jsid id, jsval *vp) +JS_GetOwnPropertyDescriptor(JSContext *cx, JSObject *obj_, jsid id_, jsval *vp) { AssertNoGC(cx); CHECK_REQUEST(cx); - return GetOwnPropertyDescriptor(cx, RootedObject(cx, obj), RootedId(cx, id), vp); + + Rooted obj(cx, obj_); + Rooted id(cx, id_); + return GetOwnPropertyDescriptor(cx, obj, id, vp); } static JSBool @@ -4018,7 +4031,8 @@ JS_SetPropertyAttributes(JSContext *cx, JSObject *obj, const char *name, unsigned attrs, JSBool *foundp) { JSAtom *atom = js_Atomize(cx, name, strlen(name)); - return atom && SetPropertyAttributesById(cx, obj, RootedId(cx, AtomToId(atom)), attrs, foundp); + Rooted id(cx, AtomToId(atom)); + return atom && SetPropertyAttributesById(cx, obj, id, attrs, foundp); } JS_PUBLIC_API(JSBool) @@ -4026,7 +4040,8 @@ JS_SetUCPropertyAttributes(JSContext *cx, JSObject *obj, const jschar *name, siz unsigned attrs, JSBool *foundp) { JSAtom *atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen)); - return atom && SetPropertyAttributesById(cx, obj, RootedId(cx, AtomToId(atom)), attrs, foundp); + Rooted id(cx, AtomToId(atom)); + return atom && SetPropertyAttributesById(cx, obj, id, attrs, foundp); } JS_PUBLIC_API(JSBool) @@ -4050,9 +4065,11 @@ JS_ForwardGetPropertyTo(JSContext *cx, JSObject *obj, jsid id_, JSObject *onBeha } JS_PUBLIC_API(JSBool) -JS_GetPropertyByIdDefault(JSContext *cx, JSObject *obj, jsid id, jsval def, jsval *vp) +JS_GetPropertyByIdDefault(JSContext *cx, JSObject *obj_, jsid id_, jsval def, jsval *vp) { - return baseops::GetPropertyDefault(cx, RootedObject(cx, obj), RootedId(cx, id), def, vp); + Rooted obj(cx, obj_); + Rooted id(cx, id_); + return baseops::GetPropertyDefault(cx, obj, id, def, vp); } JS_PUBLIC_API(JSBool) @@ -4184,8 +4201,10 @@ JS_DeletePropertyById2(JSContext *cx, JSObject *obj, jsid id, jsval *rval) assertSameCompartment(cx, obj, id); JSAutoResolveFlags rf(cx, JSRESOLVE_QUALIFIED); - if (JSID_IS_SPECIAL(id)) - return obj->deleteSpecial(cx, Rooted(cx, JSID_TO_SPECIALID(id)), rval, false); + if (JSID_IS_SPECIAL(id)) { + Rooted sid(cx, JSID_TO_SPECIALID(id)); + return obj->deleteSpecial(cx, sid, rval, false); + } return obj->deleteByValue(cx, IdToValue(id), rval, false); } @@ -4431,12 +4450,14 @@ JS_NextProperty(JSContext *cx, JSObject *iterobj, jsid *idp) } JS_PUBLIC_API(JSObject *) -JS_NewElementIterator(JSContext *cx, JSObject *obj) +JS_NewElementIterator(JSContext *cx, JSObject *obj_) { AssertNoGC(cx); CHECK_REQUEST(cx); - assertSameCompartment(cx, obj); - return ElementIteratorObject::create(cx, RootedObject(cx, obj)); + assertSameCompartment(cx, obj_); + + Rooted obj(cx, obj_); + return ElementIteratorObject::create(cx, obj); } JS_PUBLIC_API(JSObject *) @@ -4728,6 +4749,8 @@ JS_DefineFunctions(JSContext *cx, JSObject *obj_, JSFunctionSpec *fs) if (!atom) return JS_FALSE; + Rooted id(cx, AtomToId(atom)); + /* * Define a generic arity N+1 static method for the arity N prototype * method if flags contains JSFUN_GENERIC_NATIVE. @@ -4740,11 +4763,8 @@ JS_DefineFunctions(JSContext *cx, JSObject *obj_, JSFunctionSpec *fs) } flags &= ~JSFUN_GENERIC_NATIVE; - fun = js_DefineFunction(cx, ctor, RootedId(cx, AtomToId(atom)), - js_generic_native_method_dispatcher, - fs->nargs + 1, - flags, - JSFunction::ExtendedFinalizeKind); + fun = js_DefineFunction(cx, ctor, id, js_generic_native_method_dispatcher, + fs->nargs + 1, flags, JSFunction::ExtendedFinalizeKind); if (!fun) return JS_FALSE; @@ -4755,8 +4775,7 @@ JS_DefineFunctions(JSContext *cx, JSObject *obj_, JSFunctionSpec *fs) fun->setExtendedSlot(0, PrivateValue(fs)); } - fun = js_DefineFunction(cx, obj, - RootedId(cx, AtomToId(atom)), fs->call, fs->nargs, flags); + fun = js_DefineFunction(cx, obj, id, fs->call, fs->nargs, flags); if (!fun) return JS_FALSE; } @@ -4776,7 +4795,8 @@ JS_DefineFunction(JSContext *cx, JSObject *obj_, const char *name, JSNative call JSAtom *atom = js_Atomize(cx, name, strlen(name)); if (!atom) return NULL; - return js_DefineFunction(cx, obj, RootedId(cx, AtomToId(atom)), call, nargs, attrs); + Rooted id(cx, AtomToId(atom)); + return js_DefineFunction(cx, obj, id, call, nargs, attrs); } JS_PUBLIC_API(JSFunction *) @@ -4793,7 +4813,8 @@ JS_DefineUCFunction(JSContext *cx, JSObject *obj_, JSAtom *atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen)); if (!atom) return NULL; - return js_DefineFunction(cx, obj, RootedId(cx, AtomToId(atom)), call, nargs, attrs); + Rooted id(cx, AtomToId(atom)); + return js_DefineFunction(cx, obj, id, call, nargs, attrs); } extern JS_PUBLIC_API(JSFunction *) @@ -5168,11 +5189,10 @@ CompileUCFunctionForPrincipalsCommon(JSContext *cx, JSObject *obj_, return NULL; } - if (obj && funAtom && - !obj->defineGeneric(cx, RootedId(cx, AtomToId(funAtom)), ObjectValue(*fun), NULL, NULL, - JSPROP_ENUMERATE)) - { - return NULL; + if (obj && funAtom) { + Rooted id(cx, AtomToId(funAtom)); + if (!obj->defineGeneric(cx, id, ObjectValue(*fun), NULL, NULL, JSPROP_ENUMERATE)) + return NULL; } return fun; @@ -5471,8 +5491,11 @@ JS_CallFunctionName(JSContext *cx, JSObject *obj_, const char *name, unsigned ar Value v; JSAtom *atom = js_Atomize(cx, name, strlen(name)); - return atom && - GetMethod(cx, obj, RootedId(cx, AtomToId(atom)), 0, &v) && + if (!atom) + return false; + + Rooted id(cx, AtomToId(atom)); + return GetMethod(cx, obj, id, 0, &v) && Invoke(cx, ObjectOrNullValue(obj), v, argc, argv, rval); } @@ -5851,7 +5874,9 @@ JS_ConcatStrings(JSContext *cx, JSString *left, JSString *right) { AssertNoGC(cx); CHECK_REQUEST(cx); - return js_ConcatStrings(cx, RootedString(cx, left), RootedString(cx, right)); + Rooted lstr(cx, left); + Rooted rstr(cx, right); + return js_ConcatStrings(cx, lstr, rstr); } JS_PUBLIC_API(const jschar *) diff --git a/js/src/jsarray.cpp b/js/src/jsarray.cpp index 6e444f31aa86..b371aae0c07a 100644 --- a/js/src/jsarray.cpp +++ b/js/src/jsarray.cpp @@ -716,7 +716,8 @@ static JSBool array_lookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - return array_lookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); + Rooted id(cx, NameToId(name)); + return array_lookupGeneric(cx, obj, id, objp, propp); } static JSBool @@ -744,7 +745,8 @@ static JSBool array_lookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - return array_lookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return array_lookupGeneric(cx, obj, id, objp, propp); } JSBool @@ -775,8 +777,10 @@ array_getProperty(JSContext *cx, HandleObject obj, HandleObject receiver, Handle return true; } - if (!obj->isDenseArray()) - return baseops::GetProperty(cx, obj, receiver, RootedId(cx, NameToId(name)), vp); + if (!obj->isDenseArray()) { + Rooted id(cx, NameToId(name)); + return baseops::GetProperty(cx, obj, receiver, id, vp); + } JSObject *proto = obj->getProto(); if (!proto) { @@ -821,7 +825,8 @@ array_getSpecial(JSContext *cx, HandleObject obj, HandleObject receiver, HandleS return true; } - return baseops::GetProperty(cx, obj, receiver, RootedId(cx, SPECIALID_TO_JSID(sid)), vp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return baseops::GetProperty(cx, obj, receiver, id, vp); } static JSBool @@ -833,9 +838,9 @@ array_getGeneric(JSContext *cx, HandleObject obj, HandleObject receiver, HandleI if (IsDefinitelyIndex(idval, &index)) return array_getElement(cx, obj, receiver, index, vp); - SpecialId sid; - if (ValueIsSpecial(obj, &idval, &sid, cx)) - return array_getSpecial(cx, obj, receiver, Rooted(cx, sid), vp); + Rooted sid(cx); + if (ValueIsSpecial(obj, &idval, sid.address(), cx)) + return array_getSpecial(cx, obj, receiver, sid, vp); JSAtom *atom = ToAtom(cx, idval); if (!atom) @@ -844,7 +849,8 @@ array_getGeneric(JSContext *cx, HandleObject obj, HandleObject receiver, HandleI if (atom->isIndex(&index)) return array_getElement(cx, obj, receiver, index, vp); - return array_getProperty(cx, obj, receiver, RootedPropertyName(cx, atom->asPropertyName()), vp); + Rooted name(cx, atom->asPropertyName()); + return array_getProperty(cx, obj, receiver, name, vp); } static JSBool @@ -904,7 +910,8 @@ array_setGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *vp, JSBool static JSBool array_setProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *vp, JSBool strict) { - return array_setGeneric(cx, obj, RootedId(cx, NameToId(name)), vp, strict); + Rooted id(cx, NameToId(name)); + return array_setGeneric(cx, obj, id, vp, strict); } static JSBool @@ -949,7 +956,8 @@ array_setElement(JSContext *cx, HandleObject obj, uint32_t index, Value *vp, JSB static JSBool array_setSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *vp, JSBool strict) { - return array_setGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return array_setGeneric(cx, obj, id, vp, strict); } JSBool @@ -982,7 +990,7 @@ array_defineGeneric(JSContext *cx, HandleObject obj, HandleId id, const Value *v return JS_TRUE; if (!obj->isDenseArray()) - return baseops::DefineProperty(cx, obj, id, value, getter, setter, attrs); + return baseops::DefineGeneric(cx, obj, id, value, getter, setter, attrs); do { uint32_t i = 0; // init to shut GCC up @@ -1008,14 +1016,15 @@ array_defineGeneric(JSContext *cx, HandleObject obj, HandleId id, const Value *v if (!JSObject::makeDenseArraySlow(cx, obj)) return false; - return baseops::DefineProperty(cx, obj, id, value, getter, setter, attrs); + return baseops::DefineGeneric(cx, obj, id, value, getter, setter, attrs); } static JSBool array_defineProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, const Value *value, JSPropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - return array_defineGeneric(cx, obj, RootedId(cx, NameToId(name)), value, getter, setter, attrs); + Rooted id(cx, NameToId(name)); + return array_defineGeneric(cx, obj, id, value, getter, setter, attrs); } namespace js { @@ -1063,8 +1072,8 @@ static JSBool array_defineSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, const Value *value, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - return array_defineGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), - value, getter, setter, attrs); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return array_defineGeneric(cx, obj, id, value, getter, setter, attrs); } static JSBool @@ -1155,7 +1164,7 @@ array_deleteElement(JSContext *cx, HandleObject obj, uint32_t index, Value *rval obj->setDenseArrayElement(index, MagicValue(JS_ARRAY_HOLE)); } - if (!js_SuppressDeletedElement(cx, RootedObject(cx, obj), index)) + if (!js_SuppressDeletedElement(cx, obj, index)) return false; rval->setBoolean(true); @@ -1704,7 +1713,8 @@ array_toLocaleString(JSContext *cx, unsigned argc, Value *vp) * Passing comma here as the separator. Need a way to get a * locale-specific version. */ - return array_toString_sub(cx, obj, JS_TRUE, RootedString(cx), args); + Rooted none(cx, NULL); + return array_toString_sub(cx, obj, JS_TRUE, none, args); } static inline bool @@ -2385,7 +2395,7 @@ NewbornArrayPushImpl(JSContext *cx, HandleObject obj, const Value &v) /* This can happen in one evil case. See bug 630377. */ RootedId id(cx); return IndexToId(cx, length, id.address()) && - baseops::DefineProperty(cx, obj, id, &v, NULL, NULL, JSPROP_ENUMERATE); + baseops::DefineGeneric(cx, obj, id, &v, NULL, NULL, JSPROP_ENUMERATE); } JS_ASSERT(obj->isDenseArray()); diff --git a/js/src/jscntxt.h b/js/src/jscntxt.h index 34a406aa55c6..644c73aa34c1 100644 --- a/js/src/jscntxt.h +++ b/js/src/jscntxt.h @@ -657,7 +657,7 @@ struct JSRuntime : js::RuntimeFriendFields js::Value negativeInfinityValue; js::Value positiveInfinityValue; - JSAtom *emptyString; + js::PropertyName *emptyString; /* List of active contexts sharing this runtime. */ JSCList contextList; diff --git a/js/src/jscompartment.cpp b/js/src/jscompartment.cpp index ba7f4070ae5f..3ee927f4edbd 100644 --- a/js/src/jscompartment.cpp +++ b/js/src/jscompartment.cpp @@ -167,7 +167,7 @@ JSCompartment::wrap(JSContext *cx, Value *vp) /* Unwrap incoming objects. */ if (vp->isObject()) { - JSObject *obj = &vp->toObject(); + Rooted obj(cx, &vp->toObject()); if (obj->compartment() == this) return WrapForSameCompartment(cx, obj, vp); @@ -194,7 +194,7 @@ JSCompartment::wrap(JSContext *cx, Value *vp) #ifdef DEBUG { - JSObject *outer = GetOuterObject(cx, RootedObject(cx, obj)); + JSObject *outer = GetOuterObject(cx, obj); JS_ASSERT(outer && outer == obj); } #endif diff --git a/js/src/jsdate.cpp b/js/src/jsdate.cpp index 51b1335d7fb9..2b28df175c5f 100644 --- a/js/src/jsdate.cpp +++ b/js/src/jsdate.cpp @@ -2699,8 +2699,8 @@ js_InitDateClass(JSContext *cx, JSObject *obj) RootedId toUTCStringId(cx, NameToId(cx->runtime->atomState.toUTCStringAtom)); RootedId toGMTStringId(cx, NameToId(cx->runtime->atomState.toGMTStringAtom)); if (!baseops::GetProperty(cx, dateProto, toUTCStringId, &toUTCStringFun) || - !baseops::DefineProperty(cx, dateProto, toGMTStringId, &toUTCStringFun, - JS_PropertyStub, JS_StrictPropertyStub, 0)) + !baseops::DefineGeneric(cx, dateProto, toGMTStringId, &toUTCStringFun, + JS_PropertyStub, JS_StrictPropertyStub, 0)) { return NULL; } diff --git a/js/src/jsdbgapi.cpp b/js/src/jsdbgapi.cpp index db19626d7840..2c150aba4c15 100644 --- a/js/src/jsdbgapi.cpp +++ b/js/src/jsdbgapi.cpp @@ -783,7 +783,8 @@ GetPropertyDesc(JSContext *cx, JSObject *obj_, Shape *shape, JSPropertyDesc *pd) lastException = cx->getPendingException(); cx->clearPendingException(); - if (!baseops::GetProperty(cx, obj, RootedId(cx, shape->propid()), &pd->value)) { + Rooted id(cx, shape->propid()); + if (!baseops::GetProperty(cx, obj, id, &pd->value)) { if (!cx->isExceptionPending()) { pd->flags = JSPD_ERROR; pd->value = JSVAL_VOID; diff --git a/js/src/jsexn.cpp b/js/src/jsexn.cpp index 9cb5c3a0b72d..e413a7bbf191 100644 --- a/js/src/jsexn.cpp +++ b/js/src/jsexn.cpp @@ -269,7 +269,8 @@ InitExnPrivate(JSContext *cx, HandleObject exnObject, HandleString message, if (checkAccess && i.isNonEvalFunctionFrame()) { Value v = NullValue(); RootedId callerid(cx, NameToId(cx->runtime->atomState.callerAtom)); - if (!checkAccess(cx, RootedObject(cx, i.callee()), callerid, JSACC_READ, &v)) + Rooted obj(cx, i.callee()); + if (!checkAccess(cx, obj, callerid, JSACC_READ, &v)) break; } diff --git a/js/src/jsfriendapi.cpp b/js/src/jsfriendapi.cpp index 4c59d85dcf23..52c57ea51b1e 100644 --- a/js/src/jsfriendapi.cpp +++ b/js/src/jsfriendapi.cpp @@ -231,8 +231,8 @@ JS_DefineFunctionsWithHelp(JSContext *cx, JSObject *obj_, const JSFunctionSpecWi return false; RootedFunction fun(cx); - fun = js_DefineFunction(cx, obj, RootedId(cx, AtomToId(atom)), - fs->call, fs->nargs, fs->flags); + Rooted id(cx, AtomToId(atom)); + fun = js_DefineFunction(cx, obj, id, fs->call, fs->nargs, fs->flags); if (!fun) return false; @@ -338,9 +338,8 @@ js::DefineFunctionWithReserved(JSContext *cx, JSObject *obj_, const char *name, JSAtom *atom = js_Atomize(cx, name, strlen(name)); if (!atom) return NULL; - return js_DefineFunction(cx, obj, RootedId(cx, AtomToId(atom)), - call, nargs, attrs, - JSFunction::ExtendedFinalizeKind); + Rooted id(cx, AtomToId(atom)); + return js_DefineFunction(cx, obj, id, call, nargs, attrs, JSFunction::ExtendedFinalizeKind); } JS_FRIEND_API(JSFunction *) diff --git a/js/src/jsfun.cpp b/js/src/jsfun.cpp index 339b538598f8..ea99641e0125 100644 --- a/js/src/jsfun.cpp +++ b/js/src/jsfun.cpp @@ -426,7 +426,8 @@ js::CloneInterpretedFunction(JSContext *cx, JSFunction *srcFun) if (!clone->clearType(cx)) return NULL; - JSScript *clonedScript = CloneScript(cx, RootedScript(cx, srcFun->script())); + Rooted srcScript(cx, srcFun->script()); + JSScript *clonedScript = CloneScript(cx, srcScript); if (!clonedScript) return NULL; diff --git a/js/src/jsfuninlines.h b/js/src/jsfuninlines.h index ae875cb54566..1ac2e8102703 100644 --- a/js/src/jsfuninlines.h +++ b/js/src/jsfuninlines.h @@ -206,7 +206,8 @@ CloneFunctionObjectIfNotSingleton(JSContext *cx, HandleFunction fun, HandleObjec * with its type in existence. */ if (fun->hasSingletonType()) { - if (!JSObject::setParent(cx, fun, RootedObject(cx, SkipScopeParent(parent)))) + Rooted obj(cx, SkipScopeParent(parent)); + if (!JSObject::setParent(cx, fun, obj)) return NULL; fun->setEnvironment(parent); return fun; @@ -230,10 +231,9 @@ CloneFunctionObject(JSContext *cx, HandleFunction fun) if (fun->hasSingletonType()) return fun; - return js_CloneFunctionObject(cx, fun, - RootedObject(cx, fun->environment()), - RootedObject(cx, fun->getProto()), - JSFunction::ExtendedFinalizeKind); + Rooted env(cx, fun->environment()); + Rooted proto(cx, fun->getProto()); + return js_CloneFunctionObject(cx, fun, env, proto, JSFunction::ExtendedFinalizeKind); } } /* namespace js */ diff --git a/js/src/jsinfer.cpp b/js/src/jsinfer.cpp index dc1cd4f0fe8a..fc441fc4bf45 100644 --- a/js/src/jsinfer.cpp +++ b/js/src/jsinfer.cpp @@ -1682,8 +1682,8 @@ TypeSet::isOwnProperty(JSContext *cx, TypeObject *object, bool configurable) */ if (object->flags & OBJECT_FLAG_NEW_SCRIPT_REGENERATE) { if (object->newScript) { - CheckNewScriptProperties(cx, RootedTypeObject(cx, object), - object->newScript->fun); + Rooted typeObj(cx, object); + CheckNewScriptProperties(cx, typeObj, object->newScript->fun); } else { JS_ASSERT(object->flags & OBJECT_FLAG_NEW_SCRIPT_CLEARED); object->flags &= ~OBJECT_FLAG_NEW_SCRIPT_REGENERATE; diff --git a/js/src/jsinterp.cpp b/js/src/jsinterp.cpp index 0c9a484b504d..e8c632feced3 100644 --- a/js/src/jsinterp.cpp +++ b/js/src/jsinterp.cpp @@ -537,7 +537,8 @@ js::LooselyEqual(JSContext *cx, const Value &lval, const Value &rval, bool *resu if (JSEqualityOp eq = l->getClass()->ext.equality) { JSBool res; - if (!eq(cx, RootedObject(cx, l), &rval, &res)) + Rooted lobj(cx, l); + if (!eq(cx, lobj, &rval, &res)) return false; *result = !!res; return true; @@ -983,7 +984,8 @@ IteratorMore(JSContext *cx, JSObject *iterobj, bool *cond, Value *rval) return true; } } - if (!js_IteratorMore(cx, RootedObject(cx, iterobj), rval)) + Rooted iobj(cx, iterobj); + if (!js_IteratorMore(cx, iobj, rval)) return false; *cond = rval->isTrue(); return true; diff --git a/js/src/jsinterpinlines.h b/js/src/jsinterpinlines.h index d0734adb1aaf..dfff7ae9762e 100644 --- a/js/src/jsinterpinlines.h +++ b/js/src/jsinterpinlines.h @@ -125,7 +125,8 @@ ValuePropertyBearer(JSContext *cx, StackFrame *fp, const Value &v, int spindex) } inline bool -NativeGet(JSContext *cx, JSObject *obj, JSObject *pobj, const Shape *shape, unsigned getHow, Value *vp) +NativeGet(JSContext *cx, Handle obj, Handle pobj, const Shape *shape, + unsigned getHow, Value *vp) { if (shape->isDataDescriptor() && shape->hasDefaultGetter()) { /* Fast path for Object instance properties. */ @@ -211,9 +212,9 @@ GetPropertyOperation(JSContext *cx, jsbytecode *pc, const Value &lval, Value *vp return false; PropertyCacheEntry *entry; - JSObject *obj2; + Rooted obj2(cx); PropertyName *name; - JS_PROPERTY_CACHE(cx).test(cx, pc, obj.reference(), obj2, entry, name); + JS_PROPERTY_CACHE(cx).test(cx, pc, obj.reference(), obj2.reference(), entry, name); if (!name) { AssertValidPropertyCacheHit(cx, obj, obj2, entry); if (!NativeGet(cx, obj, obj2, entry->prop, JSGET_CACHE_RESULT, vp)) @@ -336,9 +337,9 @@ NameOperation(JSContext *cx, jsbytecode *pc, Value *vp) obj = &obj->global(); PropertyCacheEntry *entry; - JSObject *obj2; + Rooted obj2(cx); RootedPropertyName name(cx); - JS_PROPERTY_CACHE(cx).test(cx, pc, obj.reference(), obj2, entry, name.reference()); + JS_PROPERTY_CACHE(cx).test(cx, pc, obj.reference(), obj2.reference(), entry, name.reference()); if (!name) { AssertValidPropertyCacheHit(cx, obj, obj2, entry); if (!NativeGet(cx, obj, obj2, entry->prop, 0, vp)) @@ -347,7 +348,7 @@ NameOperation(JSContext *cx, jsbytecode *pc, Value *vp) } JSProperty *prop; - if (!FindPropertyHelper(cx, name, true, obj, obj.address(), &obj2, &prop)) + if (!FindPropertyHelper(cx, name, true, obj, obj.address(), obj2.address(), &prop)) return false; if (!prop) { /* Kludge to allow (typeof foo == "undefined") tests. */ @@ -364,11 +365,12 @@ NameOperation(JSContext *cx, jsbytecode *pc, Value *vp) /* Take the slow path if prop was not found in a native object. */ if (!obj->isNative() || !obj2->isNative()) { - if (!obj->getGeneric(cx, RootedId(cx, NameToId(name)), vp)) + Rooted id(cx, NameToId(name)); + if (!obj->getGeneric(cx, id, vp)) return false; } else { Shape *shape = (Shape *)prop; - JSObject *normalized = obj; + Rooted normalized(cx, obj); if (normalized->getClass() == &WithClass && !shape->hasDefaultGetter()) normalized = &normalized->asWith().object(); if (!NativeGet(cx, normalized, obj2, shape, 0, vp)) diff --git a/js/src/jsobj.cpp b/js/src/jsobj.cpp index 9eb91bd761a9..386c5f2884eb 100644 --- a/js/src/jsobj.cpp +++ b/js/src/jsobj.cpp @@ -84,19 +84,21 @@ Class js::ObjectClass = { }; JS_FRIEND_API(JSObject *) -JS_ObjectToInnerObject(JSContext *cx, JSObject *obj) +JS_ObjectToInnerObject(JSContext *cx, JSObject *obj_) { - if (!obj) { + if (!obj_) { JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_INACTIVE); return NULL; } - return GetInnerObject(cx, RootedObject(cx, obj)); + Rooted obj(cx, obj_); + return GetInnerObject(cx, obj); } JS_FRIEND_API(JSObject *) -JS_ObjectToOuterObject(JSContext *cx, JSObject *obj) +JS_ObjectToOuterObject(JSContext *cx, JSObject *obj_) { - return GetOuterObject(cx, RootedObject(cx, obj)); + Rooted obj(cx, obj_); + return GetOuterObject(cx, obj); } #if JS_HAS_OBJ_PROTO_PROP @@ -201,7 +203,8 @@ MarkSharpObjects(JSContext *cx, HandleObject obj, JSIdArray **idap, JSSharpInfo if (hasSetter) { /* Mark the getter, then set val to setter. */ if (hasGetter && value.isObject()) { - ok = MarkSharpObjects(cx, RootedObject(cx, &value.toObject()), NULL, NULL); + Rooted vobj(cx, &value.toObject()); + ok = MarkSharpObjects(cx, vobj, NULL, NULL); if (!ok) break; } @@ -211,11 +214,12 @@ MarkSharpObjects(JSContext *cx, HandleObject obj, JSIdArray **idap, JSSharpInfo if (!ok) break; } - if (value.isObject() && - !MarkSharpObjects(cx, RootedObject(cx, &value.toObject()), NULL, NULL)) - { - ok = false; - break; + if (value.isObject()) { + Rooted vobj(cx, &value.toObject()); + if (!MarkSharpObjects(cx, vobj, NULL, NULL)) { + ok = false; + break; + } } } if (!ok || !idap) @@ -702,8 +706,10 @@ AssertInnerizedScopeChain(JSContext *cx, JSObject &scopeobj) { #ifdef DEBUG for (JSObject *o = &scopeobj; o; o = o->enclosingScope()) { - if (JSObjectOp op = o->getClass()->ext.innerObject) - JS_ASSERT(op(cx, RootedObject(cx, o)) == o); + if (JSObjectOp op = o->getClass()->ext.innerObject) { + Rooted obj(cx, o); + JS_ASSERT(op(cx, obj) == o); + } } #endif } @@ -1084,9 +1090,11 @@ JSBool eval(JSContext *cx, unsigned argc, Value *vp) { CallArgs args = CallArgsFromVp(argc, vp); - return WarnOnTooManyArgs(cx, args) && - EvalKernel(cx, args, INDIRECT_EVAL, NULL, - RootedObject(cx, &args.callee().global())); + if (!WarnOnTooManyArgs(cx, args)) + return false; + + Rooted global(cx, &args.callee().global()); + return EvalKernel(cx, args, INDIRECT_EVAL, NULL, global); } bool @@ -1286,7 +1294,8 @@ js_HasOwnProperty(JSContext *cx, LookupGenericOp lookup, HandleObject obj, Handl JSObject *outer = NULL; if (JSObjectOp op = (*objp)->getClass()->ext.outerObject) { - outer = op(cx, RootedObject(cx, *objp)); + Rooted inner(cx, *objp); + outer = op(cx, inner); if (!outer) return false; } @@ -1970,9 +1979,9 @@ DefinePropertyOnObject(JSContext *cx, HandleObject obj, HandleId id, const PropD if (desc.isGenericDescriptor() || desc.isDataDescriptor()) { JS_ASSERT(!obj->getOps()->defineProperty); Value v = desc.hasValue() ? desc.value() : UndefinedValue(); - return baseops::DefineProperty(cx, obj, id, &v, - JS_PropertyStub, JS_StrictPropertyStub, - desc.attributes()); + return baseops::DefineGeneric(cx, obj, id, &v, + JS_PropertyStub, JS_StrictPropertyStub, + desc.attributes()); } JS_ASSERT(desc.isAccessorDescriptor()); @@ -1987,8 +1996,8 @@ DefinePropertyOnObject(JSContext *cx, HandleObject obj, HandleId id, const PropD return JS_FALSE; Value tmp = UndefinedValue(); - return baseops::DefineProperty(cx, obj, id, &tmp, - desc.getter(), desc.setter(), desc.attributes()); + return baseops::DefineGeneric(cx, obj, id, &tmp, + desc.getter(), desc.setter(), desc.attributes()); } /* 8.12.9 steps 5-6 (note 5 is merely a special case of 6). */ @@ -2238,7 +2247,7 @@ DefinePropertyOnObject(JSContext *cx, HandleObject obj, HandleId id, const PropD return false; } - return baseops::DefineProperty(cx, obj, id, &v, getter, setter, attrs); + return baseops::DefineGeneric(cx, obj, id, &v, getter, setter, attrs); } static JSBool @@ -2382,7 +2391,7 @@ DefineProperties(JSContext *cx, HandleObject obj, JSObject *props) bool dummy; for (size_t i = 0, len = ids.length(); i < len; i++) { - if (!DefineProperty(cx, obj, RootedId(cx, ids[i]), descs[i], true, &dummy)) + if (!DefineProperty(cx, obj, Handle::fromMarkedLocation(&ids[i]), descs[i], true, &dummy)) return false; } @@ -3173,9 +3182,9 @@ JSObject::deleteByValue(JSContext *cx, const Value &property, Value *rval, bool return deleteElement(cx, index, rval, strict); Value propval = property; - SpecialId sid; - if (ValueIsSpecial(this, &propval, &sid, cx)) - return deleteSpecial(cx, Rooted(cx, sid), rval, strict); + Rooted sid(cx); + if (ValueIsSpecial(this, &propval, sid.address(), cx)) + return deleteSpecial(cx, sid, rval, strict); RootedObject self(cx, this); @@ -3186,7 +3195,8 @@ JSObject::deleteByValue(JSContext *cx, const Value &property, Value *rval, bool if (name->isIndex(&index)) return self->deleteElement(cx, index, rval, false); - return self->deleteProperty(cx, RootedPropertyName(cx, name->asPropertyName()), rval, false); + Rooted propname(cx, name->asPropertyName()); + return self->deleteProperty(cx, propname, rval, false); } JS_FRIEND_API(bool) @@ -3217,7 +3227,8 @@ JS_CopyPropertiesFrom(JSContext *cx, JSObject *target, JSObject *obj) Value v = shape->hasSlot() ? obj->getSlot(shape->slot()) : UndefinedValue(); if (!cx->compartment->wrap(cx, &v)) return false; - if (!target->defineGeneric(cx, RootedId(cx, shape->propid()), v, getter, setter, attrs)) + Rooted id(cx, shape->propid()); + if (!target->defineGeneric(cx, id, v, getter, setter, attrs)) return false; } return true; @@ -3956,15 +3967,16 @@ JSObject::growSlots(JSContext *cx, uint32_t oldCount, uint32_t newCount) gc::AllocKind kind = type()->newScript->allocKind; unsigned newScriptSlots = gc::GetGCKindSlots(kind); if (newScriptSlots == numFixedSlots() && gc::TryIncrementAllocKind(&kind)) { - JSObject *obj = NewReshapedObject(cx, RootedTypeObject(cx, type()), + Rooted typeObj(cx, type()); + JSObject *obj = NewReshapedObject(cx, typeObj, getParent(), kind, - type()->newScript->shape); + typeObj->newScript->shape); if (!obj) return false; - type()->newScript->allocKind = kind; - type()->newScript->shape = obj->lastProperty(); - type()->markStateChange(cx); + typeObj->newScript->allocKind = kind; + typeObj->newScript->shape = obj->lastProperty(); + typeObj->markStateChange(cx); } } @@ -4476,7 +4488,7 @@ js_AddNativeProperty(JSContext *cx, HandleObject obj, jsid id_, } JSBool -baseops::DefineProperty(JSContext *cx, HandleObject obj, HandleId id, const Value *value, +baseops::DefineGeneric(JSContext *cx, HandleObject obj, HandleId id, const Value *value, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { return !!DefineNativeProperty(cx, obj, id, *value, getter, setter, attrs, 0, 0); @@ -4486,14 +4498,14 @@ JSBool baseops::DefineElement(JSContext *cx, HandleObject obj, uint32_t index, const Value *value, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { + Rooted id(cx); if (index <= JSID_INT_MAX) { - return !!DefineNativeProperty(cx, obj, RootedId(cx, INT_TO_JSID(index)), *value, - getter, setter, attrs, 0, 0); + id = INT_TO_JSID(index); + return !!DefineNativeProperty(cx, obj, id, *value, getter, setter, attrs, 0, 0); } AutoRooterGetterSetter gsRoot(cx, attrs, &getter, &setter); - RootedId id(cx); if (!IndexToId(cx, index, id.address())) return false; @@ -4512,7 +4524,8 @@ CallAddPropertyHook(JSContext *cx, Class *clasp, HandleObject obj, HandleShape s if (clasp->addProperty != JS_PropertyStub) { Value nominal = *vp; - if (!CallJSPropertyOp(cx, clasp->addProperty, obj, RootedId(cx, shape->propid()), vp)) + Rooted id(cx, shape->propid()); + if (!CallJSPropertyOp(cx, clasp->addProperty, obj, id, vp)) return false; if (*vp != nominal) { if (shape->hasSlot()) @@ -4965,7 +4978,7 @@ js::FindIdentifierBase(JSContext *cx, HandleObject scopeChain, HandlePropertyNam } static JS_ALWAYS_INLINE JSBool -js_NativeGetInline(JSContext *cx, JSObject *receiver, JSObject *obj, JSObject *pobj, +js_NativeGetInline(JSContext *cx, Handle receiver, JSObject *obj, JSObject *pobj, const Shape *shape, unsigned getHow, Value *vp) { JS_ASSERT(pobj->isNative()); @@ -4992,7 +5005,7 @@ js_NativeGetInline(JSContext *cx, JSObject *receiver, JSObject *obj, JSObject *p Rooted shapeRoot(cx, shape); RootedObject pobjRoot(cx, pobj); - if (!shape->get(cx, RootedObject(cx, receiver), obj, pobj, vp)) + if (!shape->get(cx, receiver, obj, pobj, vp)) return false; /* Update slotful shapes according to the value produced by the getter. */ @@ -5003,14 +5016,15 @@ js_NativeGetInline(JSContext *cx, JSObject *receiver, JSObject *obj, JSObject *p } JSBool -js_NativeGet(JSContext *cx, JSObject *obj, JSObject *pobj, const Shape *shape, unsigned getHow, - Value *vp) +js_NativeGet(JSContext *cx, Handle obj, Handle pobj, const Shape *shape, + unsigned getHow, Value *vp) { return js_NativeGetInline(cx, obj, obj, pobj, shape, getHow, vp); } JSBool -js_NativeSet(JSContext *cx, JSObject *obj, const Shape *shape, bool added, bool strict, Value *vp) +js_NativeSet(JSContext *cx, Handle obj, const Shape *shape, bool added, bool strict, + Value *vp) { AddTypePropertyId(cx, obj, shape->propid(), *vp); @@ -5038,7 +5052,7 @@ js_NativeSet(JSContext *cx, JSObject *obj, const Shape *shape, bool added, bool Rooted shapeRoot(cx, shape); int32_t sample = cx->runtime->propertyRemovals; - if (!shapeRoot->set(cx, RootedObject(cx, obj), strict, vp)) + if (!shapeRoot->set(cx, obj, strict, vp)) return false; /* @@ -5256,8 +5270,9 @@ bool JSObject::callMethod(JSContext *cx, HandleId id, unsigned argc, Value *argv, Value *vp) { Value fval; - return GetMethod(cx, RootedObject(cx, this), id, 0, &fval) && - Invoke(cx, ObjectValue(*this), fval, argc, argv, vp); + Rooted obj(cx, this); + return GetMethod(cx, obj, id, 0, &fval) && + Invoke(cx, ObjectValue(*obj), fval, argc, argv, vp); } JSBool @@ -5568,7 +5583,8 @@ baseops::DeleteGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *rval JSBool baseops::DeleteProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *rval, JSBool strict) { - return baseops::DeleteGeneric(cx, obj, RootedId(cx, NameToId(name)), rval, strict); + Rooted id(cx, NameToId(name)); + return baseops::DeleteGeneric(cx, obj, id, rval, strict); } JSBool @@ -5583,7 +5599,8 @@ baseops::DeleteElement(JSContext *cx, HandleObject obj, uint32_t index, Value *r JSBool baseops::DeleteSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *rval, JSBool strict) { - return baseops::DeleteGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), rval, strict); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return baseops::DeleteGeneric(cx, obj, id, rval, strict); } namespace js { @@ -5610,9 +5627,9 @@ HasDataProperty(JSContext *cx, HandleObject obj, jsid id, Value *vp) * or steps 3-4. */ static bool -MaybeCallMethod(JSContext *cx, HandleObject obj, jsid id, Value *vp) +MaybeCallMethod(JSContext *cx, HandleObject obj, Handle id, Value *vp) { - if (!GetMethod(cx, obj, RootedId(cx, id), 0, vp)) + if (!GetMethod(cx, obj, id, 0, vp)) return false; if (!js_IsCallable(*vp)) { *vp = ObjectValue(*obj); @@ -5629,49 +5646,58 @@ DefaultValue(JSContext *cx, HandleObject obj, JSType hint, Value *vp) JS_ASSERT(!obj->isXML()); #endif + Rooted id(cx); + Class *clasp = obj->getClass(); if (hint == JSTYPE_STRING) { + id = NameToId(cx->runtime->atomState.toStringAtom); + /* Optimize (new String(...)).toString(). */ - if (clasp == &StringClass && - ClassMethodIsNative(cx, obj, - &StringClass, - RootedId(cx, NameToId(cx->runtime->atomState.toStringAtom)), - js_str_toString)) { - *vp = StringValue(obj->asString().unbox()); - return true; + if (clasp == &StringClass) { + if (ClassMethodIsNative(cx, obj, &StringClass, id, js_str_toString)) { + *vp = StringValue(obj->asString().unbox()); + return true; + } } - if (!MaybeCallMethod(cx, obj, NameToId(cx->runtime->atomState.toStringAtom), vp)) + if (!MaybeCallMethod(cx, obj, id, vp)) return false; if (vp->isPrimitive()) return true; - if (!MaybeCallMethod(cx, obj, NameToId(cx->runtime->atomState.valueOfAtom), vp)) + id = NameToId(cx->runtime->atomState.valueOfAtom); + if (!MaybeCallMethod(cx, obj, id, vp)) return false; if (vp->isPrimitive()) return true; } else { - /* Optimize (new String(...)).valueOf(). */ - if ((clasp == &StringClass && - ClassMethodIsNative(cx, obj, &StringClass, - RootedId(cx, NameToId(cx->runtime->atomState.valueOfAtom)), - js_str_toString)) || - (clasp == &NumberClass && - ClassMethodIsNative(cx, obj, &NumberClass, - RootedId(cx, NameToId(cx->runtime->atomState.valueOfAtom)), - js_num_valueOf))) { - *vp = obj->isString() - ? StringValue(obj->asString().unbox()) - : NumberValue(obj->asNumber().unbox()); - return true; + + /* Optimize new String(...).valueOf(). */ + if (clasp == &StringClass) { + id = NameToId(cx->runtime->atomState.valueOfAtom); + if (ClassMethodIsNative(cx, obj, &StringClass, id, js_str_toString)) { + *vp = StringValue(obj->asString().unbox()); + return true; + } } - if (!MaybeCallMethod(cx, obj, NameToId(cx->runtime->atomState.valueOfAtom), vp)) + /* Optimize new Number(...).valueOf(). */ + if (clasp == &NumberClass) { + id = NameToId(cx->runtime->atomState.valueOfAtom); + if (ClassMethodIsNative(cx, obj, &NumberClass, id, js_num_valueOf)) { + *vp = NumberValue(obj->asNumber().unbox()); + return true; + } + } + + id = NameToId(cx->runtime->atomState.valueOfAtom); + if (!MaybeCallMethod(cx, obj, id, vp)) return false; if (vp->isPrimitive()) return true; - if (!MaybeCallMethod(cx, obj, NameToId(cx->runtime->atomState.toStringAtom), vp)) + id = NameToId(cx->runtime->atomState.toStringAtom); + if (!MaybeCallMethod(cx, obj, id, vp)) return false; if (vp->isPrimitive()) return true; @@ -5868,8 +5894,10 @@ js_GetClassPrototype(JSContext *cx, JSObject *scopeobj, JSProtoKey protoKey, JSObject * PrimitiveToObject(JSContext *cx, const Value &v) { - if (v.isString()) - return StringObject::create(cx, RootedString(cx, v.toString())); + if (v.isString()) { + Rooted str(cx, v.toString()); + return StringObject::create(cx, str); + } if (v.isNumber()) return NumberObject::create(cx, v.toNumber()); diff --git a/js/src/jsobj.h b/js/src/jsobj.h index 734ce0373213..529cdb1ece40 100644 --- a/js/src/jsobj.h +++ b/js/src/jsobj.h @@ -105,7 +105,8 @@ inline bool LookupProperty(JSContext *cx, HandleObject obj, PropertyName *name, JSObject **objp, JSProperty **propp) { - return LookupProperty(cx, obj, RootedId(cx, NameToId(name)), objp, propp); + Rooted id(cx, NameToId(name)); + return LookupProperty(cx, obj, id, objp, propp); } extern JS_FRIEND_API(JSBool) @@ -113,9 +114,17 @@ LookupElement(JSContext *cx, HandleObject obj, uint32_t index, JSObject **objp, JSProperty **propp); extern JSBool -DefineProperty(JSContext *cx, HandleObject obj, HandleId id, const js::Value *value, +DefineGeneric(JSContext *cx, HandleObject obj, HandleId id, const js::Value *value, JSPropertyOp getter, JSStrictPropertyOp setter, unsigned attrs); +inline JSBool +DefineProperty(JSContext *cx, HandleObject obj, PropertyName *name, const js::Value *value, + JSPropertyOp getter, JSStrictPropertyOp setter, unsigned attrs) +{ + Rooted id(cx, NameToId(name)); + return DefineGeneric(cx, obj, id, value, getter, setter, attrs); +} + extern JSBool DefineElement(JSContext *cx, HandleObject obj, uint32_t index, const js::Value *value, JSPropertyOp getter, JSStrictPropertyOp setter, unsigned attrs); @@ -149,7 +158,8 @@ inline bool SetPropertyHelper(JSContext *cx, HandleObject obj, PropertyName *name, unsigned defineHow, Value *vp, JSBool strict) { - return SetPropertyHelper(cx, obj, RootedId(cx, NameToId(name)), defineHow, vp, strict); + Rooted id(cx, NameToId(name)); + return SetPropertyHelper(cx, obj, id, defineHow, vp, strict); } extern JSBool @@ -1141,8 +1151,8 @@ DefineNativeProperty(JSContext *cx, HandleObject obj, PropertyName *name, const PropertyOp getter, StrictPropertyOp setter, unsigned attrs, unsigned flags, int shortid, unsigned defineHow = 0) { - return DefineNativeProperty(cx, obj, RootedId(cx, NameToId(name)), - value, getter, setter, attrs, flags, + Rooted id(cx, NameToId(name)); + return DefineNativeProperty(cx, obj, id, value, getter, setter, attrs, flags, shortid, defineHow); } @@ -1157,7 +1167,8 @@ inline bool LookupPropertyWithFlags(JSContext *cx, HandleObject obj, PropertyName *name, unsigned flags, JSObject **objp, JSProperty **propp) { - return LookupPropertyWithFlags(cx, obj, RootedId(cx, NameToId(name)), flags, objp, propp); + Rooted id(cx, NameToId(name)); + return LookupPropertyWithFlags(cx, obj, id, flags, objp, propp); } /* @@ -1221,11 +1232,11 @@ const unsigned JSGET_CACHE_RESULT = 1; // from a caching interpreter opcode * scope containing shape unlocked. */ extern JSBool -js_NativeGet(JSContext *cx, JSObject *obj, JSObject *pobj, const js::Shape *shape, unsigned getHow, - js::Value *vp); +js_NativeGet(JSContext *cx, js::Handle obj, js::Handle pobj, + const js::Shape *shape, unsigned getHow, js::Value *vp); extern JSBool -js_NativeSet(JSContext *cx, JSObject *obj, const js::Shape *shape, bool added, +js_NativeSet(JSContext *cx, js::Handle obj, const js::Shape *shape, bool added, bool strict, js::Value *vp); namespace js { @@ -1254,7 +1265,8 @@ GetMethod(JSContext *cx, HandleObject obj, HandleId id, unsigned getHow, Value * inline bool GetMethod(JSContext *cx, HandleObject obj, PropertyName *name, unsigned getHow, Value *vp) { - return GetMethod(cx, obj, RootedId(cx, NameToId(name)), getHow, vp); + Rooted id(cx, NameToId(name)); + return GetMethod(cx, obj, id, getHow, vp); } /* diff --git a/js/src/jsobjinlines.h b/js/src/jsobjinlines.h index 80cdf6b3faf8..566b4f164e45 100644 --- a/js/src/jsobjinlines.h +++ b/js/src/jsobjinlines.h @@ -54,7 +54,8 @@ inline bool JSObject::enumerate(JSContext *cx, JSIterateOp iterop, js::Value *statep, jsid *idp) { JSNewEnumerateOp op = getOps()->enumerate; - return (op ? op : JS_EnumerateState)(cx, js::RootedObject(cx, this), iterop, statep, idp); + js::Rooted obj(cx, this); + return (op ? op : JS_EnumerateState)(cx, obj, iterop, statep, idp); } inline bool @@ -76,14 +77,16 @@ inline JSType JSObject::typeOf(JSContext *cx) { js::TypeOfOp op = getOps()->typeOf; - return (op ? op : js::baseops::TypeOf)(cx, js::RootedObject(cx, this)); + js::Rooted obj(cx, this); + return (op ? op : js::baseops::TypeOf)(cx, obj); } inline JSObject * JSObject::thisObject(JSContext *cx) { JSObjectOp op = getOps()->thisObject; - return op ? op(cx, js::RootedObject(cx, this)) : this; + js::Rooted obj(cx, this); + return op ? op(cx, obj) : this; } inline JSBool @@ -91,15 +94,15 @@ JSObject::setGeneric(JSContext *cx, js::HandleId id, js::Value *vp, JSBool stric { if (getOps()->setGeneric) return nonNativeSetProperty(cx, id, vp, strict); - return js::baseops::SetPropertyHelper(cx, - js::RootedObject(cx, this), - id, 0, vp, strict); + js::Rooted obj(cx, this); + return js::baseops::SetPropertyHelper(cx, obj, id, 0, vp, strict); } inline JSBool JSObject::setProperty(JSContext *cx, js::PropertyName *name, js::Value *vp, JSBool strict) { - return setGeneric(cx, js::RootedId(cx, js::NameToId(name)), vp, strict); + js::Rooted id(cx, js::NameToId(name)); + return setGeneric(cx, id, vp, strict); } inline JSBool @@ -107,13 +110,15 @@ JSObject::setElement(JSContext *cx, uint32_t index, js::Value *vp, JSBool strict { if (getOps()->setElement) return nonNativeSetElement(cx, index, vp, strict); - return js::baseops::SetElementHelper(cx, js::RootedObject(cx, this), index, 0, vp, strict); + js::Rooted obj(cx, this); + return js::baseops::SetElementHelper(cx, obj, index, 0, vp, strict); } inline JSBool JSObject::setSpecial(JSContext *cx, js::SpecialId sid, js::Value *vp, JSBool strict) { - return setGeneric(cx, js::RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); + js::Rooted id(cx, SPECIALID_TO_JSID(sid)); + return setGeneric(cx, id, vp, strict); } inline JSBool @@ -121,26 +126,30 @@ JSObject::setGenericAttributes(JSContext *cx, js::HandleId id, unsigned *attrsp) { js::types::MarkTypePropertyConfigured(cx, this, id); js::GenericAttributesOp op = getOps()->setGenericAttributes; - return (op ? op : js::baseops::SetAttributes)(cx, js::RootedObject(cx, this), id, attrsp); + js::Rooted obj(cx, this); + return (op ? op : js::baseops::SetAttributes)(cx, obj, id, attrsp); } inline JSBool JSObject::setPropertyAttributes(JSContext *cx, js::PropertyName *name, unsigned *attrsp) { - return setGenericAttributes(cx, js::RootedId(cx, js::NameToId(name)), attrsp); + js::Rooted id(cx, js::NameToId(name)); + return setGenericAttributes(cx, id, attrsp); } inline JSBool JSObject::setElementAttributes(JSContext *cx, uint32_t index, unsigned *attrsp) { js::ElementAttributesOp op = getOps()->setElementAttributes; - return (op ? op : js::baseops::SetElementAttributes)(cx, js::RootedObject(cx, this), index, attrsp); + js::Rooted obj(cx, this); + return (op ? op : js::baseops::SetElementAttributes)(cx, obj, index, attrsp); } inline JSBool JSObject::setSpecialAttributes(JSContext *cx, js::SpecialId sid, unsigned *attrsp) { - return setGenericAttributes(cx, js::RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); + js::Rooted id(cx, SPECIALID_TO_JSID(sid)); + return setGenericAttributes(cx, id, attrsp); } inline bool @@ -168,19 +177,22 @@ JSObject::getGeneric(JSContext *cx, js::HandleObject receiver, js::HandleId id, inline JSBool JSObject::getProperty(JSContext *cx, js::HandleObject receiver, js::PropertyName *name, js::Value *vp) { - return getGeneric(cx, receiver, js::RootedId(cx, js::NameToId(name)), vp); + js::Rooted id(cx, js::NameToId(name)); + return getGeneric(cx, receiver, id, vp); } inline JSBool JSObject::getGeneric(JSContext *cx, js::HandleId id, js::Value *vp) { - return getGeneric(cx, js::RootedObject(cx, this), id, vp); + js::Rooted obj(cx, this); + return getGeneric(cx, obj, id, vp); } inline JSBool JSObject::getProperty(JSContext *cx, js::PropertyName *name, js::Value *vp) { - return getGeneric(cx, js::RootedId(cx, js::NameToId(name)), vp); + js::Rooted id(cx, js::NameToId(name)); + return getGeneric(cx, id, vp); } inline bool @@ -190,7 +202,8 @@ JSObject::deleteProperty(JSContext *cx, js::HandlePropertyName name, js::Value * js::types::AddTypePropertyId(cx, this, id, js::types::Type::UndefinedType()); js::types::MarkTypePropertyConfigured(cx, this, id); js::DeletePropertyOp op = getOps()->deleteProperty; - return (op ? op : js::baseops::DeleteProperty)(cx, js::RootedObject(cx, this), name, rval, strict); + js::Rooted obj(cx, this); + return (op ? op : js::baseops::DeleteProperty)(cx, obj, name, rval, strict); } inline bool @@ -214,7 +227,8 @@ JSObject::deleteSpecial(JSContext *cx, js::HandleSpecialId sid, js::Value *rval, js::types::AddTypePropertyId(cx, this, id, js::types::Type::UndefinedType()); js::types::MarkTypePropertyConfigured(cx, this, id); js::DeleteSpecialOp op = getOps()->deleteSpecial; - return (op ? op : js::baseops::DeleteSpecial)(cx, js::RootedObject(cx, this), sid, rval, strict); + js::Rooted obj(cx, this); + return (op ? op : js::baseops::DeleteSpecial)(cx, obj, sid, rval, strict); } inline void @@ -1026,7 +1040,8 @@ JSObject::lookupGeneric(JSContext *cx, js::HandleId id, JSObject **objp, JSPrope inline JSBool JSObject::lookupProperty(JSContext *cx, js::PropertyName *name, JSObject **objp, JSProperty **propp) { - return lookupGeneric(cx, js::RootedId(cx, js::NameToId(name)), objp, propp); + js::Rooted id(cx, js::NameToId(name)); + return lookupGeneric(cx, id, objp, propp); } inline JSBool @@ -1039,7 +1054,7 @@ JSObject::defineGeneric(JSContext *cx, js::HandleId id, const js::Value &value, JS_ASSERT(!(attrs & JSPROP_NATIVE_ACCESSORS)); js::DefineGenericOp op = getOps()->defineGeneric; - return (op ? op : js::baseops::DefineProperty)(cx, self, id, &value, getter, setter, attrs); + return (op ? op : js::baseops::DefineGeneric)(cx, self, id, &value, getter, setter, attrs); } inline JSBool @@ -1048,7 +1063,8 @@ JSObject::defineProperty(JSContext *cx, js::PropertyName *name, const js::Value JSStrictPropertyOp setter /* = JS_StrictPropertyStub */, unsigned attrs /* = JSPROP_ENUMERATE */) { - return defineGeneric(cx, js::RootedId(cx, js::NameToId(name)), value, getter, setter, attrs); + js::Rooted id(cx, js::NameToId(name)); + return defineGeneric(cx, id, value, getter, setter, attrs); } inline JSBool @@ -1069,7 +1085,8 @@ JSObject::defineSpecial(JSContext *cx, js::SpecialId sid, const js::Value &value JSStrictPropertyOp setter /* = JS_StrictPropertyStub */, unsigned attrs /* = JSPROP_ENUMERATE */) { - return defineGeneric(cx, js::RootedId(cx, SPECIALID_TO_JSID(sid)), value, getter, setter, attrs); + js::Rooted id(cx, SPECIALID_TO_JSID(sid)); + return defineGeneric(cx, id, value, getter, setter, attrs); } inline JSBool @@ -1084,7 +1101,8 @@ JSObject::lookupElement(JSContext *cx, uint32_t index, JSObject **objp, JSProper inline JSBool JSObject::lookupSpecial(JSContext *cx, js::SpecialId sid, JSObject **objp, JSProperty **propp) { - return lookupGeneric(cx, js::RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); + js::Rooted id(cx, SPECIALID_TO_JSID(sid)); + return lookupGeneric(cx, id, objp, propp); } inline JSBool @@ -1105,7 +1123,8 @@ JSObject::getElement(JSContext *cx, js::HandleObject receiver, uint32_t index, j inline JSBool JSObject::getElement(JSContext *cx, uint32_t index, js::Value *vp) { - return getElement(cx, js::RootedObject(cx, this), index, vp); + js::Rooted obj(cx, this); + return getElement(cx, obj, index, vp); } inline JSBool @@ -1145,20 +1164,23 @@ JSObject::getElementIfPresent(JSContext *cx, js::HandleObject receiver, uint32_t inline JSBool JSObject::getSpecial(JSContext *cx, js::HandleObject receiver, js::SpecialId sid, js::Value *vp) { - return getGeneric(cx, receiver, js::RootedId(cx, SPECIALID_TO_JSID(sid)), vp); + js::Rooted id(cx, SPECIALID_TO_JSID(sid)); + return getGeneric(cx, receiver, id, vp); } inline JSBool JSObject::getGenericAttributes(JSContext *cx, js::HandleId id, unsigned *attrsp) { js::GenericAttributesOp op = getOps()->getGenericAttributes; - return (op ? op : js::baseops::GetAttributes)(cx, js::RootedObject(cx, this), id, attrsp); + js::Rooted obj(cx, this); + return (op ? op : js::baseops::GetAttributes)(cx, obj, id, attrsp); } inline JSBool JSObject::getPropertyAttributes(JSContext *cx, js::PropertyName *name, unsigned *attrsp) { - return getGenericAttributes(cx, js::RootedId(cx, js::NameToId(name)), attrsp); + js::Rooted id(cx, js::NameToId(name)); + return getGenericAttributes(cx, id, attrsp); } inline JSBool @@ -1173,7 +1195,8 @@ JSObject::getElementAttributes(JSContext *cx, uint32_t index, unsigned *attrsp) inline JSBool JSObject::getSpecialAttributes(JSContext *cx, js::SpecialId sid, unsigned *attrsp) { - return getGenericAttributes(cx, js::RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); + js::Rooted id(cx, SPECIALID_TO_JSID(sid)); + return getGenericAttributes(cx, id, attrsp); } inline bool diff --git a/js/src/json.cpp b/js/src/json.cpp index 6cc21bae2245..eefc51921a28 100644 --- a/js/src/json.cpp +++ b/js/src/json.cpp @@ -280,7 +280,8 @@ PreprocessValue(JSContext *cx, JSObject *holder, KeyType key, Value *vp, Stringi if (vp->isObject()) { Value toJSON; RootedId id(cx, NameToId(cx->runtime->atomState.toJSONAtom)); - if (!GetMethod(cx, RootedObject(cx, &vp->toObject()), id, 0, &toJSON)) + Rooted obj(cx, &vp->toObject()); + if (!GetMethod(cx, obj, id, 0, &toJSON)) return false; if (js_IsCallable(toJSON)) { @@ -855,7 +856,8 @@ Revive(JSContext *cx, const Value &reviver, Value *vp) if (!obj->defineProperty(cx, cx->runtime->atomState.emptyAtom, *vp)) return false; - return Walk(cx, obj, RootedId(cx, NameToId(cx->runtime->atomState.emptyAtom)), reviver, vp); + Rooted id(cx, NameToId(cx->runtime->atomState.emptyAtom)); + return Walk(cx, obj, id, reviver, vp); } namespace js { diff --git a/js/src/jsonparser.cpp b/js/src/jsonparser.cpp index 317ca2c4e16a..63f0ab959c14 100644 --- a/js/src/jsonparser.cpp +++ b/js/src/jsonparser.cpp @@ -549,7 +549,8 @@ JSONParser::parse(Value *vp) case FinishArrayElement: { Value v = valueStack.popCopy(); - if (!js_NewbornArrayPush(cx, RootedObject(cx, &valueStack.back().toObject()), v)) + Rooted obj(cx, &valueStack.back().toObject()); + if (!js_NewbornArrayPush(cx, obj, v)) return false; token = advanceAfterArrayElement(); if (token == Comma) { diff --git a/js/src/jsproxy.cpp b/js/src/jsproxy.cpp index 6f13d7d9388c..183d68e908cf 100644 --- a/js/src/jsproxy.cpp +++ b/js/src/jsproxy.cpp @@ -310,7 +310,8 @@ bool BaseProxyHandler::defaultValue(JSContext *cx, JSObject *proxy, JSType hint, Value *vp) { - return DefaultValue(cx, RootedObject(cx, proxy), hint, vp); + Rooted obj(cx, proxy); + return DefaultValue(cx, obj, hint, vp); } bool @@ -397,14 +398,14 @@ IndirectProxyHandler::getOwnPropertyDescriptor(JSContext *cx, JSObject *proxy, } bool -IndirectProxyHandler::defineProperty(JSContext *cx, JSObject *proxy, jsid id, +IndirectProxyHandler::defineProperty(JSContext *cx, JSObject *proxy, jsid id_, PropertyDescriptor *desc) { RootedObject obj(cx, GetProxyTargetObject(proxy)); - return CheckDefineProperty(cx, obj, RootedId(cx, id), RootedValue(cx, desc->value), - desc->getter, desc->setter, desc->attrs) && - JS_DefinePropertyById(cx, obj, id, desc->value, desc->getter, desc->setter, - desc->attrs); + Rooted id(cx, id_); + Rooted v(cx, desc->value); + return CheckDefineProperty(cx, obj, id, v, desc->getter, desc->setter, desc->attrs) && + JS_DefinePropertyById(cx, obj, id, v, desc->getter, desc->setter, desc->attrs); } bool @@ -523,25 +524,25 @@ IndirectProxyHandler::defaultValue(JSContext *cx, JSObject *proxy, JSType hint, bool IndirectProxyHandler::iteratorNext(JSContext *cx, JSObject *proxy, Value *vp) { - if (!js_IteratorMore(cx, RootedObject(cx, GetProxyTargetObject(proxy)), - vp)) + Rooted target(cx, GetProxyTargetObject(proxy)); + if (!js_IteratorMore(cx, target, vp)) return false; if (vp->toBoolean()) { *vp = cx->iterValue; - cx->iterValue.setUndefined(); - } else - vp->setMagic(JS_NO_ITER_VALUE); + cx->iterValue = UndefinedValue(); + } else { + *vp = MagicValue(JS_NO_ITER_VALUE); + } return true; } -DirectProxyHandler::DirectProxyHandler(void *family) : - IndirectProxyHandler(family) +DirectProxyHandler::DirectProxyHandler(void *family) + : IndirectProxyHandler(family) { } bool -DirectProxyHandler::has(JSContext *cx, JSObject *proxy, jsid id, - bool *bp) +DirectProxyHandler::has(JSContext *cx, JSObject *proxy, jsid id, bool *bp) { JSBool found; if (!JS_HasPropertyById(cx, GetProxyTargetObject(proxy), id, &found)) @@ -590,8 +591,8 @@ bool DirectProxyHandler::iterate(JSContext *cx, JSObject *proxy, unsigned flags, Value *vp) { - return GetIterator(cx, RootedObject(cx, GetProxyTargetObject(proxy)), - flags, vp); + Rooted target(cx, GetProxyTargetObject(proxy)); + return GetIterator(cx, target, flags, vp); } static bool @@ -599,7 +600,8 @@ GetTrap(JSContext *cx, JSObject *handler, PropertyName *name, Value *fvalp) { JS_CHECK_RECURSION(cx, return false); - return handler->getGeneric(cx, RootedId(cx, NameToId(name)), fvalp); + Rooted propname(cx, name); + return handler->getProperty(cx, propname, fvalp); } static bool @@ -1243,7 +1245,8 @@ static JSBool proxy_LookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - return proxy_LookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); + Rooted id(cx, NameToId(name)); + return proxy_LookupGeneric(cx, obj, id, objp, propp); } static JSBool @@ -1259,7 +1262,8 @@ proxy_LookupElement(JSContext *cx, HandleObject obj, uint32_t index, JSObject ** static JSBool proxy_LookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - return proxy_LookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return proxy_LookupGeneric(cx, obj, id, objp, propp); } static JSBool @@ -1280,7 +1284,8 @@ static JSBool proxy_DefineProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, const Value *value, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - return proxy_DefineGeneric(cx, obj, RootedId(cx, NameToId(name)), value, getter, setter, attrs); + Rooted id(cx, NameToId(name)); + return proxy_DefineGeneric(cx, obj, id, value, getter, setter, attrs); } static JSBool @@ -1297,8 +1302,8 @@ static JSBool proxy_DefineSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, const Value *value, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - return proxy_DefineGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), - value, getter, setter, attrs); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return proxy_DefineGeneric(cx, obj, id, value, getter, setter, attrs); } static JSBool @@ -1310,7 +1315,8 @@ proxy_GetGeneric(JSContext *cx, HandleObject obj, HandleObject receiver, HandleI static JSBool proxy_GetProperty(JSContext *cx, HandleObject obj, HandleObject receiver, HandlePropertyName name, Value *vp) { - return proxy_GetGeneric(cx, obj, receiver, RootedId(cx, NameToId(name)), vp); + Rooted id(cx, NameToId(name)); + return proxy_GetGeneric(cx, obj, receiver, id, vp); } static JSBool @@ -1332,7 +1338,8 @@ proxy_GetElementIfPresent(JSContext *cx, HandleObject obj, HandleObject receiver static JSBool proxy_GetSpecial(JSContext *cx, HandleObject obj, HandleObject receiver, HandleSpecialId sid, Value *vp) { - return proxy_GetGeneric(cx, obj, receiver, RootedId(cx, SPECIALID_TO_JSID(sid)), vp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return proxy_GetGeneric(cx, obj, receiver, id, vp); } static JSBool @@ -1344,7 +1351,8 @@ proxy_SetGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *vp, JSBool static JSBool proxy_SetProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *vp, JSBool strict) { - return proxy_SetGeneric(cx, obj, RootedId(cx, NameToId(name)), vp, strict); + Rooted id(cx, NameToId(name)); + return proxy_SetGeneric(cx, obj, id, vp, strict); } static JSBool @@ -1359,7 +1367,8 @@ proxy_SetElement(JSContext *cx, HandleObject obj, uint32_t index, Value *vp, JSB static JSBool proxy_SetSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *vp, JSBool strict) { - return proxy_SetGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return proxy_SetGeneric(cx, obj, id, vp, strict); } static JSBool @@ -1375,7 +1384,8 @@ proxy_GetGenericAttributes(JSContext *cx, HandleObject obj, HandleId id, unsigne static JSBool proxy_GetPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - return proxy_GetGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); + Rooted id(cx, NameToId(name)); + return proxy_GetGenericAttributes(cx, obj, id, attrsp); } static JSBool @@ -1390,7 +1400,8 @@ proxy_GetElementAttributes(JSContext *cx, HandleObject obj, uint32_t index, unsi static JSBool proxy_GetSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - return proxy_GetGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return proxy_GetGenericAttributes(cx, obj, id, attrsp); } static JSBool @@ -1407,7 +1418,8 @@ proxy_SetGenericAttributes(JSContext *cx, HandleObject obj, HandleId id, unsigne static JSBool proxy_SetPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - return proxy_SetGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); + Rooted id(cx, NameToId(name)); + return proxy_SetGenericAttributes(cx, obj, id, attrsp); } static JSBool @@ -1422,7 +1434,8 @@ proxy_SetElementAttributes(JSContext *cx, HandleObject obj, uint32_t index, unsi static JSBool proxy_SetSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - return proxy_SetGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return proxy_SetGenericAttributes(cx, obj, id, attrsp); } static JSBool @@ -1439,7 +1452,8 @@ proxy_DeleteGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *rval, J static JSBool proxy_DeleteProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *rval, JSBool strict) { - return proxy_DeleteGeneric(cx, obj, RootedId(cx, NameToId(name)), rval, strict); + Rooted id(cx, NameToId(name)); + return proxy_DeleteGeneric(cx, obj, id, rval, strict); } static JSBool @@ -1454,7 +1468,8 @@ proxy_DeleteElement(JSContext *cx, HandleObject obj, uint32_t index, Value *rval static JSBool proxy_DeleteSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *rval, JSBool strict) { - return proxy_DeleteGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), rval, strict); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return proxy_DeleteGeneric(cx, obj, id, rval, strict); } static void diff --git a/js/src/jsscope.cpp b/js/src/jsscope.cpp index 10f32cda359e..cb45328f25b8 100644 --- a/js/src/jsscope.cpp +++ b/js/src/jsscope.cpp @@ -1013,7 +1013,9 @@ JSObject::shadowingShapeChange(JSContext *cx, const Shape &shape) bool JSObject::clearParent(JSContext *cx) { - return setParent(cx, RootedObject(cx, this), RootedObject(cx)); + Rooted obj(cx, this); + Rooted newParent(cx, NULL); + return setParent(cx, obj, newParent); } /* static */ bool diff --git a/js/src/jsscript.cpp b/js/src/jsscript.cpp index 97d189c0ed04..53ed9e96c7f6 100644 --- a/js/src/jsscript.cpp +++ b/js/src/jsscript.cpp @@ -1745,7 +1745,8 @@ js::CloneScript(JSContext *cx, HandleScript src) for (unsigned i = 0; i < names.length(); ++i) { if (JSAtom *atom = names[i].maybeAtom) { - if (!bindings.add(cx, RootedAtom(cx, atom), names[i].kind)) + Rooted root(cx, atom); + if (!bindings.add(cx, root, names[i].kind)) return NULL; } else { uint16_t _; diff --git a/js/src/jsscript.h b/js/src/jsscript.h index ae9899e1d6d5..bcc452bc9da7 100644 --- a/js/src/jsscript.h +++ b/js/src/jsscript.h @@ -175,7 +175,8 @@ class Bindings } bool addDestructuring(JSContext *cx, uint16_t *slotp) { *slotp = nargs; - return add(cx, RootedAtom(cx), ARGUMENT); + Rooted atom(cx, NULL); + return add(cx, atom, ARGUMENT); } void noteDup() { hasDup_ = true; } diff --git a/js/src/jsstr.cpp b/js/src/jsstr.cpp index fcc8007c9a11..9baa7f60edf6 100644 --- a/js/src/jsstr.cpp +++ b/js/src/jsstr.cpp @@ -428,15 +428,13 @@ ThisToStringForStringProto(JSContext *cx, CallReceiver call) if (call.thisv().isObject()) { RootedObject obj(cx, &call.thisv().toObject()); - if (obj->isString() && - ClassMethodIsNative(cx, obj, - &StringClass, - RootedId(cx, NameToId(cx->runtime->atomState.toStringAtom)), - js_str_toString)) - { - JSString *str = obj->asString().unbox(); - call.thisv().setString(str); - return str; + if (obj->isString()) { + Rooted id(cx, NameToId(cx->runtime->atomState.toStringAtom)); + if (ClassMethodIsNative(cx, obj, &StringClass, id, js_str_toString)) { + JSString *str = obj->asString().unbox(); + call.thisv().setString(str); + return str; + } } } else if (call.thisv().isNullOrUndefined()) { JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_CANT_CONVERT_TO, @@ -1984,7 +1982,7 @@ BuildFlatReplacement(JSContext *cx, HandleString textstr, HandleString repstr, return false; } } else { - if (!builder.append(RootedString(cx, str))) + if (!builder.append(str)) return false; } pos += str->length(); @@ -3065,8 +3063,9 @@ js_InitStringClass(JSContext *cx, JSObject *obj) Rooted global(cx, &obj->asGlobal()); + Rooted empty(cx, cx->runtime->emptyString); RootedObject proto(cx, global->createBlankPrototype(cx, &StringClass)); - if (!proto || !proto->asString().init(cx, RootedString(cx, cx->runtime->emptyString))) + if (!proto || !proto->asString().init(cx, empty)) return NULL; /* Now create the String function. */ @@ -3286,7 +3285,8 @@ js_ValueToSource(JSContext *cx, const Value &v) Value rval = NullValue(); Value fval; RootedId id(cx, NameToId(cx->runtime->atomState.toSourceAtom)); - if (!GetMethod(cx, RootedObject(cx, &v.toObject()), id, 0, &fval)) + Rooted obj(cx, &v.toObject()); + if (!GetMethod(cx, obj, id, 0, &fval)) return NULL; if (js_IsCallable(fval)) { if (!Invoke(cx, v, fval, 0, NULL, &rval)) diff --git a/js/src/jstypedarray.cpp b/js/src/jstypedarray.cpp index 6c44eb6cecee..f7c195f75124 100644 --- a/js/src/jstypedarray.cpp +++ b/js/src/jstypedarray.cpp @@ -349,7 +349,8 @@ JSBool ArrayBufferObject::obj_lookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - return obj_lookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); + Rooted id(cx, NameToId(name)); + return obj_lookupGeneric(cx, obj, id, objp, propp); } JSBool @@ -387,7 +388,8 @@ JSBool ArrayBufferObject::obj_lookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - return obj_lookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return obj_lookupGeneric(cx, obj, id, objp, propp); } JSBool @@ -402,7 +404,7 @@ ArrayBufferObject::obj_defineGeneric(JSContext *cx, HandleObject obj, HandleId i RootedObject delegate(cx, DelegateObject(cx, obj)); if (!delegate) return false; - return baseops::DefineProperty(cx, delegate, id, v, getter, setter, attrs); + return baseops::DefineGeneric(cx, delegate, id, v, getter, setter, attrs); } JSBool @@ -410,7 +412,8 @@ ArrayBufferObject::obj_defineProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - return obj_defineGeneric(cx, obj, RootedId(cx, NameToId(name)), v, getter, setter, attrs); + Rooted id(cx, NameToId(name)); + return obj_defineGeneric(cx, obj, id, v, getter, setter, attrs); } JSBool @@ -429,8 +432,8 @@ JSBool ArrayBufferObject::obj_defineSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - return obj_defineGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), - v, getter, setter, attrs); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return obj_defineGeneric(cx, obj, id, v, getter, setter, attrs); } JSBool @@ -474,7 +477,8 @@ ArrayBufferObject::obj_getProperty(JSContext *cx, HandleObject obj, nobj = DelegateObject(cx, nobj); if (!nobj) return false; - return baseops::GetProperty(cx, nobj, receiver, RootedId(cx, NameToId(name)), vp); + Rooted id(cx, NameToId(name)); + return baseops::GetProperty(cx, nobj, receiver, id, vp); } JSBool @@ -503,7 +507,8 @@ JSBool ArrayBufferObject::obj_getSpecial(JSContext *cx, HandleObject obj, HandleObject receiver, HandleSpecialId sid, Value *vp) { - return obj_getGeneric(cx, obj, receiver, RootedId(cx, SPECIALID_TO_JSID(sid)), vp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return obj_getGeneric(cx, obj, receiver, id, vp); } JSBool @@ -548,7 +553,8 @@ ArrayBufferObject::obj_setGeneric(JSContext *cx, HandleObject obj, HandleId id, obj->reportNotExtensible(cx); return false; } - if (!SetProto(cx, obj, RootedObject(cx, vp->toObjectOrNull()), true)) { + Rooted newProto(cx, vp->toObjectOrNull()); + if (!SetProto(cx, obj, newProto, true)) { // this can be caused for example by setting x.__proto__ = x // restore delegate prototype chain SetProto(cx, delegate, oldDelegateProto, true); @@ -565,7 +571,8 @@ JSBool ArrayBufferObject::obj_setProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *vp, JSBool strict) { - return obj_setGeneric(cx, obj, RootedId(cx, NameToId(name)), vp, strict); + Rooted id(cx, NameToId(name)); + return obj_setGeneric(cx, obj, id, vp, strict); } JSBool @@ -583,7 +590,8 @@ JSBool ArrayBufferObject::obj_setSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *vp, JSBool strict) { - return obj_setGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return obj_setGeneric(cx, obj, id, vp, strict); } JSBool @@ -605,7 +613,8 @@ JSBool ArrayBufferObject::obj_getPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - return obj_getGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); + Rooted id(cx, NameToId(name)); + return obj_getGenericAttributes(cx, obj, id, attrsp); } JSBool @@ -622,7 +631,8 @@ JSBool ArrayBufferObject::obj_getSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - return obj_getGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return obj_getGenericAttributes(cx, obj, id, attrsp); } JSBool @@ -645,7 +655,8 @@ JSBool ArrayBufferObject::obj_setPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - return obj_setGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); + Rooted id(cx, NameToId(name)); + return obj_setGenericAttributes(cx, obj, id, attrsp); } JSBool @@ -662,7 +673,8 @@ JSBool ArrayBufferObject::obj_setSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - return obj_setGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return obj_setGenericAttributes(cx, obj, id, attrsp); } JSBool @@ -859,7 +871,8 @@ JSBool TypedArray::obj_lookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - return obj_lookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); + Rooted id(cx, NameToId(name)); + return obj_lookupGeneric(cx, obj, id, objp, propp); } JSBool @@ -887,7 +900,8 @@ JSBool TypedArray::obj_lookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - return obj_lookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return obj_lookupGeneric(cx, obj, id, objp, propp); } JSBool @@ -916,7 +930,8 @@ TypedArray::obj_getElementAttributes(JSContext *cx, HandleObject obj, uint32_t i JSBool TypedArray::obj_getSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - return obj_getGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return obj_getGenericAttributes(cx, obj, id, attrsp); } JSBool @@ -1106,9 +1121,9 @@ class TypedArrayTemplate if (IsDefinitelyIndex(idval, &index)) return obj_getElement(cx, obj, receiver, index, vp); - SpecialId sid; - if (ValueIsSpecial(obj, &idval, &sid, cx)) - return obj_getSpecial(cx, obj, receiver, Rooted(cx, sid), vp); + Rooted sid(cx); + if (ValueIsSpecial(obj, &idval, sid.address(), cx)) + return obj_getSpecial(cx, obj, receiver, sid, vp); JSAtom *atom = ToAtom(cx, idval); if (!atom) @@ -1117,7 +1132,8 @@ class TypedArrayTemplate if (atom->isIndex(&index)) return obj_getElement(cx, obj, receiver, index, vp); - return obj_getProperty(cx, obj, receiver, RootedPropertyName(cx, atom->asPropertyName()), vp); + Rooted name(cx, atom->asPropertyName()); + return obj_getProperty(cx, obj, receiver, name, vp); } static JSBool @@ -1235,7 +1251,8 @@ class TypedArrayTemplate static JSBool obj_setProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *vp, JSBool strict) { - return obj_setGeneric(cx, obj, RootedId(cx, NameToId(name)), vp, strict); + Rooted id(cx, NameToId(name)); + return obj_setGeneric(cx, obj, id, vp, strict); } static JSBool @@ -1260,7 +1277,8 @@ class TypedArrayTemplate static JSBool obj_setSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *vp, JSBool strict) { - return obj_setGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return obj_setGeneric(cx, obj, id, vp, strict); } static JSBool @@ -1278,7 +1296,8 @@ class TypedArrayTemplate obj_defineProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - return obj_defineGeneric(cx, obj, RootedId(cx, NameToId(name)), v, getter, setter, attrs); + Rooted id(cx, NameToId(name)); + return obj_defineGeneric(cx, obj, id, v, getter, setter, attrs); } static JSBool @@ -1293,7 +1312,8 @@ class TypedArrayTemplate obj_defineSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - return obj_defineGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), v, getter, setter, attrs); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return obj_defineGeneric(cx, obj, id, v, getter, setter, attrs); } static JSBool @@ -1537,7 +1557,8 @@ class TypedArrayTemplate } } - return fromBuffer(cx, dataObj, byteOffset, length, RootedObject(cx)); + Rooted proto(cx, NULL); + return fromBuffer(cx, dataObj, byteOffset, length, proto); } /* subarray(start[, end]) */ @@ -2893,15 +2914,19 @@ JSFunctionSpec _typedArray::jsfuncs[] = { \ MOZ_ASSERT(nelements <= INT32_MAX); \ return TypedArrayTemplate::fromLength(cx, nelements); \ } \ - JS_FRIEND_API(JSObject *) JS_New ## Name ## ArrayFromArray(JSContext *cx, JSObject *other) \ + JS_FRIEND_API(JSObject *) JS_New ## Name ## ArrayFromArray(JSContext *cx, JSObject *other_)\ { \ - return TypedArrayTemplate::fromArray(cx, RootedObject(cx, other)); \ + Rooted other(cx, other_); \ + return TypedArrayTemplate::fromArray(cx, other); \ } \ JS_FRIEND_API(JSObject *) JS_New ## Name ## ArrayWithBuffer(JSContext *cx, \ - JSObject *arrayBuffer, uint32_t byteoffset, int32_t length) \ + JSObject *arrayBuffer_, uint32_t byteoffset, int32_t length) \ { \ MOZ_ASSERT(byteoffset <= INT32_MAX); \ - return TypedArrayTemplate::fromBuffer(cx, RootedObject(cx, arrayBuffer), byteoffset, length, RootedObject(cx)); \ + Rooted arrayBuffer(cx, arrayBuffer_); \ + Rooted proto(cx, NULL); \ + return TypedArrayTemplate::fromBuffer(cx, arrayBuffer, byteoffset, length, \ + proto); \ } \ JS_FRIEND_API(JSBool) JS_Is ## Name ## Array(JSObject *obj, JSContext *cx) \ { \ diff --git a/js/src/jswrapper.cpp b/js/src/jswrapper.cpp index a238610a1ec9..ea4274e65bfe 100644 --- a/js/src/jswrapper.cpp +++ b/js/src/jswrapper.cpp @@ -177,17 +177,20 @@ DirectWrapper::hasOwn(JSContext *cx, JSObject *wrapper, jsid id, bool *bp) } bool -DirectWrapper::get(JSContext *cx, JSObject *wrapper, JSObject *receiver, jsid id, Value *vp) +DirectWrapper::get(JSContext *cx, JSObject *wrapper, JSObject *receiver_, jsid id_, Value *vp) { vp->setUndefined(); // default result if we refuse to perform this action - GET(wrappedObject(wrapper)->getGeneric(cx, RootedObject(cx, receiver), RootedId(cx, id), vp)); + Rooted receiver(cx, receiver_); + Rooted id(cx, id_); + GET(wrappedObject(wrapper)->getGeneric(cx, receiver, id, vp)); } bool -DirectWrapper::set(JSContext *cx, JSObject *wrapper, JSObject *receiver, jsid id, bool strict, +DirectWrapper::set(JSContext *cx, JSObject *wrapper, JSObject *receiver, jsid id_, bool strict, Value *vp) { - SET(wrappedObject(wrapper)->setGeneric(cx, RootedId(cx, id), vp, strict)); + Rooted id(cx, id_); + SET(wrappedObject(wrapper)->setGeneric(cx, id, vp, strict)); } bool @@ -203,7 +206,8 @@ DirectWrapper::iterate(JSContext *cx, JSObject *wrapper, unsigned flags, Value * { vp->setUndefined(); // default result if we refuse to perform this action const jsid id = JSID_VOID; - GET(GetIterator(cx, RootedObject(cx, wrappedObject(wrapper)), flags, vp)); + Rooted wrapped(cx, wrappedObject(wrapper)); + GET(GetIterator(cx, wrapped, flags, vp)); } bool @@ -415,7 +419,8 @@ ErrorCopier::~ErrorCopier() if (exc.isObject() && exc.toObject().isError() && exc.toObject().getPrivate()) { cx->clearPendingException(); ac.leave(); - JSObject *copyobj = js_CopyErrorObject(cx, RootedObject(cx, &exc.toObject()), scope); + Rooted errObj(cx, &exc.toObject()); + JSObject *copyobj = js_CopyErrorObject(cx, errObj, scope); if (copyobj) cx->setPendingException(ObjectValue(*copyobj)); } diff --git a/js/src/jsxml.cpp b/js/src/jsxml.cpp index 7e002e7fa007..0a6ec8dd0ba3 100644 --- a/js/src/jsxml.cpp +++ b/js/src/jsxml.cpp @@ -386,7 +386,8 @@ ConvertQNameToString(JSContext *cx, JSObject *obj) if (!str) return NULL; } - str = js_ConcatStrings(cx, str, RootedString(cx, obj->getQNameLocalName())); + Rooted localName(cx, obj->getQNameLocalName()); + str = js_ConcatStrings(cx, str, localName); if (!str) return NULL; @@ -3999,7 +4000,8 @@ PutProperty(JSContext *cx, HandleObject obj_, HandleId id_, JSBool strict, jsval * Note that rxml can't be null here, because target * and targetprop are non-null. */ - ok = GetProperty(cx, RootedObject(cx, rxml->object), id, &attrval); + Rooted robj(cx, rxml->object); + ok = GetProperty(cx, robj, id, &attrval); if (!ok) goto out; if (JSVAL_IS_PRIMITIVE(attrval)) /* no such attribute */ @@ -4563,7 +4565,8 @@ ResolveValue(JSContext *cx, JSXML *list, JSXML **result) return JS_FALSE; RootedId id(cx, OBJECT_TO_JSID(targetprop)); - if (!GetProperty(cx, RootedObject(cx, base->object), id, &tv)) + Rooted baseObj(cx, base->object); + if (!GetProperty(cx, baseObj, id, &tv)) return JS_FALSE; target = (JSXML *) JSVAL_TO_OBJECT(tv)->getPrivate(); @@ -4573,9 +4576,9 @@ ResolveValue(JSContext *cx, JSXML *list, JSXML **result) return JS_TRUE; } tv = STRING_TO_JSVAL(cx->runtime->emptyString); - if (!PutProperty(cx, RootedObject(cx, base->object), id, false, &tv)) + if (!PutProperty(cx, baseObj, id, false, &tv)) return JS_FALSE; - if (!GetProperty(cx, RootedObject(cx, base->object), id, &tv)) + if (!GetProperty(cx, baseObj, id, &tv)) return JS_FALSE; target = (JSXML *) JSVAL_TO_OBJECT(tv)->getPrivate(); } @@ -4637,17 +4640,18 @@ static JSBool HasSimpleContent(JSXML *xml); static JSBool -HasFunctionProperty(JSContext *cx, JSObject *obj, jsid funid_, JSBool *found) +HasFunctionProperty(JSContext *cx, JSObject *obj_, jsid funid_, JSBool *found) { JSObject *pobj; JSProperty *prop; JSXML *xml; - JS_ASSERT(obj->getClass() == &XMLClass); + JS_ASSERT(obj_->getClass() == &XMLClass); RootedId funid(cx, funid_); - if (!baseops::LookupProperty(cx, RootedObject(cx, obj), funid, &pobj, &prop)) + Rooted obj(cx, obj_); + if (!baseops::LookupProperty(cx, obj, funid, &pobj, &prop)) return false; if (!prop) { xml = (JSXML *) obj->getPrivate(); @@ -4790,7 +4794,8 @@ static JSBool xml_lookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - return xml_lookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); + Rooted id(cx, NameToId(name)); + return xml_lookupGeneric(cx, obj, id, objp, propp); } static JSBool @@ -4809,9 +4814,8 @@ xml_lookupElement(JSContext *cx, HandleObject obj, uint32_t index, JSObject **ob return false; const Shape *shape = - js_AddNativeProperty(cx, RootedObject(cx, obj), id, GetProperty, PutProperty, - SHAPE_INVALID_SLOT, JSPROP_ENUMERATE, - 0, 0); + js_AddNativeProperty(cx, obj, id, GetProperty, PutProperty, SHAPE_INVALID_SLOT, + JSPROP_ENUMERATE, 0, 0); if (!shape) return false; @@ -4823,7 +4827,8 @@ xml_lookupElement(JSContext *cx, HandleObject obj, uint32_t index, JSObject **ob static JSBool xml_lookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - return xml_lookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return xml_lookupGeneric(cx, obj, id, objp, propp); } static JSBool @@ -4833,7 +4838,7 @@ xml_defineGeneric(JSContext *cx, HandleObject obj, HandleId id, const Value *v, if (IsFunctionObject(*v) || getter || setter || (attrs & JSPROP_ENUMERATE) == 0 || (attrs & (JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_SHARED))) { - return baseops::DefineProperty(cx, obj, id, v, getter, setter, attrs); + return baseops::DefineGeneric(cx, obj, id, v, getter, setter, attrs); } jsval tmp = *v; @@ -4844,7 +4849,8 @@ static JSBool xml_defineProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - return xml_defineGeneric(cx, obj, RootedId(cx, NameToId(name)), v, getter, setter, attrs); + Rooted id(cx, NameToId(name)); + return xml_defineGeneric(cx, obj, id, v, getter, setter, attrs); } static JSBool @@ -4861,7 +4867,8 @@ static JSBool xml_defineSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - return xml_defineGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), v, getter, setter, attrs); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return xml_defineGeneric(cx, obj, id, v, getter, setter, attrs); } static JSBool @@ -4878,7 +4885,8 @@ xml_getGeneric(JSContext *cx, HandleObject obj, HandleObject receiver, HandleId static JSBool xml_getProperty(JSContext *cx, HandleObject obj, HandleObject receiver, HandlePropertyName name, Value *vp) { - return xml_getGeneric(cx, obj, receiver, RootedId(cx, NameToId(name)), vp); + Rooted id(cx, NameToId(name)); + return xml_getGeneric(cx, obj, receiver, id, vp); } static JSBool @@ -4893,7 +4901,8 @@ xml_getElement(JSContext *cx, HandleObject obj, HandleObject receiver, uint32_t static JSBool xml_getSpecial(JSContext *cx, HandleObject obj, HandleObject receiver, HandleSpecialId sid, Value *vp) { - return xml_getGeneric(cx, obj, receiver, RootedId(cx, SPECIALID_TO_JSID(sid)), vp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return xml_getGeneric(cx, obj, receiver, id, vp); } static JSBool @@ -4905,7 +4914,8 @@ xml_setGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *vp, JSBool s static JSBool xml_setProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *vp, JSBool strict) { - return xml_setGeneric(cx, obj, RootedId(cx, NameToId(name)), vp, strict); + Rooted id(cx, NameToId(name)); + return xml_setGeneric(cx, obj, id, vp, strict); } static JSBool @@ -4920,7 +4930,8 @@ xml_setElement(JSContext *cx, HandleObject obj, uint32_t index, Value *vp, JSBoo static JSBool xml_setSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *vp, JSBool strict) { - return xml_setGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return xml_setGeneric(cx, obj, id, vp, strict); } static JSBool @@ -4937,7 +4948,8 @@ xml_getGenericAttributes(JSContext *cx, HandleObject obj, HandleId id, unsigned static JSBool xml_getPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - return xml_getGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); + Rooted id(cx, NameToId(name)); + return xml_getGenericAttributes(cx, obj, id, attrsp); } static JSBool @@ -4952,7 +4964,8 @@ xml_getElementAttributes(JSContext *cx, HandleObject obj, uint32_t index, unsign static JSBool xml_getSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - return xml_getGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return xml_getGenericAttributes(cx, obj, id, attrsp); } static JSBool @@ -4973,7 +4986,8 @@ xml_setGenericAttributes(JSContext *cx, HandleObject obj, HandleId id, unsigned static JSBool xml_setPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - return xml_setGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); + Rooted id(cx, NameToId(name)); + return xml_setGenericAttributes(cx, obj, id, attrsp); } static JSBool @@ -4988,7 +5002,8 @@ xml_setElementAttributes(JSContext *cx, HandleObject obj, uint32_t index, unsign static JSBool xml_setSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - return xml_setGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return xml_setGenericAttributes(cx, obj, id, attrsp); } static JSBool @@ -5037,7 +5052,8 @@ xml_deleteGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *rval, JSB static JSBool xml_deleteProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *rval, JSBool strict) { - return xml_deleteGeneric(cx, obj, RootedId(cx, NameToId(name)), rval, strict); + Rooted id(cx, NameToId(name)); + return xml_deleteGeneric(cx, obj, id, rval, strict); } static JSBool @@ -5070,7 +5086,8 @@ xml_deleteElement(JSContext *cx, HandleObject obj, uint32_t index, Value *rval, static JSBool xml_deleteSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *rval, JSBool strict) { - return xml_deleteGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), rval, strict); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return xml_deleteGeneric(cx, obj, id, rval, strict); } static JSString * @@ -5211,19 +5228,20 @@ again: * 11.2.2.1 Step 3(d) onward. */ JSBool -js_GetXMLMethod(JSContext *cx, HandleObject obj, jsid id, Value *vp) +js_GetXMLMethod(JSContext *cx, HandleObject obj, jsid id_, Value *vp) { JS_ASSERT(obj->isXML()); + Rooted id(cx, id_); if (JSID_IS_OBJECT(id)) - js_GetLocalNameFromFunctionQName(JSID_TO_OBJECT(id), &id, cx); + js_GetLocalNameFromFunctionQName(JSID_TO_OBJECT(id), id.address(), cx); /* * As our callers have a bad habit of passing a pointer to an unrooted * local value as vp, we use a proper root here. */ AutoValueRooter tvr(cx); - JSBool ok = GetXMLFunction(cx, obj, RootedId(cx, id), tvr.addr()); + JSBool ok = GetXMLFunction(cx, obj, id, tvr.addr()); *vp = tvr.value(); return ok; } @@ -5502,10 +5520,6 @@ xml_addNamespace(JSContext *cx, unsigned argc, jsval *vp) static JSBool xml_appendChild(JSContext *cx, unsigned argc, jsval *vp) { - jsval v; - JSObject *vobj; - JSXML *vxml; - NON_LIST_XML_METHOD_PROLOG; xml = CHECK_COPY_ON_WRITE(cx, xml, obj); if (!xml) @@ -5515,20 +5529,21 @@ xml_appendChild(JSContext *cx, unsigned argc, jsval *vp) if (!js_GetAnyName(cx, name.address())) return JS_FALSE; + Value v; if (!GetProperty(cx, obj, name, &v)) return JS_FALSE; JS_ASSERT(!JSVAL_IS_PRIMITIVE(v)); - vobj = JSVAL_TO_OBJECT(v); + Rooted vobj(cx, &v.toObject()); JS_ASSERT(vobj->isXML()); - vxml = (JSXML *) vobj->getPrivate(); + JSXML *vxml = (JSXML *) vobj->getPrivate(); JS_ASSERT(vxml->xml_class == JSXML_CLASS_LIST); if (!IndexToId(cx, vxml->xml_kids.length, name.address())) return JS_FALSE; *vp = (argc != 0) ? vp[2] : JSVAL_VOID; - if (!PutProperty(cx, RootedObject(cx, JSVAL_TO_OBJECT(v)), name, false, vp)) + if (!PutProperty(cx, vobj, name, false, vp)) return JS_FALSE; *vp = OBJECT_TO_JSVAL(obj); @@ -5614,7 +5629,7 @@ ValueToIdForXML(JSContext *cx, jsval v, jsid *idp) } static JSBool -xml_child_helper(JSContext *cx, JSObject *obj, JSXML *xml, jsval name, +xml_child_helper(JSContext *cx, JSObject *obj_, JSXML *xml, jsval name, jsval *rval) { bool isIndex; @@ -5625,6 +5640,8 @@ xml_child_helper(JSContext *cx, JSObject *obj, JSXML *xml, jsval name, /* ECMA-357 13.4.4.6 */ JS_ASSERT(xml->xml_class != JSXML_CLASS_LIST); + Rooted obj(cx, obj_); + if (!IdValIsIndex(cx, name, &index, &isIndex)) return JS_FALSE; @@ -5649,7 +5666,7 @@ xml_child_helper(JSContext *cx, JSObject *obj, JSXML *xml, jsval name, if (!ValueToIdForXML(cx, name, id.address())) return JS_FALSE; - return GetProperty(cx, RootedObject(cx, obj), id, rval); + return GetProperty(cx, obj, id, rval); } /* XML and XMLList */ @@ -6334,9 +6351,11 @@ xml_normalize_helper(JSContext *cx, JSObject *obj, JSXML *xml) } else if (kid->xml_class == JSXML_CLASS_TEXT) { while (i + 1 < n && (kid2 = XMLARRAY_MEMBER(&xml->xml_kids, i + 1, JSXML)) && - kid2->xml_class == JSXML_CLASS_TEXT) { - str = js_ConcatStrings(cx, RootedString(cx, kid->xml_value), - RootedString(cx, kid2->xml_value)); + kid2->xml_class == JSXML_CLASS_TEXT) + { + Rooted lstr(cx, kid->xml_value); + Rooted rstr(cx, kid2->xml_value); + str = js_ConcatStrings(cx, lstr, rstr); if (!str) return JS_FALSE; NormalizingDelete(cx, xml, i + 1); @@ -6683,8 +6702,9 @@ xml_setChildren(JSContext *cx, unsigned argc, jsval *vp) if (!StartNonListXMLMethod(cx, vp, obj.address())) return JS_FALSE; + Rooted id(cx, NameToId(cx->runtime->atomState.starAtom)); *vp = argc != 0 ? vp[2] : JSVAL_VOID; /* local root */ - if (!PutProperty(cx, obj, RootedId(cx, NameToId(cx->runtime->atomState.starAtom)), false, vp)) + if (!PutProperty(cx, obj, id, false, vp)) return JS_FALSE; *vp = OBJECT_TO_JSVAL(obj); diff --git a/js/src/methodjit/Compiler.cpp b/js/src/methodjit/Compiler.cpp index 395f28065ae8..0f80241796e2 100644 --- a/js/src/methodjit/Compiler.cpp +++ b/js/src/methodjit/Compiler.cpp @@ -4822,27 +4822,29 @@ mjit::Compiler::jsop_getprop(PropertyName *name, JSValueType knownType, bool testObject; JSObject *singleton = (*PC == JSOP_GETPROP || *PC == JSOP_CALLPROP) ? pushedSingleton(0) : NULL; - if (singleton && singleton->isFunction() && !hasTypeBarriers(PC) && - testSingletonPropertyTypes(top, RootedId(cx, NameToId(name)), &testObject)) { - if (testObject) { - Jump notObject = frame.testObject(Assembler::NotEqual, top); - stubcc.linkExit(notObject, Uses(1)); - stubcc.leave(); - stubcc.masm.move(ImmPtr(name), Registers::ArgReg1); - OOL_STUBCALL(stubs::GetProp, REJOIN_FALLTHROUGH); - testPushedType(REJOIN_FALLTHROUGH, -1); + if (singleton && singleton->isFunction() && !hasTypeBarriers(PC)) { + Rooted id(cx, NameToId(name)); + if (testSingletonPropertyTypes(top, id, &testObject)) { + if (testObject) { + Jump notObject = frame.testObject(Assembler::NotEqual, top); + stubcc.linkExit(notObject, Uses(1)); + stubcc.leave(); + stubcc.masm.move(ImmPtr(name), Registers::ArgReg1); + OOL_STUBCALL(stubs::GetProp, REJOIN_FALLTHROUGH); + testPushedType(REJOIN_FALLTHROUGH, -1); + } + + frame.pop(); + frame.push(ObjectValue(*singleton)); + + if (script->hasScriptCounts && cx->typeInferenceEnabled()) + bumpPropCount(PC, PCCounts::PROP_STATIC); + + if (testObject) + stubcc.rejoin(Changes(1)); + + return true; } - - frame.pop(); - frame.push(ObjectValue(*singleton)); - - if (script->hasScriptCounts && cx->typeInferenceEnabled()) - bumpPropCount(PC, PCCounts::PROP_STATIC); - - if (testObject) - stubcc.rejoin(Changes(1)); - - return true; } /* Check if this is a property access we can make a loop invariant entry for. */ @@ -5119,7 +5121,8 @@ mjit::Compiler::testSingletonPropertyTypes(FrameEntry *top, HandleId id, bool *t JS_ASSERT_IF(top->isTypeKnown(), top->isType(JSVAL_TYPE_OBJECT)); types::TypeObject *object = types->getTypeObject(0); if (object && object->proto) { - if (!testSingletonProperty(RootedObject(cx, object->proto), id)) + Rooted proto(cx, object->proto); + if (!testSingletonProperty(proto, id)) return false; types->addFreeze(cx); @@ -5196,12 +5199,13 @@ mjit::Compiler::jsop_getprop_dispatch(PropertyName *name) if (ownTypes->isOwnProperty(cx, object, false)) return false; - if (!testSingletonProperty(RootedObject(cx, object->proto), id)) + Rooted proto(cx, object->proto); + if (!testSingletonProperty(proto, id)) return false; - if (object->proto->getType(cx)->unknownProperties()) + if (proto->getType(cx)->unknownProperties()) return false; - types::TypeSet *protoTypes = object->proto->type()->getProperty(cx, id, false); + types::TypeSet *protoTypes = proto->type()->getProperty(cx, id, false); if (!protoTypes) return false; JSObject *singleton = protoTypes->getSingleton(cx); @@ -6255,9 +6259,12 @@ mjit::Compiler::jsop_getgname(uint32_t index) /* Optimize singletons like Math for JSOP_CALLPROP. */ JSObject *obj = pushedSingleton(0); - if (obj && !hasTypeBarriers(PC) && testSingletonProperty(globalObj, RootedId(cx, NameToId(name)))) { - frame.push(ObjectValue(*obj)); - return true; + if (obj && !hasTypeBarriers(PC)) { + Rooted id(cx, NameToId(name)); + if (testSingletonProperty(globalObj, id)) { + frame.push(ObjectValue(*obj)); + return true; + } } jsid id = NameToId(name); diff --git a/js/src/methodjit/FastOps.cpp b/js/src/methodjit/FastOps.cpp index 5a033a09acba..a5533588664c 100644 --- a/js/src/methodjit/FastOps.cpp +++ b/js/src/methodjit/FastOps.cpp @@ -2655,11 +2655,11 @@ mjit::Compiler::jsop_initprop() JSObject *holder; JSProperty *prop = NULL; + Rooted id(cx, NameToId(name)); #ifdef DEBUG bool res = #endif - LookupPropertyWithFlags(cx, baseobj, RootedId(cx, NameToId(name)), - JSRESOLVE_QUALIFIED, &holder, &prop); + LookupPropertyWithFlags(cx, baseobj, id, JSRESOLVE_QUALIFIED, &holder, &prop); JS_ASSERT(res && prop && holder == baseobj); RegisterID objReg = frame.copyDataIntoReg(obj); diff --git a/js/src/methodjit/PolyIC.cpp b/js/src/methodjit/PolyIC.cpp index 4fa9abdbcae5..ff72f3b31a14 100644 --- a/js/src/methodjit/PolyIC.cpp +++ b/js/src/methodjit/PolyIC.cpp @@ -1665,7 +1665,7 @@ class ScopeNameCompiler : public PICStubCompiler bool retrieve(Value *vp, PICInfo::Kind kind) { JSObject *obj = getprop.obj; - JSObject *holder = getprop.holder; + Rooted holder(cx, getprop.holder); const JSProperty *prop = getprop.prop; if (!prop) { @@ -1690,7 +1690,7 @@ class ScopeNameCompiler : public PICStubCompiler } const Shape *shape = getprop.shape; - JSObject *normalized = obj; + Rooted normalized(cx, obj); if (obj->isWith() && !shape->hasDefaultGetter()) normalized = &obj->asWith().object(); NATIVE_GET(cx, normalized, holder, shape, 0, vp, return false); @@ -2437,7 +2437,8 @@ GetElementIC::attachTypedArray(VMFrame &f, JSObject *obj, const Value &v, jsid i disable(f, "generated typed array stub"); // Fetch the value as expected of Lookup_Cacheable for GetElement. - if (!obj->getGeneric(cx, RootedId(cx, id), vp)) + Rooted idRoot(cx, id); + if (!obj->getGeneric(cx, idRoot, vp)) return Lookup_Error; return Lookup_Cacheable; @@ -2504,11 +2505,11 @@ ic::GetElement(VMFrame &f, ic::GetElementIC *ic) } #endif - jsid id; + Rooted id(cx); if (idval.isInt32() && INT_FITS_IN_JSID(idval.toInt32())) { id = INT_TO_JSID(idval.toInt32()); } else { - if (!InternNonIntElementId(cx, obj, idval, &id)) + if (!InternNonIntElementId(cx, obj, idval, id.address())) THROW(); } @@ -2527,7 +2528,7 @@ ic::GetElement(VMFrame &f, ic::GetElementIC *ic) } } - if (!obj->getGeneric(cx, RootedId(cx, id), &f.regs.sp[-2])) + if (!obj->getGeneric(cx, id, &f.regs.sp[-2])) THROW(); #if JS_HAS_NO_SUCH_METHOD diff --git a/js/src/methodjit/StubCalls.cpp b/js/src/methodjit/StubCalls.cpp index 57c054f5b208..c5445340fa44 100644 --- a/js/src/methodjit/StubCalls.cpp +++ b/js/src/methodjit/StubCalls.cpp @@ -52,10 +52,10 @@ using namespace js::types; using namespace JSC; void JS_FASTCALL -stubs::BindName(VMFrame &f, PropertyName *name) +stubs::BindName(VMFrame &f, PropertyName *name_) { - JSObject *obj = FindIdentifierBase(f.cx, f.fp()->scopeChain(), - RootedPropertyName(f.cx, name)); + Rooted name(f.cx, name_); + JSObject *obj = FindIdentifierBase(f.cx, f.fp()->scopeChain(), name); if (!obj) THROW(); f.regs.sp[0].setObject(*obj); @@ -505,7 +505,8 @@ StubEqualityOp(VMFrame &f) JSObject *l = &lval.toObject(), *r = &rval.toObject(); if (JSEqualityOp eq = l->getClass()->ext.equality) { JSBool equal; - if (!eq(cx, RootedObject(cx, l), &rval, &equal)) + Rooted lobj(cx, l); + if (!eq(cx, lobj, &rval, &equal)) return false; cond = !!equal == EQ; } else { @@ -886,7 +887,8 @@ stubs::NewInitObject(VMFrame &f, JSObject *baseobj) JSObject *obj; if (baseobj) { - obj = CopyInitializerObject(cx, RootedObject(cx, baseobj)); + Rooted base(cx, baseobj); + obj = CopyInitializerObject(cx, base); } else { gc::AllocKind kind = GuessObjectGCKind(0); obj = NewBuiltinClassInstance(cx, &ObjectClass, kind); @@ -1065,8 +1067,8 @@ stubs::IterMore(VMFrame &f) JS_ASSERT(f.regs.sp[-1].isObject()); Value v; - JSObject *iterobj = &f.regs.sp[-1].toObject(); - if (!js_IteratorMore(f.cx, RootedObject(f.cx, iterobj), &v)) + Rooted iterobj(f.cx, &f.regs.sp[-1].toObject()); + if (!js_IteratorMore(f.cx, iterobj, &v)) THROWV(JS_FALSE); return v.toBoolean(); @@ -1400,9 +1402,8 @@ stubs::DefVarOrConst(VMFrame &f, PropertyName *dn) if (JSOp(*f.regs.pc) == JSOP_DEFCONST) attrs |= JSPROP_READONLY; - JSObject &obj = f.fp()->varObj(); - - if (!DefVarOrConstOperation(f.cx, RootedObject(f.cx, &obj), dn, attrs)) + Rooted varobj(f.cx, &f.fp()->varObj()); + if (!DefVarOrConstOperation(f.cx, varobj, dn, attrs)) THROW(); } diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp index ef5aa3ce4b81..a5693dba6fb8 100644 --- a/js/src/shell/js.cpp +++ b/js/src/shell/js.cpp @@ -2782,7 +2782,8 @@ static JSBool resolver_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags, JSObject **objp) { jsval v = JS_GetReservedSlot(obj, 0); - return CopyProperty(cx, obj, RootedObject(cx, JSVAL_TO_OBJECT(v)), id, flags, objp); + Rooted vobj(cx, &v.toObject()); + return CopyProperty(cx, obj, vobj, id, flags, objp); } static JSBool @@ -2794,8 +2795,10 @@ resolver_enumerate(JSContext *cx, HandleObject obj) AutoIdArray ida(cx, JS_Enumerate(cx, referent)); bool ok = !!ida; JSObject *ignore; - for (size_t i = 0; ok && i < ida.length(); i++) - ok = CopyProperty(cx, obj, referent, RootedId(cx, ida[i]), JSRESOLVE_QUALIFIED, &ignore); + for (size_t i = 0; ok && i < ida.length(); i++) { + Rooted id(cx, ida[i]); + ok = CopyProperty(cx, obj, referent, id, JSRESOLVE_QUALIFIED, &ignore); + } return ok; } @@ -3147,13 +3150,13 @@ Parent(JSContext *cx, unsigned argc, jsval *vp) return false; } - JSObject *parent = JS_GetParent(JSVAL_TO_OBJECT(v)); + Rooted parent(cx, JS_GetParent(&v.toObject())); *vp = OBJECT_TO_JSVAL(parent); /* Outerize if necessary. Embrace the ugliness! */ if (parent) { if (JSObjectOp op = parent->getClass()->ext.outerObject) - *vp = OBJECT_TO_JSVAL(op(cx, RootedObject(cx, parent))); + *vp = OBJECT_TO_JSVAL(op(cx, parent)); } return true; diff --git a/js/src/shell/jsheaptools.cpp b/js/src/shell/jsheaptools.cpp index b0ab98b93ed7..2c7b4c1af511 100644 --- a/js/src/shell/jsheaptools.cpp +++ b/js/src/shell/jsheaptools.cpp @@ -552,7 +552,8 @@ FindReferences(JSContext *cx, unsigned argc, jsval *vp) /* Given the reversed map, find the referents of target. */ ReferenceFinder finder(cx, reverser); - JSObject *references = finder.findReferences(RootedObject(cx, &target.toObject())); + Rooted targetObj(cx, &target.toObject()); + JSObject *references = finder.findReferences(targetObj); if (!references) return false; diff --git a/js/src/vm/ArgumentsObject.cpp b/js/src/vm/ArgumentsObject.cpp index 6867fb7f953d..fed1741486ff 100644 --- a/js/src/vm/ArgumentsObject.cpp +++ b/js/src/vm/ArgumentsObject.cpp @@ -203,7 +203,7 @@ ArgSetter(JSContext *cx, HandleObject obj, HandleId id, JSBool strict, Value *vp */ RootedValue value(cx); return baseops::DeleteGeneric(cx, obj, id, value.address(), false) && - baseops::DefineProperty(cx, obj, id, vp, NULL, NULL, JSPROP_ENUMERATE); + baseops::DefineGeneric(cx, obj, id, vp, NULL, NULL, JSPROP_ENUMERATE); } static JSBool @@ -233,7 +233,7 @@ args_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags, } Value undef = UndefinedValue(); - if (!baseops::DefineProperty(cx, argsobj, id, &undef, ArgGetter, ArgSetter, attrs)) + if (!baseops::DefineGeneric(cx, argsobj, id, &undef, ArgGetter, ArgSetter, attrs)) return JS_FALSE; *objp = argsobj; @@ -282,7 +282,8 @@ NormalArgumentsObject::optimizedGetElem(JSContext *cx, StackFrame *fp, const Val if (!proto) return false; - return proto->getGeneric(cx, RootedId(cx, id), vp); + Rooted root(cx, id); + return proto->getGeneric(cx, root, vp); } static JSBool @@ -396,7 +397,7 @@ strictargs_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags, } Value undef = UndefinedValue(); - if (!baseops::DefineProperty(cx, argsobj, id, &undef, getter, setter, attrs)) + if (!baseops::DefineGeneric(cx, argsobj, id, &undef, getter, setter, attrs)) return false; *objp = argsobj; diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp index b3b7d07ed878..d9d868b1b98f 100644 --- a/js/src/vm/Debugger.cpp +++ b/js/src/vm/Debugger.cpp @@ -840,7 +840,7 @@ Debugger::parseResumptionValue(AutoCompartment &ac, bool ok, const Value &rv, Va /* Check that rv is {return: val} or {throw: val}. */ JSContext *cx = ac.context; - JSObject *obj; + Rooted obj(cx); const Shape *shape; jsid returnId = NameToId(cx->runtime->atomState.returnAtom); jsid throwId = NameToId(cx->runtime->atomState.throwAtom); @@ -878,11 +878,13 @@ CallMethodIfPresent(JSContext *cx, HandleObject obj, const char *name, int argc, { rval->setUndefined(); JSAtom *atom = js_Atomize(cx, name, strlen(name)); + if (!atom) + return false; + + Rooted id(cx, AtomToId(atom)); Value fval; - return atom && - GetMethod(cx, obj, RootedId(cx, AtomToId(atom)), 0, &fval) && - (!js_IsCallable(fval) || - Invoke(cx, ObjectValue(*obj), fval, argc, argv, rval)); + return GetMethod(cx, obj, id, 0, &fval) && + (!js_IsCallable(fval) || Invoke(cx, ObjectValue(*obj), fval, argc, argv, rval)); } JSTrapStatus @@ -1128,7 +1130,8 @@ Debugger::onTrap(JSContext *cx, Value *vp) if (!dbg->getScriptFrame(cx, fp, &argv[0])) return dbg->handleUncaughtException(ac, vp, false); Value rv; - bool ok = CallMethodIfPresent(cx, RootedObject(cx, bp->handler), "hit", 1, argv, &rv); + Rooted handler(cx, bp->handler); + bool ok = CallMethodIfPresent(cx, handler, "hit", 1, argv, &rv); JSTrapStatus st = dbg->parseResumptionValue(ac, ok, rv, vp, true); if (st != JSTRAP_CONTINUE) return st; @@ -2319,7 +2322,8 @@ Debugger::findScripts(JSContext *cx, unsigned argc, Value *vp) result->ensureDenseArrayInitializedLength(cx, 0, scripts.length()); for (size_t i = 0; i < scripts.length(); i++) { - JSObject *scriptObject = dbg->wrapScript(cx, Rooted(cx, scripts[i])); + JSObject *scriptObject = + dbg->wrapScript(cx, Handle::fromMarkedLocation(&scripts[i])); if (!scriptObject) return false; result->setDenseArrayElement(i, ObjectValue(*scriptObject)); @@ -2537,11 +2541,13 @@ DebuggerScript_getChildScripts(JSContext *cx, unsigned argc, Value *vp) * It is not really a child script of this script, so skip it. */ ObjectArray *objects = script->objects(); + Rooted script(cx); for (uint32_t i = script->savedCallerFun ? 1 : 0; i < objects->length; i++) { JSObject *obj = objects->vector[i]; if (obj->isFunction()) { JSFunction *fun = static_cast(obj); - JSObject *s = dbg->wrapScript(cx, Rooted(cx, fun->script())); + script = fun->script(); + JSObject *s = dbg->wrapScript(cx, script); if (!s || !js_NewbornArrayPush(cx, result, ObjectValue(*s))) return false; } @@ -3208,7 +3214,7 @@ DebuggerFrame_getArguments(JSContext *cx, unsigned argc, Value *vp) SetReservedSlot(argsobj, JSSLOT_DEBUGARGUMENTS_FRAME, ObjectValue(*thisobj)); JS_ASSERT(fp->numActualArgs() <= 0x7fffffff); - int32_t fargc = int32_t(fp->numActualArgs()); + unsigned fargc = fp->numActualArgs(); if (!DefineNativeProperty(cx, argsobj, cx->runtime->atomState.lengthAtom, Int32Value(fargc), NULL, NULL, JSPROP_PERMANENT | JSPROP_READONLY, 0, 0)) @@ -3216,12 +3222,16 @@ DebuggerFrame_getArguments(JSContext *cx, unsigned argc, Value *vp) return false; } - for (int32_t i = 0; i < fargc; i++) { + Rooted id(cx); + for (unsigned i = 0; i < fargc; i++) { RootedFunction getobj(cx); getobj = js_NewFunction(cx, NULL, DebuggerArguments_getArg, 0, 0, global, NULL, JSFunction::ExtendedFinalizeKind); + if (!getobj) + return false; + id = INT_TO_JSID(i); if (!getobj || - !DefineNativeProperty(cx, argsobj, RootedId(cx, INT_TO_JSID(i)), UndefinedValue(), + !DefineNativeProperty(cx, argsobj, id, UndefinedValue(), JS_DATA_TO_FUNC_PTR(PropertyOp, getobj.reference()), NULL, JSPROP_ENUMERATE | JSPROP_SHARED | JSPROP_GETTER, 0, 0)) { @@ -3247,7 +3257,8 @@ DebuggerFrame_getScript(JSContext *cx, unsigned argc, Value *vp) if (fp->isFunctionFrame() && !fp->isEvalFrame()) { JSFunction &callee = fp->callee(); if (callee.isInterpreted()) { - scriptObject = debug->wrapScript(cx, Rooted(cx, callee.script())); + Rooted script(cx, callee.script()); + scriptObject = debug->wrapScript(cx, script); if (!scriptObject) return false; } @@ -3256,8 +3267,8 @@ DebuggerFrame_getScript(JSContext *cx, unsigned argc, Value *vp) * We got eval, JS_Evaluate*, or JS_ExecuteScript non-function script * frames. */ - JSScript *script = fp->script(); - scriptObject = debug->wrapScript(cx, Rooted(cx, script)); + Rooted script(cx, fp->script()); + scriptObject = debug->wrapScript(cx, script); if (!scriptObject) return false; } @@ -3447,7 +3458,8 @@ DebuggerFrameEval(JSContext *cx, unsigned argc, Value *vp, EvalBindingsMode mode } for (size_t i = 0; i < keys.length(); i++) { Value *valp = &values[i]; - if (!bindingsobj->getGeneric(cx, bindingsobj, RootedId(cx, keys[i]), valp) || + if (!bindingsobj->getGeneric(cx, bindingsobj, + Handle::fromMarkedLocation(&keys[i]), valp) || !dbg->unwrapDebuggeeValue(cx, valp)) { return false; @@ -3716,7 +3728,8 @@ DebuggerObject_getScript(JSContext *cx, unsigned argc, Value *vp) return true; } - JSObject *scriptObject = dbg->wrapScript(cx, Rooted(cx, fun->script())); + Rooted script(cx, fun->script()); + JSObject *scriptObject = dbg->wrapScript(cx, script); if (!scriptObject) return false; @@ -3919,8 +3932,11 @@ DebuggerObject_defineProperties(JSContext *cx, unsigned argc, Value *vp) ErrorCopier ec(ac, dbg->toJSObject()); for (size_t i = 0; i < n; i++) { bool dummy; - if (!DefineProperty(cx, obj, RootedId(cx, rewrappedIds[i]), rewrappedDescs[i], true, &dummy)) + if (!DefineProperty(cx, obj, Handle::fromMarkedLocation(&rewrappedIds[i]), + rewrappedDescs[i], true, &dummy)) + { return false; + } } } diff --git a/js/src/vm/RegExpObject.cpp b/js/src/vm/RegExpObject.cpp index 0f1f471b2f80..3ab9e592af3d 100644 --- a/js/src/vm/RegExpObject.cpp +++ b/js/src/vm/RegExpObject.cpp @@ -97,14 +97,16 @@ RegExpObjectBuilder::clone(Handle other, Handle RegExpFlag staticsFlags = res->getFlags(); if ((origFlags & staticsFlags) != staticsFlags) { RegExpFlag newFlags = RegExpFlag(origFlags | staticsFlags); - return build(Rooted(cx, other->getSource()), newFlags); + Rooted source(cx, other->getSource()); + return build(source, newFlags); } RegExpGuard g; if (!other->getShared(cx, &g)) return NULL; - return build(RootedAtom(cx, other->getSource()), *g); + Rooted source(cx, other->getSource()); + return build(source, *g); } /* MatchPairs */ @@ -618,14 +620,12 @@ RegExpCompartment::get(JSContext *cx, JSAtom *atom, JSString *opt, RegExpGuard * /* Functions */ JSObject * -js::CloneRegExpObject(JSContext *cx, JSObject *obj, JSObject *proto) +js::CloneRegExpObject(JSContext *cx, JSObject *obj_, JSObject *proto_) { - JS_ASSERT(obj->isRegExp()); - JS_ASSERT(proto->isRegExp()); - RegExpObjectBuilder builder(cx); - return builder.clone(Rooted(cx, &obj->asRegExp()), - Rooted(cx, &proto->asRegExp())); + Rooted regex(cx, &obj_->asRegExp()); + Rooted proto(cx, &proto_->asRegExp()); + return builder.clone(regex, proto); } bool diff --git a/js/src/vm/ScopeObject.cpp b/js/src/vm/ScopeObject.cpp index 06369efd6780..245e6f6dbbbc 100644 --- a/js/src/vm/ScopeObject.cpp +++ b/js/src/vm/ScopeObject.cpp @@ -119,7 +119,8 @@ CallObject::create(JSContext *cx, JSScript *script, HandleObject enclosing, Hand */ if (&enclosing->global() != obj->getParent()) { JS_ASSERT(obj->getParent() == NULL); - if (!JSObject::setParent(cx, obj, RootedObject(cx, &enclosing->global()))) + Rooted global(cx, &enclosing->global()); + if (!JSObject::setParent(cx, obj, global)) return NULL; } @@ -158,7 +159,8 @@ CallObject::createForFunction(JSContext *cx, StackFrame *fp) } RootedScript script(cx, fp->script()); - CallObject *callobj = create(cx, script, scopeChain, RootedFunction(cx, &fp->callee())); + Rooted callee(cx, &fp->callee()); + CallObject *callobj = create(cx, script, scopeChain, callee); if (!callobj) return NULL; @@ -212,7 +214,8 @@ CallObject::createForStrictEval(JSContext *cx, StackFrame *fp) JS_ASSERT(cx->fp() == fp); JS_ASSERT(cx->regs().pc == fp->script()->code); - return create(cx, fp->script(), fp->scopeChain(), RootedFunction(cx)); + Rooted callee(cx, NULL); + return create(cx, fp->script(), fp->scopeChain(), callee); } JSBool @@ -303,8 +306,8 @@ DeclEnvObject::create(JSContext *cx, StackFrame *fp) return NULL; - if (!DefineNativeProperty(cx, obj, RootedId(cx, AtomToId(fp->fun()->atom)), - ObjectValue(fp->callee()), NULL, NULL, + Rooted id(cx, AtomToId(fp->fun()->atom)); + if (!DefineNativeProperty(cx, obj, id, ObjectValue(fp->callee()), NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY, 0, 0)) { return NULL; @@ -354,7 +357,8 @@ with_LookupGeneric(JSContext *cx, HandleObject obj, HandleId id, JSObject **objp static JSBool with_LookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - return with_LookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); + Rooted id(cx, NameToId(name)); + return with_LookupGeneric(cx, obj, id, objp, propp); } static JSBool @@ -370,7 +374,8 @@ with_LookupElement(JSContext *cx, HandleObject obj, uint32_t index, JSObject **o static JSBool with_LookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - return with_LookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return with_LookupGeneric(cx, obj, id, objp, propp); } static JSBool @@ -382,7 +387,8 @@ with_GetGeneric(JSContext *cx, HandleObject obj, HandleObject receiver, HandleId static JSBool with_GetProperty(JSContext *cx, HandleObject obj, HandleObject receiver, HandlePropertyName name, Value *vp) { - return with_GetGeneric(cx, obj, receiver, RootedId(cx, NameToId(name)), vp); + Rooted id(cx, NameToId(name)); + return with_GetGeneric(cx, obj, receiver, id, vp); } static JSBool @@ -397,7 +403,8 @@ with_GetElement(JSContext *cx, HandleObject obj, HandleObject receiver, uint32_t static JSBool with_GetSpecial(JSContext *cx, HandleObject obj, HandleObject receiver, HandleSpecialId sid, Value *vp) { - return with_GetGeneric(cx, obj, receiver, RootedId(cx, SPECIALID_TO_JSID(sid)), vp); + Rooted id(cx, SPECIALID_TO_JSID(sid)); + return with_GetGeneric(cx, obj, receiver, id, vp); } static JSBool @@ -587,7 +594,8 @@ ClonedBlockObject::create(JSContext *cx, Handle block, Stac /* Set the parent if necessary, as for call objects. */ if (&fp->global() != obj->getParent()) { JS_ASSERT(obj->getParent() == NULL); - if (!JSObject::setParent(cx, obj, RootedObject(cx, &fp->global()))) + Rooted global(cx, &fp->global()); + if (!JSObject::setParent(cx, obj, global)) return NULL; } @@ -1325,18 +1333,21 @@ class DebugScopeProxy : public BaseProxyHandler if (handleUnaliasedAccess(cx, scope, id, GET, vp)) return true; - return scope.getGeneric(cx, RootedObject(cx, &scope), RootedId(cx, id), vp); + Rooted scopeObj(cx, &scope); + Rooted idRoot(cx, id); + return scope.getGeneric(cx, scopeObj, idRoot, vp); } - bool set(JSContext *cx, JSObject *proxy, JSObject *receiver, jsid id, bool strict, + bool set(JSContext *cx, JSObject *proxy, JSObject *receiver, jsid id_, bool strict, Value *vp) MOZ_OVERRIDE { ScopeObject &scope = proxy->asDebugScope().scope(); - if (handleUnaliasedAccess(cx, scope, id, SET, vp)) + if (handleUnaliasedAccess(cx, scope, id_, SET, vp)) return true; - return scope.setGeneric(cx, RootedId(cx, id), vp, strict); + Rooted id(cx, id_); + return scope.setGeneric(cx, id, vp, strict); } bool defineProperty(JSContext *cx, JSObject *proxy, jsid id, PropertyDescriptor *desc) MOZ_OVERRIDE diff --git a/js/xpconnect/src/XPCComponents.cpp b/js/xpconnect/src/XPCComponents.cpp index 1093607fdb7b..d9a4474b07da 100644 --- a/js/xpconnect/src/XPCComponents.cpp +++ b/js/xpconnect/src/XPCComponents.cpp @@ -4082,7 +4082,7 @@ nsXPCComponents_Utils::GetGlobalForObject(const JS::Value& object, // a wrapper for the foreign global. So we need to unwrap before getting the // parent, enter the compartment for the duration of the call, and wrap the // result. - JSObject *obj = JSVAL_TO_OBJECT(object); + JS::Rooted obj(cx, JSVAL_TO_OBJECT(object)); obj = js::UnwrapObject(obj); { JSAutoEnterCompartment ac; @@ -4090,12 +4090,12 @@ nsXPCComponents_Utils::GetGlobalForObject(const JS::Value& object, return NS_ERROR_FAILURE; obj = JS_GetGlobalForObject(cx, obj); } - JS_WrapObject(cx, &obj); + JS_WrapObject(cx, obj.address()); *retval = OBJECT_TO_JSVAL(obj); // Outerize if necessary. if (JSObjectOp outerize = js::GetObjectClass(obj)->ext.outerObject) - *retval = OBJECT_TO_JSVAL(outerize(cx, JS::RootedObject(cx, obj))); + *retval = OBJECT_TO_JSVAL(outerize(cx, obj)); return NS_OK; } From 5a59a93dac0f4ee2789f12d06f2dd4018e26da06 Mon Sep 17 00:00:00 2001 From: Ed Morley Date: Thu, 21 Jun 2012 10:00:36 +0100 Subject: [PATCH 009/154] Backout 1c5a8d617bff (bug 765990), 617cb36ead59, b3067d05a76a (bug 760995), 79f9a61a1e43 (bug 426163) for bustage --- dom/base/nsDOMWindowUtils.cpp | 4 +- js/src/builtin/MapObject.cpp | 8 +- js/src/builtin/RegExp.cpp | 20 ++- js/src/frontend/BytecodeEmitter.cpp | 4 +- js/src/frontend/Parser.cpp | 9 +- js/src/gc/Root.h | 13 +- js/src/jsapi.cpp | 107 +++++++--------- js/src/jsarray.cpp | 48 +++----- js/src/jscntxt.h | 2 +- js/src/jscompartment.cpp | 4 +- js/src/jsdate.cpp | 4 +- js/src/jsdbgapi.cpp | 3 +- js/src/jsexn.cpp | 3 +- js/src/jsfriendapi.cpp | 9 +- js/src/jsfun.cpp | 3 +- js/src/jsfuninlines.h | 10 +- js/src/jsinfer.cpp | 4 +- js/src/jsinterp.cpp | 6 +- js/src/jsinterpinlines.h | 18 ++- js/src/jsobj.cpp | 182 ++++++++++++---------------- js/src/jsobj.h | 32 ++--- js/src/jsobjinlines.h | 79 +++++------- js/src/json.cpp | 6 +- js/src/jsonparser.cpp | 3 +- js/src/jsproxy.cpp | 81 +++++-------- js/src/jsscope.cpp | 4 +- js/src/jsscript.cpp | 3 +- js/src/jsscript.h | 3 +- js/src/jsstr.cpp | 24 ++-- js/src/jstypedarray.cpp | 87 +++++-------- js/src/jswrapper.cpp | 17 +-- js/src/jsxml.cpp | 104 +++++++--------- js/src/methodjit/Compiler.cpp | 61 +++++----- js/src/methodjit/FastOps.cpp | 4 +- js/src/methodjit/PolyIC.cpp | 13 +- js/src/methodjit/StubCalls.cpp | 21 ++-- js/src/shell/js.cpp | 13 +- js/src/shell/jsheaptools.cpp | 3 +- js/src/vm/ArgumentsObject.cpp | 9 +- js/src/vm/Debugger.cpp | 50 +++----- js/src/vm/RegExpObject.cpp | 16 +-- js/src/vm/ScopeObject.cpp | 39 +++--- js/xpconnect/src/XPCComponents.cpp | 6 +- mfbt/Assertions.h | 36 +----- mfbt/HashFunctions.cpp | 1 - mfbt/HashFunctions.h | 1 - mfbt/Scoped.h | 10 +- 47 files changed, 472 insertions(+), 715 deletions(-) diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp index 6d69e267dacb..346deb715b30 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp @@ -1825,13 +1825,13 @@ nsDOMWindowUtils::GetParent(const JS::Value& aObject, return NS_ERROR_XPC_BAD_CONVERT_JS; } - JS::Rooted parent(aCx, JS_GetParent(JSVAL_TO_OBJECT(aObject))); + JSObject* parent = JS_GetParent(JSVAL_TO_OBJECT(aObject)); *aParent = OBJECT_TO_JSVAL(parent); // Outerize if necessary. if (parent) { if (JSObjectOp outerize = js::GetObjectClass(parent)->ext.outerObject) { - *aParent = OBJECT_TO_JSVAL(outerize(aCx, parent)); + *aParent = OBJECT_TO_JSVAL(outerize(aCx, JS::RootedObject(aCx, parent))); } } diff --git a/js/src/builtin/MapObject.cpp b/js/src/builtin/MapObject.cpp index a7893d5d6e8c..9fca8d2a5ec3 100644 --- a/js/src/builtin/MapObject.cpp +++ b/js/src/builtin/MapObject.cpp @@ -155,8 +155,8 @@ JSFunctionSpec MapObject::methods[] = { JSObject * MapObject::initClass(JSContext *cx, JSObject *obj) { - Rooted global(cx, &obj->asGlobal()); - return InitClass(cx, global, &class_, JSProto_Map, construct, methods); + return InitClass(cx, Rooted(cx, &obj->asGlobal()), + &class_, JSProto_Map, construct, methods); } void @@ -348,8 +348,8 @@ JSFunctionSpec SetObject::methods[] = { JSObject * SetObject::initClass(JSContext *cx, JSObject *obj) { - Rooted global(cx, &obj->asGlobal()); - return InitClass(cx, global, &class_, JSProto_Set, construct, methods); + return InitClass(cx, Rooted(cx, &obj->asGlobal()), + &class_, JSProto_Set, construct, methods); } void diff --git a/js/src/builtin/RegExp.cpp b/js/src/builtin/RegExp.cpp index 20e278283bc2..6d1a611b04ae 100644 --- a/js/src/builtin/RegExp.cpp +++ b/js/src/builtin/RegExp.cpp @@ -23,8 +23,8 @@ class RegExpMatchBuilder JSContext * const cx; RootedObject array; - bool setProperty(Handle name, Value v) { - return !!baseops::DefineProperty(cx, array, name, &v, + bool setProperty(JSAtom *name, Value v) { + return !!baseops::DefineProperty(cx, array, RootedId(cx, AtomToId(name)), &v, JS_PropertyStub, JS_StrictPropertyStub, JSPROP_ENUMERATE); } @@ -38,14 +38,12 @@ class RegExpMatchBuilder } bool setIndex(int index) { - Rooted name(cx, cx->runtime->atomState.indexAtom); - return setProperty(name, Int32Value(index)); + return setProperty(cx->runtime->atomState.indexAtom, Int32Value(index)); } bool setInput(JSString *str) { JS_ASSERT(str); - Rooted name(cx, cx->runtime->atomState.inputAtom); - return setProperty(name, StringValue(str)); + return setProperty(cx->runtime->atomState.inputAtom, StringValue(str)); } }; @@ -196,8 +194,8 @@ CompileRegExpObject(JSContext *cx, RegExpObjectBuilder &builder, CallArgs args) { if (args.length() == 0) { RegExpStatics *res = cx->regExpStatics(); - Rooted empty(cx, cx->runtime->emptyString); - RegExpObject *reobj = builder.build(empty, res->getFlags()); + RegExpObject *reobj = builder.build(RootedAtom(cx, cx->runtime->emptyString), + res->getFlags()); if (!reobj) return false; args.rval() = ObjectValue(*reobj); @@ -244,8 +242,7 @@ CompileRegExpObject(JSContext *cx, RegExpObjectBuilder &builder, CallArgs args) if (!sourceObj.getProperty(cx, cx->runtime->atomState.sourceAtom, &v)) return false; - Rooted sourceAtom(cx, &v.toString()->asAtom()); - RegExpObject *reobj = builder.build(sourceAtom, flags); + RegExpObject *reobj = builder.build(RootedAtom(cx, &v.toString()->asAtom()), flags); if (!reobj) return false; @@ -465,8 +462,7 @@ js_InitRegExpClass(JSContext *cx, JSObject *obj) proto->setPrivate(NULL); RegExpObjectBuilder builder(cx, &proto->asRegExp()); - Rooted empty(cx, cx->runtime->emptyString); - if (!builder.build(empty, RegExpFlag(0))) + if (!builder.build(RootedAtom(cx, cx->runtime->emptyString), RegExpFlag(0))) return NULL; if (!DefinePropertiesAndBrand(cx, proto, NULL, regexp_methods)) diff --git a/js/src/frontend/BytecodeEmitter.cpp b/js/src/frontend/BytecodeEmitter.cpp index 8710dfe41e39..208967f7077b 100644 --- a/js/src/frontend/BytecodeEmitter.cpp +++ b/js/src/frontend/BytecodeEmitter.cpp @@ -5614,8 +5614,8 @@ EmitObject(JSContext *cx, BytecodeEmitter *bce, ParseNode *pn) if (obj) { JS_ASSERT(!obj->inDictionaryMode()); - Rooted id(cx, AtomToId(pn3->pn_atom)); - if (!DefineNativeProperty(cx, obj, id, UndefinedValue(), NULL, NULL, + if (!DefineNativeProperty(cx, obj, RootedId(cx, AtomToId(pn3->pn_atom)), + UndefinedValue(), NULL, NULL, JSPROP_ENUMERATE, 0, 0)) { return false; diff --git a/js/src/frontend/Parser.cpp b/js/src/frontend/Parser.cpp index fcc4e6733f33..1448986fc340 100644 --- a/js/src/frontend/Parser.cpp +++ b/js/src/frontend/Parser.cpp @@ -540,8 +540,7 @@ BindLocalVariable(JSContext *cx, TreeContext *tc, ParseNode *pn, BindingKind kin JS_ASSERT(kind == VARIABLE || kind == CONSTANT); unsigned index = tc->sc->bindings.numVars(); - Rooted atom(cx, pn->pn_atom); - if (!tc->sc->bindings.add(cx, atom, kind)) + if (!tc->sc->bindings.add(cx, RootedAtom(cx, pn->pn_atom), kind)) return false; if (!pn->pn_cookie.set(cx, tc->staticLevel, index)) @@ -605,7 +604,7 @@ Parser::functionBody(FunctionBodyType type) if (!CheckStrictParameters(context, this)) return NULL; - Rooted arguments(context, context->runtime->atomState.argumentsAtom); + Rooted const arguments(context, context->runtime->atomState.argumentsAtom); /* * Non-top-level functions use JSOP_DEFFUN which is a dynamic scope @@ -6852,8 +6851,8 @@ Parser::primaryExpr(TokenKind tt, bool afterDoubleDot) pn->pn_xflags |= PNX_NONCONST; /* NB: Getter function in { get x(){} } is unnamed. */ - Rooted funName(context, NULL); - pn2 = functionDef(funName, op == JSOP_GETTER ? Getter : Setter, Expression); + pn2 = functionDef(RootedPropertyName(context, NULL), + op == JSOP_GETTER ? Getter : Setter, Expression); if (!pn2) return NULL; TokenPos pos = {begin, pn2->pn_pos.end}; diff --git a/js/src/gc/Root.h b/js/src/gc/Root.h index 4505ab1d3acb..6b87ca8e60f9 100644 --- a/js/src/gc/Root.h +++ b/js/src/gc/Root.h @@ -96,7 +96,7 @@ class Handle * Construct a handle from an explicitly rooted location. This is the * normal way to create a handle, and normally happens implicitly. */ - template inline Handle(Rooted &root); + template inline Handle(const Rooted &root); const T *address() const { return ptr; } T value() const { return *ptr; } @@ -163,6 +163,15 @@ class Rooted Rooted(JSContext *cx) { init(cx, RootMethods::initial()); } Rooted(JSContext *cx, T initial) { init(cx, initial); } + /* + * This method is only necessary due to an obscure C++98 requirement (that + * there be an accessible, usable copy constructor when passing a temporary + * to an implicitly-called constructor for use with a const-ref parameter). + * (Head spinning yet?) We can remove this when we build the JS engine + * with -std=c++11. + */ + operator Handle () const { return Handle(*this); } + ~Rooted() { #if defined(JSGC_ROOT_ANALYSIS) || defined(JSGC_USE_EXACT_ROOTING) @@ -208,7 +217,7 @@ class Rooted template template inline -Handle::Handle(Rooted &root) +Handle::Handle(const Rooted &root) { testAssign(); ptr = reinterpret_cast(root.address()); diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index a56918e823b6..18015169e533 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -1779,8 +1779,7 @@ JS_InitStandardClasses(JSContext *cx, JSObject *obj) assertSameCompartment(cx, obj); - Rooted global(cx, &obj->global()); - return GlobalObject::initStandardClasses(cx, global); + return GlobalObject::initStandardClasses(cx, Rooted(cx, &obj->global())); } #define CLASP(name) (&name##Class) @@ -3144,7 +3143,7 @@ JS_ConvertStub(JSContext *cx, JSHandleObject obj, JSType type, jsval *vp) { JS_ASSERT(type != JSTYPE_OBJECT && type != JSTYPE_FUNCTION); JS_ASSERT(obj); - return DefaultValue(cx, obj, type, vp); + return DefaultValue(cx, RootedObject(cx, obj), type, vp); } JS_PUBLIC_API(JSObject *) @@ -3232,15 +3231,12 @@ JS_GetPrototype(JSObject *obj) } JS_PUBLIC_API(JSBool) -JS_SetPrototype(JSContext *cx, JSObject *obj_, JSObject *proto_) +JS_SetPrototype(JSContext *cx, JSObject *obj, JSObject *proto) { AssertNoGC(cx); CHECK_REQUEST(cx); - assertSameCompartment(cx, obj_, proto_); - - Rooted obj(cx, obj_); - Rooted proto(cx, proto_); - return SetProto(cx, obj, proto, JS_FALSE); + assertSameCompartment(cx, obj, proto); + return SetProto(cx, RootedObject(cx, obj), RootedObject(cx, proto), JS_FALSE); } JS_PUBLIC_API(JSObject *) @@ -3251,17 +3247,14 @@ JS_GetParent(JSObject *obj) } JS_PUBLIC_API(JSBool) -JS_SetParent(JSContext *cx, JSObject *obj_, JSObject *parent_) +JS_SetParent(JSContext *cx, JSObject *obj, JSObject *parent) { AssertNoGC(cx); CHECK_REQUEST(cx); - JS_ASSERT(!obj_->isScope()); - JS_ASSERT(parent_ || !obj_->getParent()); - assertSameCompartment(cx, obj_, parent_); - - Rooted obj(cx, obj_); - Rooted parent(cx, parent_); - return JSObject::setParent(cx, obj, parent); + JS_ASSERT(!obj->isScope()); + JS_ASSERT(parent || !obj->getParent()); + assertSameCompartment(cx, obj, parent); + return JSObject::setParent(cx, RootedObject(cx, obj), RootedObject(cx, parent)); } JS_PUBLIC_API(JSObject *) @@ -3811,15 +3804,12 @@ JS_DefineUCPropertyWithTinyId(JSContext *cx, JSObject *obj, const jschar *name, } JS_PUBLIC_API(JSBool) -JS_DefineOwnProperty(JSContext *cx, JSObject *obj_, jsid id_, jsval descriptor, JSBool *bp) +JS_DefineOwnProperty(JSContext *cx, JSObject *obj, jsid id, jsval descriptor, JSBool *bp) { AssertNoGC(cx); CHECK_REQUEST(cx); - assertSameCompartment(cx, obj_, id_, descriptor); - - Rooted obj(cx, obj_); - Rooted id(cx, id_); - return js_DefineOwnProperty(cx, obj, id, descriptor, bp); + assertSameCompartment(cx, obj, id, descriptor); + return js_DefineOwnProperty(cx, RootedObject(cx, obj), RootedId(cx, id), descriptor, bp); } JS_PUBLIC_API(JSObject *) @@ -3995,14 +3985,11 @@ JS_GetUCPropertyAttrsGetterAndSetter(JSContext *cx, JSObject *obj, } JS_PUBLIC_API(JSBool) -JS_GetOwnPropertyDescriptor(JSContext *cx, JSObject *obj_, jsid id_, jsval *vp) +JS_GetOwnPropertyDescriptor(JSContext *cx, JSObject *obj, jsid id, jsval *vp) { AssertNoGC(cx); CHECK_REQUEST(cx); - - Rooted obj(cx, obj_); - Rooted id(cx, id_); - return GetOwnPropertyDescriptor(cx, obj, id, vp); + return GetOwnPropertyDescriptor(cx, RootedObject(cx, obj), RootedId(cx, id), vp); } static JSBool @@ -4031,8 +4018,7 @@ JS_SetPropertyAttributes(JSContext *cx, JSObject *obj, const char *name, unsigned attrs, JSBool *foundp) { JSAtom *atom = js_Atomize(cx, name, strlen(name)); - Rooted id(cx, AtomToId(atom)); - return atom && SetPropertyAttributesById(cx, obj, id, attrs, foundp); + return atom && SetPropertyAttributesById(cx, obj, RootedId(cx, AtomToId(atom)), attrs, foundp); } JS_PUBLIC_API(JSBool) @@ -4040,8 +4026,7 @@ JS_SetUCPropertyAttributes(JSContext *cx, JSObject *obj, const jschar *name, siz unsigned attrs, JSBool *foundp) { JSAtom *atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen)); - Rooted id(cx, AtomToId(atom)); - return atom && SetPropertyAttributesById(cx, obj, id, attrs, foundp); + return atom && SetPropertyAttributesById(cx, obj, RootedId(cx, AtomToId(atom)), attrs, foundp); } JS_PUBLIC_API(JSBool) @@ -4065,11 +4050,9 @@ JS_ForwardGetPropertyTo(JSContext *cx, JSObject *obj, jsid id_, JSObject *onBeha } JS_PUBLIC_API(JSBool) -JS_GetPropertyByIdDefault(JSContext *cx, JSObject *obj_, jsid id_, jsval def, jsval *vp) +JS_GetPropertyByIdDefault(JSContext *cx, JSObject *obj, jsid id, jsval def, jsval *vp) { - Rooted obj(cx, obj_); - Rooted id(cx, id_); - return baseops::GetPropertyDefault(cx, obj, id, def, vp); + return baseops::GetPropertyDefault(cx, RootedObject(cx, obj), RootedId(cx, id), def, vp); } JS_PUBLIC_API(JSBool) @@ -4201,10 +4184,8 @@ JS_DeletePropertyById2(JSContext *cx, JSObject *obj, jsid id, jsval *rval) assertSameCompartment(cx, obj, id); JSAutoResolveFlags rf(cx, JSRESOLVE_QUALIFIED); - if (JSID_IS_SPECIAL(id)) { - Rooted sid(cx, JSID_TO_SPECIALID(id)); - return obj->deleteSpecial(cx, sid, rval, false); - } + if (JSID_IS_SPECIAL(id)) + return obj->deleteSpecial(cx, Rooted(cx, JSID_TO_SPECIALID(id)), rval, false); return obj->deleteByValue(cx, IdToValue(id), rval, false); } @@ -4450,14 +4431,12 @@ JS_NextProperty(JSContext *cx, JSObject *iterobj, jsid *idp) } JS_PUBLIC_API(JSObject *) -JS_NewElementIterator(JSContext *cx, JSObject *obj_) +JS_NewElementIterator(JSContext *cx, JSObject *obj) { AssertNoGC(cx); CHECK_REQUEST(cx); - assertSameCompartment(cx, obj_); - - Rooted obj(cx, obj_); - return ElementIteratorObject::create(cx, obj); + assertSameCompartment(cx, obj); + return ElementIteratorObject::create(cx, RootedObject(cx, obj)); } JS_PUBLIC_API(JSObject *) @@ -4749,8 +4728,6 @@ JS_DefineFunctions(JSContext *cx, JSObject *obj_, JSFunctionSpec *fs) if (!atom) return JS_FALSE; - Rooted id(cx, AtomToId(atom)); - /* * Define a generic arity N+1 static method for the arity N prototype * method if flags contains JSFUN_GENERIC_NATIVE. @@ -4763,8 +4740,11 @@ JS_DefineFunctions(JSContext *cx, JSObject *obj_, JSFunctionSpec *fs) } flags &= ~JSFUN_GENERIC_NATIVE; - fun = js_DefineFunction(cx, ctor, id, js_generic_native_method_dispatcher, - fs->nargs + 1, flags, JSFunction::ExtendedFinalizeKind); + fun = js_DefineFunction(cx, ctor, RootedId(cx, AtomToId(atom)), + js_generic_native_method_dispatcher, + fs->nargs + 1, + flags, + JSFunction::ExtendedFinalizeKind); if (!fun) return JS_FALSE; @@ -4775,7 +4755,8 @@ JS_DefineFunctions(JSContext *cx, JSObject *obj_, JSFunctionSpec *fs) fun->setExtendedSlot(0, PrivateValue(fs)); } - fun = js_DefineFunction(cx, obj, id, fs->call, fs->nargs, flags); + fun = js_DefineFunction(cx, obj, + RootedId(cx, AtomToId(atom)), fs->call, fs->nargs, flags); if (!fun) return JS_FALSE; } @@ -4795,8 +4776,7 @@ JS_DefineFunction(JSContext *cx, JSObject *obj_, const char *name, JSNative call JSAtom *atom = js_Atomize(cx, name, strlen(name)); if (!atom) return NULL; - Rooted id(cx, AtomToId(atom)); - return js_DefineFunction(cx, obj, id, call, nargs, attrs); + return js_DefineFunction(cx, obj, RootedId(cx, AtomToId(atom)), call, nargs, attrs); } JS_PUBLIC_API(JSFunction *) @@ -4813,8 +4793,7 @@ JS_DefineUCFunction(JSContext *cx, JSObject *obj_, JSAtom *atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen)); if (!atom) return NULL; - Rooted id(cx, AtomToId(atom)); - return js_DefineFunction(cx, obj, id, call, nargs, attrs); + return js_DefineFunction(cx, obj, RootedId(cx, AtomToId(atom)), call, nargs, attrs); } extern JS_PUBLIC_API(JSFunction *) @@ -5189,10 +5168,11 @@ CompileUCFunctionForPrincipalsCommon(JSContext *cx, JSObject *obj_, return NULL; } - if (obj && funAtom) { - Rooted id(cx, AtomToId(funAtom)); - if (!obj->defineGeneric(cx, id, ObjectValue(*fun), NULL, NULL, JSPROP_ENUMERATE)) - return NULL; + if (obj && funAtom && + !obj->defineGeneric(cx, RootedId(cx, AtomToId(funAtom)), ObjectValue(*fun), NULL, NULL, + JSPROP_ENUMERATE)) + { + return NULL; } return fun; @@ -5491,11 +5471,8 @@ JS_CallFunctionName(JSContext *cx, JSObject *obj_, const char *name, unsigned ar Value v; JSAtom *atom = js_Atomize(cx, name, strlen(name)); - if (!atom) - return false; - - Rooted id(cx, AtomToId(atom)); - return GetMethod(cx, obj, id, 0, &v) && + return atom && + GetMethod(cx, obj, RootedId(cx, AtomToId(atom)), 0, &v) && Invoke(cx, ObjectOrNullValue(obj), v, argc, argv, rval); } @@ -5874,9 +5851,7 @@ JS_ConcatStrings(JSContext *cx, JSString *left, JSString *right) { AssertNoGC(cx); CHECK_REQUEST(cx); - Rooted lstr(cx, left); - Rooted rstr(cx, right); - return js_ConcatStrings(cx, lstr, rstr); + return js_ConcatStrings(cx, RootedString(cx, left), RootedString(cx, right)); } JS_PUBLIC_API(const jschar *) diff --git a/js/src/jsarray.cpp b/js/src/jsarray.cpp index b371aae0c07a..6e444f31aa86 100644 --- a/js/src/jsarray.cpp +++ b/js/src/jsarray.cpp @@ -716,8 +716,7 @@ static JSBool array_lookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - Rooted id(cx, NameToId(name)); - return array_lookupGeneric(cx, obj, id, objp, propp); + return array_lookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); } static JSBool @@ -745,8 +744,7 @@ static JSBool array_lookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return array_lookupGeneric(cx, obj, id, objp, propp); + return array_lookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); } JSBool @@ -777,10 +775,8 @@ array_getProperty(JSContext *cx, HandleObject obj, HandleObject receiver, Handle return true; } - if (!obj->isDenseArray()) { - Rooted id(cx, NameToId(name)); - return baseops::GetProperty(cx, obj, receiver, id, vp); - } + if (!obj->isDenseArray()) + return baseops::GetProperty(cx, obj, receiver, RootedId(cx, NameToId(name)), vp); JSObject *proto = obj->getProto(); if (!proto) { @@ -825,8 +821,7 @@ array_getSpecial(JSContext *cx, HandleObject obj, HandleObject receiver, HandleS return true; } - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return baseops::GetProperty(cx, obj, receiver, id, vp); + return baseops::GetProperty(cx, obj, receiver, RootedId(cx, SPECIALID_TO_JSID(sid)), vp); } static JSBool @@ -838,9 +833,9 @@ array_getGeneric(JSContext *cx, HandleObject obj, HandleObject receiver, HandleI if (IsDefinitelyIndex(idval, &index)) return array_getElement(cx, obj, receiver, index, vp); - Rooted sid(cx); - if (ValueIsSpecial(obj, &idval, sid.address(), cx)) - return array_getSpecial(cx, obj, receiver, sid, vp); + SpecialId sid; + if (ValueIsSpecial(obj, &idval, &sid, cx)) + return array_getSpecial(cx, obj, receiver, Rooted(cx, sid), vp); JSAtom *atom = ToAtom(cx, idval); if (!atom) @@ -849,8 +844,7 @@ array_getGeneric(JSContext *cx, HandleObject obj, HandleObject receiver, HandleI if (atom->isIndex(&index)) return array_getElement(cx, obj, receiver, index, vp); - Rooted name(cx, atom->asPropertyName()); - return array_getProperty(cx, obj, receiver, name, vp); + return array_getProperty(cx, obj, receiver, RootedPropertyName(cx, atom->asPropertyName()), vp); } static JSBool @@ -910,8 +904,7 @@ array_setGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *vp, JSBool static JSBool array_setProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *vp, JSBool strict) { - Rooted id(cx, NameToId(name)); - return array_setGeneric(cx, obj, id, vp, strict); + return array_setGeneric(cx, obj, RootedId(cx, NameToId(name)), vp, strict); } static JSBool @@ -956,8 +949,7 @@ array_setElement(JSContext *cx, HandleObject obj, uint32_t index, Value *vp, JSB static JSBool array_setSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *vp, JSBool strict) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return array_setGeneric(cx, obj, id, vp, strict); + return array_setGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); } JSBool @@ -990,7 +982,7 @@ array_defineGeneric(JSContext *cx, HandleObject obj, HandleId id, const Value *v return JS_TRUE; if (!obj->isDenseArray()) - return baseops::DefineGeneric(cx, obj, id, value, getter, setter, attrs); + return baseops::DefineProperty(cx, obj, id, value, getter, setter, attrs); do { uint32_t i = 0; // init to shut GCC up @@ -1016,15 +1008,14 @@ array_defineGeneric(JSContext *cx, HandleObject obj, HandleId id, const Value *v if (!JSObject::makeDenseArraySlow(cx, obj)) return false; - return baseops::DefineGeneric(cx, obj, id, value, getter, setter, attrs); + return baseops::DefineProperty(cx, obj, id, value, getter, setter, attrs); } static JSBool array_defineProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, const Value *value, JSPropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - Rooted id(cx, NameToId(name)); - return array_defineGeneric(cx, obj, id, value, getter, setter, attrs); + return array_defineGeneric(cx, obj, RootedId(cx, NameToId(name)), value, getter, setter, attrs); } namespace js { @@ -1072,8 +1063,8 @@ static JSBool array_defineSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, const Value *value, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return array_defineGeneric(cx, obj, id, value, getter, setter, attrs); + return array_defineGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), + value, getter, setter, attrs); } static JSBool @@ -1164,7 +1155,7 @@ array_deleteElement(JSContext *cx, HandleObject obj, uint32_t index, Value *rval obj->setDenseArrayElement(index, MagicValue(JS_ARRAY_HOLE)); } - if (!js_SuppressDeletedElement(cx, obj, index)) + if (!js_SuppressDeletedElement(cx, RootedObject(cx, obj), index)) return false; rval->setBoolean(true); @@ -1713,8 +1704,7 @@ array_toLocaleString(JSContext *cx, unsigned argc, Value *vp) * Passing comma here as the separator. Need a way to get a * locale-specific version. */ - Rooted none(cx, NULL); - return array_toString_sub(cx, obj, JS_TRUE, none, args); + return array_toString_sub(cx, obj, JS_TRUE, RootedString(cx), args); } static inline bool @@ -2395,7 +2385,7 @@ NewbornArrayPushImpl(JSContext *cx, HandleObject obj, const Value &v) /* This can happen in one evil case. See bug 630377. */ RootedId id(cx); return IndexToId(cx, length, id.address()) && - baseops::DefineGeneric(cx, obj, id, &v, NULL, NULL, JSPROP_ENUMERATE); + baseops::DefineProperty(cx, obj, id, &v, NULL, NULL, JSPROP_ENUMERATE); } JS_ASSERT(obj->isDenseArray()); diff --git a/js/src/jscntxt.h b/js/src/jscntxt.h index 644c73aa34c1..34a406aa55c6 100644 --- a/js/src/jscntxt.h +++ b/js/src/jscntxt.h @@ -657,7 +657,7 @@ struct JSRuntime : js::RuntimeFriendFields js::Value negativeInfinityValue; js::Value positiveInfinityValue; - js::PropertyName *emptyString; + JSAtom *emptyString; /* List of active contexts sharing this runtime. */ JSCList contextList; diff --git a/js/src/jscompartment.cpp b/js/src/jscompartment.cpp index 3ee927f4edbd..ba7f4070ae5f 100644 --- a/js/src/jscompartment.cpp +++ b/js/src/jscompartment.cpp @@ -167,7 +167,7 @@ JSCompartment::wrap(JSContext *cx, Value *vp) /* Unwrap incoming objects. */ if (vp->isObject()) { - Rooted obj(cx, &vp->toObject()); + JSObject *obj = &vp->toObject(); if (obj->compartment() == this) return WrapForSameCompartment(cx, obj, vp); @@ -194,7 +194,7 @@ JSCompartment::wrap(JSContext *cx, Value *vp) #ifdef DEBUG { - JSObject *outer = GetOuterObject(cx, obj); + JSObject *outer = GetOuterObject(cx, RootedObject(cx, obj)); JS_ASSERT(outer && outer == obj); } #endif diff --git a/js/src/jsdate.cpp b/js/src/jsdate.cpp index 2b28df175c5f..51b1335d7fb9 100644 --- a/js/src/jsdate.cpp +++ b/js/src/jsdate.cpp @@ -2699,8 +2699,8 @@ js_InitDateClass(JSContext *cx, JSObject *obj) RootedId toUTCStringId(cx, NameToId(cx->runtime->atomState.toUTCStringAtom)); RootedId toGMTStringId(cx, NameToId(cx->runtime->atomState.toGMTStringAtom)); if (!baseops::GetProperty(cx, dateProto, toUTCStringId, &toUTCStringFun) || - !baseops::DefineGeneric(cx, dateProto, toGMTStringId, &toUTCStringFun, - JS_PropertyStub, JS_StrictPropertyStub, 0)) + !baseops::DefineProperty(cx, dateProto, toGMTStringId, &toUTCStringFun, + JS_PropertyStub, JS_StrictPropertyStub, 0)) { return NULL; } diff --git a/js/src/jsdbgapi.cpp b/js/src/jsdbgapi.cpp index 2c150aba4c15..db19626d7840 100644 --- a/js/src/jsdbgapi.cpp +++ b/js/src/jsdbgapi.cpp @@ -783,8 +783,7 @@ GetPropertyDesc(JSContext *cx, JSObject *obj_, Shape *shape, JSPropertyDesc *pd) lastException = cx->getPendingException(); cx->clearPendingException(); - Rooted id(cx, shape->propid()); - if (!baseops::GetProperty(cx, obj, id, &pd->value)) { + if (!baseops::GetProperty(cx, obj, RootedId(cx, shape->propid()), &pd->value)) { if (!cx->isExceptionPending()) { pd->flags = JSPD_ERROR; pd->value = JSVAL_VOID; diff --git a/js/src/jsexn.cpp b/js/src/jsexn.cpp index e413a7bbf191..9cb5c3a0b72d 100644 --- a/js/src/jsexn.cpp +++ b/js/src/jsexn.cpp @@ -269,8 +269,7 @@ InitExnPrivate(JSContext *cx, HandleObject exnObject, HandleString message, if (checkAccess && i.isNonEvalFunctionFrame()) { Value v = NullValue(); RootedId callerid(cx, NameToId(cx->runtime->atomState.callerAtom)); - Rooted obj(cx, i.callee()); - if (!checkAccess(cx, obj, callerid, JSACC_READ, &v)) + if (!checkAccess(cx, RootedObject(cx, i.callee()), callerid, JSACC_READ, &v)) break; } diff --git a/js/src/jsfriendapi.cpp b/js/src/jsfriendapi.cpp index 52c57ea51b1e..4c59d85dcf23 100644 --- a/js/src/jsfriendapi.cpp +++ b/js/src/jsfriendapi.cpp @@ -231,8 +231,8 @@ JS_DefineFunctionsWithHelp(JSContext *cx, JSObject *obj_, const JSFunctionSpecWi return false; RootedFunction fun(cx); - Rooted id(cx, AtomToId(atom)); - fun = js_DefineFunction(cx, obj, id, fs->call, fs->nargs, fs->flags); + fun = js_DefineFunction(cx, obj, RootedId(cx, AtomToId(atom)), + fs->call, fs->nargs, fs->flags); if (!fun) return false; @@ -338,8 +338,9 @@ js::DefineFunctionWithReserved(JSContext *cx, JSObject *obj_, const char *name, JSAtom *atom = js_Atomize(cx, name, strlen(name)); if (!atom) return NULL; - Rooted id(cx, AtomToId(atom)); - return js_DefineFunction(cx, obj, id, call, nargs, attrs, JSFunction::ExtendedFinalizeKind); + return js_DefineFunction(cx, obj, RootedId(cx, AtomToId(atom)), + call, nargs, attrs, + JSFunction::ExtendedFinalizeKind); } JS_FRIEND_API(JSFunction *) diff --git a/js/src/jsfun.cpp b/js/src/jsfun.cpp index ea99641e0125..339b538598f8 100644 --- a/js/src/jsfun.cpp +++ b/js/src/jsfun.cpp @@ -426,8 +426,7 @@ js::CloneInterpretedFunction(JSContext *cx, JSFunction *srcFun) if (!clone->clearType(cx)) return NULL; - Rooted srcScript(cx, srcFun->script()); - JSScript *clonedScript = CloneScript(cx, srcScript); + JSScript *clonedScript = CloneScript(cx, RootedScript(cx, srcFun->script())); if (!clonedScript) return NULL; diff --git a/js/src/jsfuninlines.h b/js/src/jsfuninlines.h index 1ac2e8102703..ae875cb54566 100644 --- a/js/src/jsfuninlines.h +++ b/js/src/jsfuninlines.h @@ -206,8 +206,7 @@ CloneFunctionObjectIfNotSingleton(JSContext *cx, HandleFunction fun, HandleObjec * with its type in existence. */ if (fun->hasSingletonType()) { - Rooted obj(cx, SkipScopeParent(parent)); - if (!JSObject::setParent(cx, fun, obj)) + if (!JSObject::setParent(cx, fun, RootedObject(cx, SkipScopeParent(parent)))) return NULL; fun->setEnvironment(parent); return fun; @@ -231,9 +230,10 @@ CloneFunctionObject(JSContext *cx, HandleFunction fun) if (fun->hasSingletonType()) return fun; - Rooted env(cx, fun->environment()); - Rooted proto(cx, fun->getProto()); - return js_CloneFunctionObject(cx, fun, env, proto, JSFunction::ExtendedFinalizeKind); + return js_CloneFunctionObject(cx, fun, + RootedObject(cx, fun->environment()), + RootedObject(cx, fun->getProto()), + JSFunction::ExtendedFinalizeKind); } } /* namespace js */ diff --git a/js/src/jsinfer.cpp b/js/src/jsinfer.cpp index fc441fc4bf45..dc1cd4f0fe8a 100644 --- a/js/src/jsinfer.cpp +++ b/js/src/jsinfer.cpp @@ -1682,8 +1682,8 @@ TypeSet::isOwnProperty(JSContext *cx, TypeObject *object, bool configurable) */ if (object->flags & OBJECT_FLAG_NEW_SCRIPT_REGENERATE) { if (object->newScript) { - Rooted typeObj(cx, object); - CheckNewScriptProperties(cx, typeObj, object->newScript->fun); + CheckNewScriptProperties(cx, RootedTypeObject(cx, object), + object->newScript->fun); } else { JS_ASSERT(object->flags & OBJECT_FLAG_NEW_SCRIPT_CLEARED); object->flags &= ~OBJECT_FLAG_NEW_SCRIPT_REGENERATE; diff --git a/js/src/jsinterp.cpp b/js/src/jsinterp.cpp index e8c632feced3..0c9a484b504d 100644 --- a/js/src/jsinterp.cpp +++ b/js/src/jsinterp.cpp @@ -537,8 +537,7 @@ js::LooselyEqual(JSContext *cx, const Value &lval, const Value &rval, bool *resu if (JSEqualityOp eq = l->getClass()->ext.equality) { JSBool res; - Rooted lobj(cx, l); - if (!eq(cx, lobj, &rval, &res)) + if (!eq(cx, RootedObject(cx, l), &rval, &res)) return false; *result = !!res; return true; @@ -984,8 +983,7 @@ IteratorMore(JSContext *cx, JSObject *iterobj, bool *cond, Value *rval) return true; } } - Rooted iobj(cx, iterobj); - if (!js_IteratorMore(cx, iobj, rval)) + if (!js_IteratorMore(cx, RootedObject(cx, iterobj), rval)) return false; *cond = rval->isTrue(); return true; diff --git a/js/src/jsinterpinlines.h b/js/src/jsinterpinlines.h index dfff7ae9762e..d0734adb1aaf 100644 --- a/js/src/jsinterpinlines.h +++ b/js/src/jsinterpinlines.h @@ -125,8 +125,7 @@ ValuePropertyBearer(JSContext *cx, StackFrame *fp, const Value &v, int spindex) } inline bool -NativeGet(JSContext *cx, Handle obj, Handle pobj, const Shape *shape, - unsigned getHow, Value *vp) +NativeGet(JSContext *cx, JSObject *obj, JSObject *pobj, const Shape *shape, unsigned getHow, Value *vp) { if (shape->isDataDescriptor() && shape->hasDefaultGetter()) { /* Fast path for Object instance properties. */ @@ -212,9 +211,9 @@ GetPropertyOperation(JSContext *cx, jsbytecode *pc, const Value &lval, Value *vp return false; PropertyCacheEntry *entry; - Rooted obj2(cx); + JSObject *obj2; PropertyName *name; - JS_PROPERTY_CACHE(cx).test(cx, pc, obj.reference(), obj2.reference(), entry, name); + JS_PROPERTY_CACHE(cx).test(cx, pc, obj.reference(), obj2, entry, name); if (!name) { AssertValidPropertyCacheHit(cx, obj, obj2, entry); if (!NativeGet(cx, obj, obj2, entry->prop, JSGET_CACHE_RESULT, vp)) @@ -337,9 +336,9 @@ NameOperation(JSContext *cx, jsbytecode *pc, Value *vp) obj = &obj->global(); PropertyCacheEntry *entry; - Rooted obj2(cx); + JSObject *obj2; RootedPropertyName name(cx); - JS_PROPERTY_CACHE(cx).test(cx, pc, obj.reference(), obj2.reference(), entry, name.reference()); + JS_PROPERTY_CACHE(cx).test(cx, pc, obj.reference(), obj2, entry, name.reference()); if (!name) { AssertValidPropertyCacheHit(cx, obj, obj2, entry); if (!NativeGet(cx, obj, obj2, entry->prop, 0, vp)) @@ -348,7 +347,7 @@ NameOperation(JSContext *cx, jsbytecode *pc, Value *vp) } JSProperty *prop; - if (!FindPropertyHelper(cx, name, true, obj, obj.address(), obj2.address(), &prop)) + if (!FindPropertyHelper(cx, name, true, obj, obj.address(), &obj2, &prop)) return false; if (!prop) { /* Kludge to allow (typeof foo == "undefined") tests. */ @@ -365,12 +364,11 @@ NameOperation(JSContext *cx, jsbytecode *pc, Value *vp) /* Take the slow path if prop was not found in a native object. */ if (!obj->isNative() || !obj2->isNative()) { - Rooted id(cx, NameToId(name)); - if (!obj->getGeneric(cx, id, vp)) + if (!obj->getGeneric(cx, RootedId(cx, NameToId(name)), vp)) return false; } else { Shape *shape = (Shape *)prop; - Rooted normalized(cx, obj); + JSObject *normalized = obj; if (normalized->getClass() == &WithClass && !shape->hasDefaultGetter()) normalized = &normalized->asWith().object(); if (!NativeGet(cx, normalized, obj2, shape, 0, vp)) diff --git a/js/src/jsobj.cpp b/js/src/jsobj.cpp index 386c5f2884eb..9eb91bd761a9 100644 --- a/js/src/jsobj.cpp +++ b/js/src/jsobj.cpp @@ -84,21 +84,19 @@ Class js::ObjectClass = { }; JS_FRIEND_API(JSObject *) -JS_ObjectToInnerObject(JSContext *cx, JSObject *obj_) +JS_ObjectToInnerObject(JSContext *cx, JSObject *obj) { - if (!obj_) { + if (!obj) { JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_INACTIVE); return NULL; } - Rooted obj(cx, obj_); - return GetInnerObject(cx, obj); + return GetInnerObject(cx, RootedObject(cx, obj)); } JS_FRIEND_API(JSObject *) -JS_ObjectToOuterObject(JSContext *cx, JSObject *obj_) +JS_ObjectToOuterObject(JSContext *cx, JSObject *obj) { - Rooted obj(cx, obj_); - return GetOuterObject(cx, obj); + return GetOuterObject(cx, RootedObject(cx, obj)); } #if JS_HAS_OBJ_PROTO_PROP @@ -203,8 +201,7 @@ MarkSharpObjects(JSContext *cx, HandleObject obj, JSIdArray **idap, JSSharpInfo if (hasSetter) { /* Mark the getter, then set val to setter. */ if (hasGetter && value.isObject()) { - Rooted vobj(cx, &value.toObject()); - ok = MarkSharpObjects(cx, vobj, NULL, NULL); + ok = MarkSharpObjects(cx, RootedObject(cx, &value.toObject()), NULL, NULL); if (!ok) break; } @@ -214,12 +211,11 @@ MarkSharpObjects(JSContext *cx, HandleObject obj, JSIdArray **idap, JSSharpInfo if (!ok) break; } - if (value.isObject()) { - Rooted vobj(cx, &value.toObject()); - if (!MarkSharpObjects(cx, vobj, NULL, NULL)) { - ok = false; - break; - } + if (value.isObject() && + !MarkSharpObjects(cx, RootedObject(cx, &value.toObject()), NULL, NULL)) + { + ok = false; + break; } } if (!ok || !idap) @@ -706,10 +702,8 @@ AssertInnerizedScopeChain(JSContext *cx, JSObject &scopeobj) { #ifdef DEBUG for (JSObject *o = &scopeobj; o; o = o->enclosingScope()) { - if (JSObjectOp op = o->getClass()->ext.innerObject) { - Rooted obj(cx, o); - JS_ASSERT(op(cx, obj) == o); - } + if (JSObjectOp op = o->getClass()->ext.innerObject) + JS_ASSERT(op(cx, RootedObject(cx, o)) == o); } #endif } @@ -1090,11 +1084,9 @@ JSBool eval(JSContext *cx, unsigned argc, Value *vp) { CallArgs args = CallArgsFromVp(argc, vp); - if (!WarnOnTooManyArgs(cx, args)) - return false; - - Rooted global(cx, &args.callee().global()); - return EvalKernel(cx, args, INDIRECT_EVAL, NULL, global); + return WarnOnTooManyArgs(cx, args) && + EvalKernel(cx, args, INDIRECT_EVAL, NULL, + RootedObject(cx, &args.callee().global())); } bool @@ -1294,8 +1286,7 @@ js_HasOwnProperty(JSContext *cx, LookupGenericOp lookup, HandleObject obj, Handl JSObject *outer = NULL; if (JSObjectOp op = (*objp)->getClass()->ext.outerObject) { - Rooted inner(cx, *objp); - outer = op(cx, inner); + outer = op(cx, RootedObject(cx, *objp)); if (!outer) return false; } @@ -1979,9 +1970,9 @@ DefinePropertyOnObject(JSContext *cx, HandleObject obj, HandleId id, const PropD if (desc.isGenericDescriptor() || desc.isDataDescriptor()) { JS_ASSERT(!obj->getOps()->defineProperty); Value v = desc.hasValue() ? desc.value() : UndefinedValue(); - return baseops::DefineGeneric(cx, obj, id, &v, - JS_PropertyStub, JS_StrictPropertyStub, - desc.attributes()); + return baseops::DefineProperty(cx, obj, id, &v, + JS_PropertyStub, JS_StrictPropertyStub, + desc.attributes()); } JS_ASSERT(desc.isAccessorDescriptor()); @@ -1996,8 +1987,8 @@ DefinePropertyOnObject(JSContext *cx, HandleObject obj, HandleId id, const PropD return JS_FALSE; Value tmp = UndefinedValue(); - return baseops::DefineGeneric(cx, obj, id, &tmp, - desc.getter(), desc.setter(), desc.attributes()); + return baseops::DefineProperty(cx, obj, id, &tmp, + desc.getter(), desc.setter(), desc.attributes()); } /* 8.12.9 steps 5-6 (note 5 is merely a special case of 6). */ @@ -2247,7 +2238,7 @@ DefinePropertyOnObject(JSContext *cx, HandleObject obj, HandleId id, const PropD return false; } - return baseops::DefineGeneric(cx, obj, id, &v, getter, setter, attrs); + return baseops::DefineProperty(cx, obj, id, &v, getter, setter, attrs); } static JSBool @@ -2391,7 +2382,7 @@ DefineProperties(JSContext *cx, HandleObject obj, JSObject *props) bool dummy; for (size_t i = 0, len = ids.length(); i < len; i++) { - if (!DefineProperty(cx, obj, Handle::fromMarkedLocation(&ids[i]), descs[i], true, &dummy)) + if (!DefineProperty(cx, obj, RootedId(cx, ids[i]), descs[i], true, &dummy)) return false; } @@ -3182,9 +3173,9 @@ JSObject::deleteByValue(JSContext *cx, const Value &property, Value *rval, bool return deleteElement(cx, index, rval, strict); Value propval = property; - Rooted sid(cx); - if (ValueIsSpecial(this, &propval, sid.address(), cx)) - return deleteSpecial(cx, sid, rval, strict); + SpecialId sid; + if (ValueIsSpecial(this, &propval, &sid, cx)) + return deleteSpecial(cx, Rooted(cx, sid), rval, strict); RootedObject self(cx, this); @@ -3195,8 +3186,7 @@ JSObject::deleteByValue(JSContext *cx, const Value &property, Value *rval, bool if (name->isIndex(&index)) return self->deleteElement(cx, index, rval, false); - Rooted propname(cx, name->asPropertyName()); - return self->deleteProperty(cx, propname, rval, false); + return self->deleteProperty(cx, RootedPropertyName(cx, name->asPropertyName()), rval, false); } JS_FRIEND_API(bool) @@ -3227,8 +3217,7 @@ JS_CopyPropertiesFrom(JSContext *cx, JSObject *target, JSObject *obj) Value v = shape->hasSlot() ? obj->getSlot(shape->slot()) : UndefinedValue(); if (!cx->compartment->wrap(cx, &v)) return false; - Rooted id(cx, shape->propid()); - if (!target->defineGeneric(cx, id, v, getter, setter, attrs)) + if (!target->defineGeneric(cx, RootedId(cx, shape->propid()), v, getter, setter, attrs)) return false; } return true; @@ -3967,16 +3956,15 @@ JSObject::growSlots(JSContext *cx, uint32_t oldCount, uint32_t newCount) gc::AllocKind kind = type()->newScript->allocKind; unsigned newScriptSlots = gc::GetGCKindSlots(kind); if (newScriptSlots == numFixedSlots() && gc::TryIncrementAllocKind(&kind)) { - Rooted typeObj(cx, type()); - JSObject *obj = NewReshapedObject(cx, typeObj, + JSObject *obj = NewReshapedObject(cx, RootedTypeObject(cx, type()), getParent(), kind, - typeObj->newScript->shape); + type()->newScript->shape); if (!obj) return false; - typeObj->newScript->allocKind = kind; - typeObj->newScript->shape = obj->lastProperty(); - typeObj->markStateChange(cx); + type()->newScript->allocKind = kind; + type()->newScript->shape = obj->lastProperty(); + type()->markStateChange(cx); } } @@ -4488,7 +4476,7 @@ js_AddNativeProperty(JSContext *cx, HandleObject obj, jsid id_, } JSBool -baseops::DefineGeneric(JSContext *cx, HandleObject obj, HandleId id, const Value *value, +baseops::DefineProperty(JSContext *cx, HandleObject obj, HandleId id, const Value *value, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { return !!DefineNativeProperty(cx, obj, id, *value, getter, setter, attrs, 0, 0); @@ -4498,14 +4486,14 @@ JSBool baseops::DefineElement(JSContext *cx, HandleObject obj, uint32_t index, const Value *value, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - Rooted id(cx); if (index <= JSID_INT_MAX) { - id = INT_TO_JSID(index); - return !!DefineNativeProperty(cx, obj, id, *value, getter, setter, attrs, 0, 0); + return !!DefineNativeProperty(cx, obj, RootedId(cx, INT_TO_JSID(index)), *value, + getter, setter, attrs, 0, 0); } AutoRooterGetterSetter gsRoot(cx, attrs, &getter, &setter); + RootedId id(cx); if (!IndexToId(cx, index, id.address())) return false; @@ -4524,8 +4512,7 @@ CallAddPropertyHook(JSContext *cx, Class *clasp, HandleObject obj, HandleShape s if (clasp->addProperty != JS_PropertyStub) { Value nominal = *vp; - Rooted id(cx, shape->propid()); - if (!CallJSPropertyOp(cx, clasp->addProperty, obj, id, vp)) + if (!CallJSPropertyOp(cx, clasp->addProperty, obj, RootedId(cx, shape->propid()), vp)) return false; if (*vp != nominal) { if (shape->hasSlot()) @@ -4978,7 +4965,7 @@ js::FindIdentifierBase(JSContext *cx, HandleObject scopeChain, HandlePropertyNam } static JS_ALWAYS_INLINE JSBool -js_NativeGetInline(JSContext *cx, Handle receiver, JSObject *obj, JSObject *pobj, +js_NativeGetInline(JSContext *cx, JSObject *receiver, JSObject *obj, JSObject *pobj, const Shape *shape, unsigned getHow, Value *vp) { JS_ASSERT(pobj->isNative()); @@ -5005,7 +4992,7 @@ js_NativeGetInline(JSContext *cx, Handle receiver, JSObject *obj, JSO Rooted shapeRoot(cx, shape); RootedObject pobjRoot(cx, pobj); - if (!shape->get(cx, receiver, obj, pobj, vp)) + if (!shape->get(cx, RootedObject(cx, receiver), obj, pobj, vp)) return false; /* Update slotful shapes according to the value produced by the getter. */ @@ -5016,15 +5003,14 @@ js_NativeGetInline(JSContext *cx, Handle receiver, JSObject *obj, JSO } JSBool -js_NativeGet(JSContext *cx, Handle obj, Handle pobj, const Shape *shape, - unsigned getHow, Value *vp) +js_NativeGet(JSContext *cx, JSObject *obj, JSObject *pobj, const Shape *shape, unsigned getHow, + Value *vp) { return js_NativeGetInline(cx, obj, obj, pobj, shape, getHow, vp); } JSBool -js_NativeSet(JSContext *cx, Handle obj, const Shape *shape, bool added, bool strict, - Value *vp) +js_NativeSet(JSContext *cx, JSObject *obj, const Shape *shape, bool added, bool strict, Value *vp) { AddTypePropertyId(cx, obj, shape->propid(), *vp); @@ -5052,7 +5038,7 @@ js_NativeSet(JSContext *cx, Handle obj, const Shape *shape, bool adde Rooted shapeRoot(cx, shape); int32_t sample = cx->runtime->propertyRemovals; - if (!shapeRoot->set(cx, obj, strict, vp)) + if (!shapeRoot->set(cx, RootedObject(cx, obj), strict, vp)) return false; /* @@ -5270,9 +5256,8 @@ bool JSObject::callMethod(JSContext *cx, HandleId id, unsigned argc, Value *argv, Value *vp) { Value fval; - Rooted obj(cx, this); - return GetMethod(cx, obj, id, 0, &fval) && - Invoke(cx, ObjectValue(*obj), fval, argc, argv, vp); + return GetMethod(cx, RootedObject(cx, this), id, 0, &fval) && + Invoke(cx, ObjectValue(*this), fval, argc, argv, vp); } JSBool @@ -5583,8 +5568,7 @@ baseops::DeleteGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *rval JSBool baseops::DeleteProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *rval, JSBool strict) { - Rooted id(cx, NameToId(name)); - return baseops::DeleteGeneric(cx, obj, id, rval, strict); + return baseops::DeleteGeneric(cx, obj, RootedId(cx, NameToId(name)), rval, strict); } JSBool @@ -5599,8 +5583,7 @@ baseops::DeleteElement(JSContext *cx, HandleObject obj, uint32_t index, Value *r JSBool baseops::DeleteSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *rval, JSBool strict) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return baseops::DeleteGeneric(cx, obj, id, rval, strict); + return baseops::DeleteGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), rval, strict); } namespace js { @@ -5627,9 +5610,9 @@ HasDataProperty(JSContext *cx, HandleObject obj, jsid id, Value *vp) * or steps 3-4. */ static bool -MaybeCallMethod(JSContext *cx, HandleObject obj, Handle id, Value *vp) +MaybeCallMethod(JSContext *cx, HandleObject obj, jsid id, Value *vp) { - if (!GetMethod(cx, obj, id, 0, vp)) + if (!GetMethod(cx, obj, RootedId(cx, id), 0, vp)) return false; if (!js_IsCallable(*vp)) { *vp = ObjectValue(*obj); @@ -5646,58 +5629,49 @@ DefaultValue(JSContext *cx, HandleObject obj, JSType hint, Value *vp) JS_ASSERT(!obj->isXML()); #endif - Rooted id(cx); - Class *clasp = obj->getClass(); if (hint == JSTYPE_STRING) { - id = NameToId(cx->runtime->atomState.toStringAtom); - /* Optimize (new String(...)).toString(). */ - if (clasp == &StringClass) { - if (ClassMethodIsNative(cx, obj, &StringClass, id, js_str_toString)) { - *vp = StringValue(obj->asString().unbox()); - return true; - } + if (clasp == &StringClass && + ClassMethodIsNative(cx, obj, + &StringClass, + RootedId(cx, NameToId(cx->runtime->atomState.toStringAtom)), + js_str_toString)) { + *vp = StringValue(obj->asString().unbox()); + return true; } - if (!MaybeCallMethod(cx, obj, id, vp)) + if (!MaybeCallMethod(cx, obj, NameToId(cx->runtime->atomState.toStringAtom), vp)) return false; if (vp->isPrimitive()) return true; - id = NameToId(cx->runtime->atomState.valueOfAtom); - if (!MaybeCallMethod(cx, obj, id, vp)) + if (!MaybeCallMethod(cx, obj, NameToId(cx->runtime->atomState.valueOfAtom), vp)) return false; if (vp->isPrimitive()) return true; } else { - - /* Optimize new String(...).valueOf(). */ - if (clasp == &StringClass) { - id = NameToId(cx->runtime->atomState.valueOfAtom); - if (ClassMethodIsNative(cx, obj, &StringClass, id, js_str_toString)) { - *vp = StringValue(obj->asString().unbox()); - return true; - } + /* Optimize (new String(...)).valueOf(). */ + if ((clasp == &StringClass && + ClassMethodIsNative(cx, obj, &StringClass, + RootedId(cx, NameToId(cx->runtime->atomState.valueOfAtom)), + js_str_toString)) || + (clasp == &NumberClass && + ClassMethodIsNative(cx, obj, &NumberClass, + RootedId(cx, NameToId(cx->runtime->atomState.valueOfAtom)), + js_num_valueOf))) { + *vp = obj->isString() + ? StringValue(obj->asString().unbox()) + : NumberValue(obj->asNumber().unbox()); + return true; } - /* Optimize new Number(...).valueOf(). */ - if (clasp == &NumberClass) { - id = NameToId(cx->runtime->atomState.valueOfAtom); - if (ClassMethodIsNative(cx, obj, &NumberClass, id, js_num_valueOf)) { - *vp = NumberValue(obj->asNumber().unbox()); - return true; - } - } - - id = NameToId(cx->runtime->atomState.valueOfAtom); - if (!MaybeCallMethod(cx, obj, id, vp)) + if (!MaybeCallMethod(cx, obj, NameToId(cx->runtime->atomState.valueOfAtom), vp)) return false; if (vp->isPrimitive()) return true; - id = NameToId(cx->runtime->atomState.toStringAtom); - if (!MaybeCallMethod(cx, obj, id, vp)) + if (!MaybeCallMethod(cx, obj, NameToId(cx->runtime->atomState.toStringAtom), vp)) return false; if (vp->isPrimitive()) return true; @@ -5894,10 +5868,8 @@ js_GetClassPrototype(JSContext *cx, JSObject *scopeobj, JSProtoKey protoKey, JSObject * PrimitiveToObject(JSContext *cx, const Value &v) { - if (v.isString()) { - Rooted str(cx, v.toString()); - return StringObject::create(cx, str); - } + if (v.isString()) + return StringObject::create(cx, RootedString(cx, v.toString())); if (v.isNumber()) return NumberObject::create(cx, v.toNumber()); diff --git a/js/src/jsobj.h b/js/src/jsobj.h index 529cdb1ece40..734ce0373213 100644 --- a/js/src/jsobj.h +++ b/js/src/jsobj.h @@ -105,8 +105,7 @@ inline bool LookupProperty(JSContext *cx, HandleObject obj, PropertyName *name, JSObject **objp, JSProperty **propp) { - Rooted id(cx, NameToId(name)); - return LookupProperty(cx, obj, id, objp, propp); + return LookupProperty(cx, obj, RootedId(cx, NameToId(name)), objp, propp); } extern JS_FRIEND_API(JSBool) @@ -114,17 +113,9 @@ LookupElement(JSContext *cx, HandleObject obj, uint32_t index, JSObject **objp, JSProperty **propp); extern JSBool -DefineGeneric(JSContext *cx, HandleObject obj, HandleId id, const js::Value *value, +DefineProperty(JSContext *cx, HandleObject obj, HandleId id, const js::Value *value, JSPropertyOp getter, JSStrictPropertyOp setter, unsigned attrs); -inline JSBool -DefineProperty(JSContext *cx, HandleObject obj, PropertyName *name, const js::Value *value, - JSPropertyOp getter, JSStrictPropertyOp setter, unsigned attrs) -{ - Rooted id(cx, NameToId(name)); - return DefineGeneric(cx, obj, id, value, getter, setter, attrs); -} - extern JSBool DefineElement(JSContext *cx, HandleObject obj, uint32_t index, const js::Value *value, JSPropertyOp getter, JSStrictPropertyOp setter, unsigned attrs); @@ -158,8 +149,7 @@ inline bool SetPropertyHelper(JSContext *cx, HandleObject obj, PropertyName *name, unsigned defineHow, Value *vp, JSBool strict) { - Rooted id(cx, NameToId(name)); - return SetPropertyHelper(cx, obj, id, defineHow, vp, strict); + return SetPropertyHelper(cx, obj, RootedId(cx, NameToId(name)), defineHow, vp, strict); } extern JSBool @@ -1151,8 +1141,8 @@ DefineNativeProperty(JSContext *cx, HandleObject obj, PropertyName *name, const PropertyOp getter, StrictPropertyOp setter, unsigned attrs, unsigned flags, int shortid, unsigned defineHow = 0) { - Rooted id(cx, NameToId(name)); - return DefineNativeProperty(cx, obj, id, value, getter, setter, attrs, flags, + return DefineNativeProperty(cx, obj, RootedId(cx, NameToId(name)), + value, getter, setter, attrs, flags, shortid, defineHow); } @@ -1167,8 +1157,7 @@ inline bool LookupPropertyWithFlags(JSContext *cx, HandleObject obj, PropertyName *name, unsigned flags, JSObject **objp, JSProperty **propp) { - Rooted id(cx, NameToId(name)); - return LookupPropertyWithFlags(cx, obj, id, flags, objp, propp); + return LookupPropertyWithFlags(cx, obj, RootedId(cx, NameToId(name)), flags, objp, propp); } /* @@ -1232,11 +1221,11 @@ const unsigned JSGET_CACHE_RESULT = 1; // from a caching interpreter opcode * scope containing shape unlocked. */ extern JSBool -js_NativeGet(JSContext *cx, js::Handle obj, js::Handle pobj, - const js::Shape *shape, unsigned getHow, js::Value *vp); +js_NativeGet(JSContext *cx, JSObject *obj, JSObject *pobj, const js::Shape *shape, unsigned getHow, + js::Value *vp); extern JSBool -js_NativeSet(JSContext *cx, js::Handle obj, const js::Shape *shape, bool added, +js_NativeSet(JSContext *cx, JSObject *obj, const js::Shape *shape, bool added, bool strict, js::Value *vp); namespace js { @@ -1265,8 +1254,7 @@ GetMethod(JSContext *cx, HandleObject obj, HandleId id, unsigned getHow, Value * inline bool GetMethod(JSContext *cx, HandleObject obj, PropertyName *name, unsigned getHow, Value *vp) { - Rooted id(cx, NameToId(name)); - return GetMethod(cx, obj, id, getHow, vp); + return GetMethod(cx, obj, RootedId(cx, NameToId(name)), getHow, vp); } /* diff --git a/js/src/jsobjinlines.h b/js/src/jsobjinlines.h index 566b4f164e45..80cdf6b3faf8 100644 --- a/js/src/jsobjinlines.h +++ b/js/src/jsobjinlines.h @@ -54,8 +54,7 @@ inline bool JSObject::enumerate(JSContext *cx, JSIterateOp iterop, js::Value *statep, jsid *idp) { JSNewEnumerateOp op = getOps()->enumerate; - js::Rooted obj(cx, this); - return (op ? op : JS_EnumerateState)(cx, obj, iterop, statep, idp); + return (op ? op : JS_EnumerateState)(cx, js::RootedObject(cx, this), iterop, statep, idp); } inline bool @@ -77,16 +76,14 @@ inline JSType JSObject::typeOf(JSContext *cx) { js::TypeOfOp op = getOps()->typeOf; - js::Rooted obj(cx, this); - return (op ? op : js::baseops::TypeOf)(cx, obj); + return (op ? op : js::baseops::TypeOf)(cx, js::RootedObject(cx, this)); } inline JSObject * JSObject::thisObject(JSContext *cx) { JSObjectOp op = getOps()->thisObject; - js::Rooted obj(cx, this); - return op ? op(cx, obj) : this; + return op ? op(cx, js::RootedObject(cx, this)) : this; } inline JSBool @@ -94,15 +91,15 @@ JSObject::setGeneric(JSContext *cx, js::HandleId id, js::Value *vp, JSBool stric { if (getOps()->setGeneric) return nonNativeSetProperty(cx, id, vp, strict); - js::Rooted obj(cx, this); - return js::baseops::SetPropertyHelper(cx, obj, id, 0, vp, strict); + return js::baseops::SetPropertyHelper(cx, + js::RootedObject(cx, this), + id, 0, vp, strict); } inline JSBool JSObject::setProperty(JSContext *cx, js::PropertyName *name, js::Value *vp, JSBool strict) { - js::Rooted id(cx, js::NameToId(name)); - return setGeneric(cx, id, vp, strict); + return setGeneric(cx, js::RootedId(cx, js::NameToId(name)), vp, strict); } inline JSBool @@ -110,15 +107,13 @@ JSObject::setElement(JSContext *cx, uint32_t index, js::Value *vp, JSBool strict { if (getOps()->setElement) return nonNativeSetElement(cx, index, vp, strict); - js::Rooted obj(cx, this); - return js::baseops::SetElementHelper(cx, obj, index, 0, vp, strict); + return js::baseops::SetElementHelper(cx, js::RootedObject(cx, this), index, 0, vp, strict); } inline JSBool JSObject::setSpecial(JSContext *cx, js::SpecialId sid, js::Value *vp, JSBool strict) { - js::Rooted id(cx, SPECIALID_TO_JSID(sid)); - return setGeneric(cx, id, vp, strict); + return setGeneric(cx, js::RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); } inline JSBool @@ -126,30 +121,26 @@ JSObject::setGenericAttributes(JSContext *cx, js::HandleId id, unsigned *attrsp) { js::types::MarkTypePropertyConfigured(cx, this, id); js::GenericAttributesOp op = getOps()->setGenericAttributes; - js::Rooted obj(cx, this); - return (op ? op : js::baseops::SetAttributes)(cx, obj, id, attrsp); + return (op ? op : js::baseops::SetAttributes)(cx, js::RootedObject(cx, this), id, attrsp); } inline JSBool JSObject::setPropertyAttributes(JSContext *cx, js::PropertyName *name, unsigned *attrsp) { - js::Rooted id(cx, js::NameToId(name)); - return setGenericAttributes(cx, id, attrsp); + return setGenericAttributes(cx, js::RootedId(cx, js::NameToId(name)), attrsp); } inline JSBool JSObject::setElementAttributes(JSContext *cx, uint32_t index, unsigned *attrsp) { js::ElementAttributesOp op = getOps()->setElementAttributes; - js::Rooted obj(cx, this); - return (op ? op : js::baseops::SetElementAttributes)(cx, obj, index, attrsp); + return (op ? op : js::baseops::SetElementAttributes)(cx, js::RootedObject(cx, this), index, attrsp); } inline JSBool JSObject::setSpecialAttributes(JSContext *cx, js::SpecialId sid, unsigned *attrsp) { - js::Rooted id(cx, SPECIALID_TO_JSID(sid)); - return setGenericAttributes(cx, id, attrsp); + return setGenericAttributes(cx, js::RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); } inline bool @@ -177,22 +168,19 @@ JSObject::getGeneric(JSContext *cx, js::HandleObject receiver, js::HandleId id, inline JSBool JSObject::getProperty(JSContext *cx, js::HandleObject receiver, js::PropertyName *name, js::Value *vp) { - js::Rooted id(cx, js::NameToId(name)); - return getGeneric(cx, receiver, id, vp); + return getGeneric(cx, receiver, js::RootedId(cx, js::NameToId(name)), vp); } inline JSBool JSObject::getGeneric(JSContext *cx, js::HandleId id, js::Value *vp) { - js::Rooted obj(cx, this); - return getGeneric(cx, obj, id, vp); + return getGeneric(cx, js::RootedObject(cx, this), id, vp); } inline JSBool JSObject::getProperty(JSContext *cx, js::PropertyName *name, js::Value *vp) { - js::Rooted id(cx, js::NameToId(name)); - return getGeneric(cx, id, vp); + return getGeneric(cx, js::RootedId(cx, js::NameToId(name)), vp); } inline bool @@ -202,8 +190,7 @@ JSObject::deleteProperty(JSContext *cx, js::HandlePropertyName name, js::Value * js::types::AddTypePropertyId(cx, this, id, js::types::Type::UndefinedType()); js::types::MarkTypePropertyConfigured(cx, this, id); js::DeletePropertyOp op = getOps()->deleteProperty; - js::Rooted obj(cx, this); - return (op ? op : js::baseops::DeleteProperty)(cx, obj, name, rval, strict); + return (op ? op : js::baseops::DeleteProperty)(cx, js::RootedObject(cx, this), name, rval, strict); } inline bool @@ -227,8 +214,7 @@ JSObject::deleteSpecial(JSContext *cx, js::HandleSpecialId sid, js::Value *rval, js::types::AddTypePropertyId(cx, this, id, js::types::Type::UndefinedType()); js::types::MarkTypePropertyConfigured(cx, this, id); js::DeleteSpecialOp op = getOps()->deleteSpecial; - js::Rooted obj(cx, this); - return (op ? op : js::baseops::DeleteSpecial)(cx, obj, sid, rval, strict); + return (op ? op : js::baseops::DeleteSpecial)(cx, js::RootedObject(cx, this), sid, rval, strict); } inline void @@ -1040,8 +1026,7 @@ JSObject::lookupGeneric(JSContext *cx, js::HandleId id, JSObject **objp, JSPrope inline JSBool JSObject::lookupProperty(JSContext *cx, js::PropertyName *name, JSObject **objp, JSProperty **propp) { - js::Rooted id(cx, js::NameToId(name)); - return lookupGeneric(cx, id, objp, propp); + return lookupGeneric(cx, js::RootedId(cx, js::NameToId(name)), objp, propp); } inline JSBool @@ -1054,7 +1039,7 @@ JSObject::defineGeneric(JSContext *cx, js::HandleId id, const js::Value &value, JS_ASSERT(!(attrs & JSPROP_NATIVE_ACCESSORS)); js::DefineGenericOp op = getOps()->defineGeneric; - return (op ? op : js::baseops::DefineGeneric)(cx, self, id, &value, getter, setter, attrs); + return (op ? op : js::baseops::DefineProperty)(cx, self, id, &value, getter, setter, attrs); } inline JSBool @@ -1063,8 +1048,7 @@ JSObject::defineProperty(JSContext *cx, js::PropertyName *name, const js::Value JSStrictPropertyOp setter /* = JS_StrictPropertyStub */, unsigned attrs /* = JSPROP_ENUMERATE */) { - js::Rooted id(cx, js::NameToId(name)); - return defineGeneric(cx, id, value, getter, setter, attrs); + return defineGeneric(cx, js::RootedId(cx, js::NameToId(name)), value, getter, setter, attrs); } inline JSBool @@ -1085,8 +1069,7 @@ JSObject::defineSpecial(JSContext *cx, js::SpecialId sid, const js::Value &value JSStrictPropertyOp setter /* = JS_StrictPropertyStub */, unsigned attrs /* = JSPROP_ENUMERATE */) { - js::Rooted id(cx, SPECIALID_TO_JSID(sid)); - return defineGeneric(cx, id, value, getter, setter, attrs); + return defineGeneric(cx, js::RootedId(cx, SPECIALID_TO_JSID(sid)), value, getter, setter, attrs); } inline JSBool @@ -1101,8 +1084,7 @@ JSObject::lookupElement(JSContext *cx, uint32_t index, JSObject **objp, JSProper inline JSBool JSObject::lookupSpecial(JSContext *cx, js::SpecialId sid, JSObject **objp, JSProperty **propp) { - js::Rooted id(cx, SPECIALID_TO_JSID(sid)); - return lookupGeneric(cx, id, objp, propp); + return lookupGeneric(cx, js::RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); } inline JSBool @@ -1123,8 +1105,7 @@ JSObject::getElement(JSContext *cx, js::HandleObject receiver, uint32_t index, j inline JSBool JSObject::getElement(JSContext *cx, uint32_t index, js::Value *vp) { - js::Rooted obj(cx, this); - return getElement(cx, obj, index, vp); + return getElement(cx, js::RootedObject(cx, this), index, vp); } inline JSBool @@ -1164,23 +1145,20 @@ JSObject::getElementIfPresent(JSContext *cx, js::HandleObject receiver, uint32_t inline JSBool JSObject::getSpecial(JSContext *cx, js::HandleObject receiver, js::SpecialId sid, js::Value *vp) { - js::Rooted id(cx, SPECIALID_TO_JSID(sid)); - return getGeneric(cx, receiver, id, vp); + return getGeneric(cx, receiver, js::RootedId(cx, SPECIALID_TO_JSID(sid)), vp); } inline JSBool JSObject::getGenericAttributes(JSContext *cx, js::HandleId id, unsigned *attrsp) { js::GenericAttributesOp op = getOps()->getGenericAttributes; - js::Rooted obj(cx, this); - return (op ? op : js::baseops::GetAttributes)(cx, obj, id, attrsp); + return (op ? op : js::baseops::GetAttributes)(cx, js::RootedObject(cx, this), id, attrsp); } inline JSBool JSObject::getPropertyAttributes(JSContext *cx, js::PropertyName *name, unsigned *attrsp) { - js::Rooted id(cx, js::NameToId(name)); - return getGenericAttributes(cx, id, attrsp); + return getGenericAttributes(cx, js::RootedId(cx, js::NameToId(name)), attrsp); } inline JSBool @@ -1195,8 +1173,7 @@ JSObject::getElementAttributes(JSContext *cx, uint32_t index, unsigned *attrsp) inline JSBool JSObject::getSpecialAttributes(JSContext *cx, js::SpecialId sid, unsigned *attrsp) { - js::Rooted id(cx, SPECIALID_TO_JSID(sid)); - return getGenericAttributes(cx, id, attrsp); + return getGenericAttributes(cx, js::RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); } inline bool diff --git a/js/src/json.cpp b/js/src/json.cpp index eefc51921a28..6cc21bae2245 100644 --- a/js/src/json.cpp +++ b/js/src/json.cpp @@ -280,8 +280,7 @@ PreprocessValue(JSContext *cx, JSObject *holder, KeyType key, Value *vp, Stringi if (vp->isObject()) { Value toJSON; RootedId id(cx, NameToId(cx->runtime->atomState.toJSONAtom)); - Rooted obj(cx, &vp->toObject()); - if (!GetMethod(cx, obj, id, 0, &toJSON)) + if (!GetMethod(cx, RootedObject(cx, &vp->toObject()), id, 0, &toJSON)) return false; if (js_IsCallable(toJSON)) { @@ -856,8 +855,7 @@ Revive(JSContext *cx, const Value &reviver, Value *vp) if (!obj->defineProperty(cx, cx->runtime->atomState.emptyAtom, *vp)) return false; - Rooted id(cx, NameToId(cx->runtime->atomState.emptyAtom)); - return Walk(cx, obj, id, reviver, vp); + return Walk(cx, obj, RootedId(cx, NameToId(cx->runtime->atomState.emptyAtom)), reviver, vp); } namespace js { diff --git a/js/src/jsonparser.cpp b/js/src/jsonparser.cpp index 63f0ab959c14..317ca2c4e16a 100644 --- a/js/src/jsonparser.cpp +++ b/js/src/jsonparser.cpp @@ -549,8 +549,7 @@ JSONParser::parse(Value *vp) case FinishArrayElement: { Value v = valueStack.popCopy(); - Rooted obj(cx, &valueStack.back().toObject()); - if (!js_NewbornArrayPush(cx, obj, v)) + if (!js_NewbornArrayPush(cx, RootedObject(cx, &valueStack.back().toObject()), v)) return false; token = advanceAfterArrayElement(); if (token == Comma) { diff --git a/js/src/jsproxy.cpp b/js/src/jsproxy.cpp index 183d68e908cf..6f13d7d9388c 100644 --- a/js/src/jsproxy.cpp +++ b/js/src/jsproxy.cpp @@ -310,8 +310,7 @@ bool BaseProxyHandler::defaultValue(JSContext *cx, JSObject *proxy, JSType hint, Value *vp) { - Rooted obj(cx, proxy); - return DefaultValue(cx, obj, hint, vp); + return DefaultValue(cx, RootedObject(cx, proxy), hint, vp); } bool @@ -398,14 +397,14 @@ IndirectProxyHandler::getOwnPropertyDescriptor(JSContext *cx, JSObject *proxy, } bool -IndirectProxyHandler::defineProperty(JSContext *cx, JSObject *proxy, jsid id_, +IndirectProxyHandler::defineProperty(JSContext *cx, JSObject *proxy, jsid id, PropertyDescriptor *desc) { RootedObject obj(cx, GetProxyTargetObject(proxy)); - Rooted id(cx, id_); - Rooted v(cx, desc->value); - return CheckDefineProperty(cx, obj, id, v, desc->getter, desc->setter, desc->attrs) && - JS_DefinePropertyById(cx, obj, id, v, desc->getter, desc->setter, desc->attrs); + return CheckDefineProperty(cx, obj, RootedId(cx, id), RootedValue(cx, desc->value), + desc->getter, desc->setter, desc->attrs) && + JS_DefinePropertyById(cx, obj, id, desc->value, desc->getter, desc->setter, + desc->attrs); } bool @@ -524,25 +523,25 @@ IndirectProxyHandler::defaultValue(JSContext *cx, JSObject *proxy, JSType hint, bool IndirectProxyHandler::iteratorNext(JSContext *cx, JSObject *proxy, Value *vp) { - Rooted target(cx, GetProxyTargetObject(proxy)); - if (!js_IteratorMore(cx, target, vp)) + if (!js_IteratorMore(cx, RootedObject(cx, GetProxyTargetObject(proxy)), + vp)) return false; if (vp->toBoolean()) { *vp = cx->iterValue; - cx->iterValue = UndefinedValue(); - } else { - *vp = MagicValue(JS_NO_ITER_VALUE); - } + cx->iterValue.setUndefined(); + } else + vp->setMagic(JS_NO_ITER_VALUE); return true; } -DirectProxyHandler::DirectProxyHandler(void *family) - : IndirectProxyHandler(family) +DirectProxyHandler::DirectProxyHandler(void *family) : + IndirectProxyHandler(family) { } bool -DirectProxyHandler::has(JSContext *cx, JSObject *proxy, jsid id, bool *bp) +DirectProxyHandler::has(JSContext *cx, JSObject *proxy, jsid id, + bool *bp) { JSBool found; if (!JS_HasPropertyById(cx, GetProxyTargetObject(proxy), id, &found)) @@ -591,8 +590,8 @@ bool DirectProxyHandler::iterate(JSContext *cx, JSObject *proxy, unsigned flags, Value *vp) { - Rooted target(cx, GetProxyTargetObject(proxy)); - return GetIterator(cx, target, flags, vp); + return GetIterator(cx, RootedObject(cx, GetProxyTargetObject(proxy)), + flags, vp); } static bool @@ -600,8 +599,7 @@ GetTrap(JSContext *cx, JSObject *handler, PropertyName *name, Value *fvalp) { JS_CHECK_RECURSION(cx, return false); - Rooted propname(cx, name); - return handler->getProperty(cx, propname, fvalp); + return handler->getGeneric(cx, RootedId(cx, NameToId(name)), fvalp); } static bool @@ -1245,8 +1243,7 @@ static JSBool proxy_LookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - Rooted id(cx, NameToId(name)); - return proxy_LookupGeneric(cx, obj, id, objp, propp); + return proxy_LookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); } static JSBool @@ -1262,8 +1259,7 @@ proxy_LookupElement(JSContext *cx, HandleObject obj, uint32_t index, JSObject ** static JSBool proxy_LookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return proxy_LookupGeneric(cx, obj, id, objp, propp); + return proxy_LookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); } static JSBool @@ -1284,8 +1280,7 @@ static JSBool proxy_DefineProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, const Value *value, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - Rooted id(cx, NameToId(name)); - return proxy_DefineGeneric(cx, obj, id, value, getter, setter, attrs); + return proxy_DefineGeneric(cx, obj, RootedId(cx, NameToId(name)), value, getter, setter, attrs); } static JSBool @@ -1302,8 +1297,8 @@ static JSBool proxy_DefineSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, const Value *value, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return proxy_DefineGeneric(cx, obj, id, value, getter, setter, attrs); + return proxy_DefineGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), + value, getter, setter, attrs); } static JSBool @@ -1315,8 +1310,7 @@ proxy_GetGeneric(JSContext *cx, HandleObject obj, HandleObject receiver, HandleI static JSBool proxy_GetProperty(JSContext *cx, HandleObject obj, HandleObject receiver, HandlePropertyName name, Value *vp) { - Rooted id(cx, NameToId(name)); - return proxy_GetGeneric(cx, obj, receiver, id, vp); + return proxy_GetGeneric(cx, obj, receiver, RootedId(cx, NameToId(name)), vp); } static JSBool @@ -1338,8 +1332,7 @@ proxy_GetElementIfPresent(JSContext *cx, HandleObject obj, HandleObject receiver static JSBool proxy_GetSpecial(JSContext *cx, HandleObject obj, HandleObject receiver, HandleSpecialId sid, Value *vp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return proxy_GetGeneric(cx, obj, receiver, id, vp); + return proxy_GetGeneric(cx, obj, receiver, RootedId(cx, SPECIALID_TO_JSID(sid)), vp); } static JSBool @@ -1351,8 +1344,7 @@ proxy_SetGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *vp, JSBool static JSBool proxy_SetProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *vp, JSBool strict) { - Rooted id(cx, NameToId(name)); - return proxy_SetGeneric(cx, obj, id, vp, strict); + return proxy_SetGeneric(cx, obj, RootedId(cx, NameToId(name)), vp, strict); } static JSBool @@ -1367,8 +1359,7 @@ proxy_SetElement(JSContext *cx, HandleObject obj, uint32_t index, Value *vp, JSB static JSBool proxy_SetSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *vp, JSBool strict) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return proxy_SetGeneric(cx, obj, id, vp, strict); + return proxy_SetGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); } static JSBool @@ -1384,8 +1375,7 @@ proxy_GetGenericAttributes(JSContext *cx, HandleObject obj, HandleId id, unsigne static JSBool proxy_GetPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - Rooted id(cx, NameToId(name)); - return proxy_GetGenericAttributes(cx, obj, id, attrsp); + return proxy_GetGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); } static JSBool @@ -1400,8 +1390,7 @@ proxy_GetElementAttributes(JSContext *cx, HandleObject obj, uint32_t index, unsi static JSBool proxy_GetSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return proxy_GetGenericAttributes(cx, obj, id, attrsp); + return proxy_GetGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); } static JSBool @@ -1418,8 +1407,7 @@ proxy_SetGenericAttributes(JSContext *cx, HandleObject obj, HandleId id, unsigne static JSBool proxy_SetPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - Rooted id(cx, NameToId(name)); - return proxy_SetGenericAttributes(cx, obj, id, attrsp); + return proxy_SetGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); } static JSBool @@ -1434,8 +1422,7 @@ proxy_SetElementAttributes(JSContext *cx, HandleObject obj, uint32_t index, unsi static JSBool proxy_SetSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return proxy_SetGenericAttributes(cx, obj, id, attrsp); + return proxy_SetGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); } static JSBool @@ -1452,8 +1439,7 @@ proxy_DeleteGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *rval, J static JSBool proxy_DeleteProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *rval, JSBool strict) { - Rooted id(cx, NameToId(name)); - return proxy_DeleteGeneric(cx, obj, id, rval, strict); + return proxy_DeleteGeneric(cx, obj, RootedId(cx, NameToId(name)), rval, strict); } static JSBool @@ -1468,8 +1454,7 @@ proxy_DeleteElement(JSContext *cx, HandleObject obj, uint32_t index, Value *rval static JSBool proxy_DeleteSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *rval, JSBool strict) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return proxy_DeleteGeneric(cx, obj, id, rval, strict); + return proxy_DeleteGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), rval, strict); } static void diff --git a/js/src/jsscope.cpp b/js/src/jsscope.cpp index cb45328f25b8..10f32cda359e 100644 --- a/js/src/jsscope.cpp +++ b/js/src/jsscope.cpp @@ -1013,9 +1013,7 @@ JSObject::shadowingShapeChange(JSContext *cx, const Shape &shape) bool JSObject::clearParent(JSContext *cx) { - Rooted obj(cx, this); - Rooted newParent(cx, NULL); - return setParent(cx, obj, newParent); + return setParent(cx, RootedObject(cx, this), RootedObject(cx)); } /* static */ bool diff --git a/js/src/jsscript.cpp b/js/src/jsscript.cpp index 53ed9e96c7f6..97d189c0ed04 100644 --- a/js/src/jsscript.cpp +++ b/js/src/jsscript.cpp @@ -1745,8 +1745,7 @@ js::CloneScript(JSContext *cx, HandleScript src) for (unsigned i = 0; i < names.length(); ++i) { if (JSAtom *atom = names[i].maybeAtom) { - Rooted root(cx, atom); - if (!bindings.add(cx, root, names[i].kind)) + if (!bindings.add(cx, RootedAtom(cx, atom), names[i].kind)) return NULL; } else { uint16_t _; diff --git a/js/src/jsscript.h b/js/src/jsscript.h index bcc452bc9da7..ae9899e1d6d5 100644 --- a/js/src/jsscript.h +++ b/js/src/jsscript.h @@ -175,8 +175,7 @@ class Bindings } bool addDestructuring(JSContext *cx, uint16_t *slotp) { *slotp = nargs; - Rooted atom(cx, NULL); - return add(cx, atom, ARGUMENT); + return add(cx, RootedAtom(cx), ARGUMENT); } void noteDup() { hasDup_ = true; } diff --git a/js/src/jsstr.cpp b/js/src/jsstr.cpp index 9baa7f60edf6..fcc8007c9a11 100644 --- a/js/src/jsstr.cpp +++ b/js/src/jsstr.cpp @@ -428,13 +428,15 @@ ThisToStringForStringProto(JSContext *cx, CallReceiver call) if (call.thisv().isObject()) { RootedObject obj(cx, &call.thisv().toObject()); - if (obj->isString()) { - Rooted id(cx, NameToId(cx->runtime->atomState.toStringAtom)); - if (ClassMethodIsNative(cx, obj, &StringClass, id, js_str_toString)) { - JSString *str = obj->asString().unbox(); - call.thisv().setString(str); - return str; - } + if (obj->isString() && + ClassMethodIsNative(cx, obj, + &StringClass, + RootedId(cx, NameToId(cx->runtime->atomState.toStringAtom)), + js_str_toString)) + { + JSString *str = obj->asString().unbox(); + call.thisv().setString(str); + return str; } } else if (call.thisv().isNullOrUndefined()) { JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_CANT_CONVERT_TO, @@ -1982,7 +1984,7 @@ BuildFlatReplacement(JSContext *cx, HandleString textstr, HandleString repstr, return false; } } else { - if (!builder.append(str)) + if (!builder.append(RootedString(cx, str))) return false; } pos += str->length(); @@ -3063,9 +3065,8 @@ js_InitStringClass(JSContext *cx, JSObject *obj) Rooted global(cx, &obj->asGlobal()); - Rooted empty(cx, cx->runtime->emptyString); RootedObject proto(cx, global->createBlankPrototype(cx, &StringClass)); - if (!proto || !proto->asString().init(cx, empty)) + if (!proto || !proto->asString().init(cx, RootedString(cx, cx->runtime->emptyString))) return NULL; /* Now create the String function. */ @@ -3285,8 +3286,7 @@ js_ValueToSource(JSContext *cx, const Value &v) Value rval = NullValue(); Value fval; RootedId id(cx, NameToId(cx->runtime->atomState.toSourceAtom)); - Rooted obj(cx, &v.toObject()); - if (!GetMethod(cx, obj, id, 0, &fval)) + if (!GetMethod(cx, RootedObject(cx, &v.toObject()), id, 0, &fval)) return NULL; if (js_IsCallable(fval)) { if (!Invoke(cx, v, fval, 0, NULL, &rval)) diff --git a/js/src/jstypedarray.cpp b/js/src/jstypedarray.cpp index f7c195f75124..6c44eb6cecee 100644 --- a/js/src/jstypedarray.cpp +++ b/js/src/jstypedarray.cpp @@ -349,8 +349,7 @@ JSBool ArrayBufferObject::obj_lookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - Rooted id(cx, NameToId(name)); - return obj_lookupGeneric(cx, obj, id, objp, propp); + return obj_lookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); } JSBool @@ -388,8 +387,7 @@ JSBool ArrayBufferObject::obj_lookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return obj_lookupGeneric(cx, obj, id, objp, propp); + return obj_lookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); } JSBool @@ -404,7 +402,7 @@ ArrayBufferObject::obj_defineGeneric(JSContext *cx, HandleObject obj, HandleId i RootedObject delegate(cx, DelegateObject(cx, obj)); if (!delegate) return false; - return baseops::DefineGeneric(cx, delegate, id, v, getter, setter, attrs); + return baseops::DefineProperty(cx, delegate, id, v, getter, setter, attrs); } JSBool @@ -412,8 +410,7 @@ ArrayBufferObject::obj_defineProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - Rooted id(cx, NameToId(name)); - return obj_defineGeneric(cx, obj, id, v, getter, setter, attrs); + return obj_defineGeneric(cx, obj, RootedId(cx, NameToId(name)), v, getter, setter, attrs); } JSBool @@ -432,8 +429,8 @@ JSBool ArrayBufferObject::obj_defineSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return obj_defineGeneric(cx, obj, id, v, getter, setter, attrs); + return obj_defineGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), + v, getter, setter, attrs); } JSBool @@ -477,8 +474,7 @@ ArrayBufferObject::obj_getProperty(JSContext *cx, HandleObject obj, nobj = DelegateObject(cx, nobj); if (!nobj) return false; - Rooted id(cx, NameToId(name)); - return baseops::GetProperty(cx, nobj, receiver, id, vp); + return baseops::GetProperty(cx, nobj, receiver, RootedId(cx, NameToId(name)), vp); } JSBool @@ -507,8 +503,7 @@ JSBool ArrayBufferObject::obj_getSpecial(JSContext *cx, HandleObject obj, HandleObject receiver, HandleSpecialId sid, Value *vp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return obj_getGeneric(cx, obj, receiver, id, vp); + return obj_getGeneric(cx, obj, receiver, RootedId(cx, SPECIALID_TO_JSID(sid)), vp); } JSBool @@ -553,8 +548,7 @@ ArrayBufferObject::obj_setGeneric(JSContext *cx, HandleObject obj, HandleId id, obj->reportNotExtensible(cx); return false; } - Rooted newProto(cx, vp->toObjectOrNull()); - if (!SetProto(cx, obj, newProto, true)) { + if (!SetProto(cx, obj, RootedObject(cx, vp->toObjectOrNull()), true)) { // this can be caused for example by setting x.__proto__ = x // restore delegate prototype chain SetProto(cx, delegate, oldDelegateProto, true); @@ -571,8 +565,7 @@ JSBool ArrayBufferObject::obj_setProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *vp, JSBool strict) { - Rooted id(cx, NameToId(name)); - return obj_setGeneric(cx, obj, id, vp, strict); + return obj_setGeneric(cx, obj, RootedId(cx, NameToId(name)), vp, strict); } JSBool @@ -590,8 +583,7 @@ JSBool ArrayBufferObject::obj_setSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *vp, JSBool strict) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return obj_setGeneric(cx, obj, id, vp, strict); + return obj_setGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); } JSBool @@ -613,8 +605,7 @@ JSBool ArrayBufferObject::obj_getPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - Rooted id(cx, NameToId(name)); - return obj_getGenericAttributes(cx, obj, id, attrsp); + return obj_getGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); } JSBool @@ -631,8 +622,7 @@ JSBool ArrayBufferObject::obj_getSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return obj_getGenericAttributes(cx, obj, id, attrsp); + return obj_getGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); } JSBool @@ -655,8 +645,7 @@ JSBool ArrayBufferObject::obj_setPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - Rooted id(cx, NameToId(name)); - return obj_setGenericAttributes(cx, obj, id, attrsp); + return obj_setGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); } JSBool @@ -673,8 +662,7 @@ JSBool ArrayBufferObject::obj_setSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return obj_setGenericAttributes(cx, obj, id, attrsp); + return obj_setGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); } JSBool @@ -871,8 +859,7 @@ JSBool TypedArray::obj_lookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - Rooted id(cx, NameToId(name)); - return obj_lookupGeneric(cx, obj, id, objp, propp); + return obj_lookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); } JSBool @@ -900,8 +887,7 @@ JSBool TypedArray::obj_lookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return obj_lookupGeneric(cx, obj, id, objp, propp); + return obj_lookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); } JSBool @@ -930,8 +916,7 @@ TypedArray::obj_getElementAttributes(JSContext *cx, HandleObject obj, uint32_t i JSBool TypedArray::obj_getSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return obj_getGenericAttributes(cx, obj, id, attrsp); + return obj_getGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); } JSBool @@ -1121,9 +1106,9 @@ class TypedArrayTemplate if (IsDefinitelyIndex(idval, &index)) return obj_getElement(cx, obj, receiver, index, vp); - Rooted sid(cx); - if (ValueIsSpecial(obj, &idval, sid.address(), cx)) - return obj_getSpecial(cx, obj, receiver, sid, vp); + SpecialId sid; + if (ValueIsSpecial(obj, &idval, &sid, cx)) + return obj_getSpecial(cx, obj, receiver, Rooted(cx, sid), vp); JSAtom *atom = ToAtom(cx, idval); if (!atom) @@ -1132,8 +1117,7 @@ class TypedArrayTemplate if (atom->isIndex(&index)) return obj_getElement(cx, obj, receiver, index, vp); - Rooted name(cx, atom->asPropertyName()); - return obj_getProperty(cx, obj, receiver, name, vp); + return obj_getProperty(cx, obj, receiver, RootedPropertyName(cx, atom->asPropertyName()), vp); } static JSBool @@ -1251,8 +1235,7 @@ class TypedArrayTemplate static JSBool obj_setProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *vp, JSBool strict) { - Rooted id(cx, NameToId(name)); - return obj_setGeneric(cx, obj, id, vp, strict); + return obj_setGeneric(cx, obj, RootedId(cx, NameToId(name)), vp, strict); } static JSBool @@ -1277,8 +1260,7 @@ class TypedArrayTemplate static JSBool obj_setSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *vp, JSBool strict) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return obj_setGeneric(cx, obj, id, vp, strict); + return obj_setGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); } static JSBool @@ -1296,8 +1278,7 @@ class TypedArrayTemplate obj_defineProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - Rooted id(cx, NameToId(name)); - return obj_defineGeneric(cx, obj, id, v, getter, setter, attrs); + return obj_defineGeneric(cx, obj, RootedId(cx, NameToId(name)), v, getter, setter, attrs); } static JSBool @@ -1312,8 +1293,7 @@ class TypedArrayTemplate obj_defineSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return obj_defineGeneric(cx, obj, id, v, getter, setter, attrs); + return obj_defineGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), v, getter, setter, attrs); } static JSBool @@ -1557,8 +1537,7 @@ class TypedArrayTemplate } } - Rooted proto(cx, NULL); - return fromBuffer(cx, dataObj, byteOffset, length, proto); + return fromBuffer(cx, dataObj, byteOffset, length, RootedObject(cx)); } /* subarray(start[, end]) */ @@ -2914,19 +2893,15 @@ JSFunctionSpec _typedArray::jsfuncs[] = { \ MOZ_ASSERT(nelements <= INT32_MAX); \ return TypedArrayTemplate::fromLength(cx, nelements); \ } \ - JS_FRIEND_API(JSObject *) JS_New ## Name ## ArrayFromArray(JSContext *cx, JSObject *other_)\ + JS_FRIEND_API(JSObject *) JS_New ## Name ## ArrayFromArray(JSContext *cx, JSObject *other) \ { \ - Rooted other(cx, other_); \ - return TypedArrayTemplate::fromArray(cx, other); \ + return TypedArrayTemplate::fromArray(cx, RootedObject(cx, other)); \ } \ JS_FRIEND_API(JSObject *) JS_New ## Name ## ArrayWithBuffer(JSContext *cx, \ - JSObject *arrayBuffer_, uint32_t byteoffset, int32_t length) \ + JSObject *arrayBuffer, uint32_t byteoffset, int32_t length) \ { \ MOZ_ASSERT(byteoffset <= INT32_MAX); \ - Rooted arrayBuffer(cx, arrayBuffer_); \ - Rooted proto(cx, NULL); \ - return TypedArrayTemplate::fromBuffer(cx, arrayBuffer, byteoffset, length, \ - proto); \ + return TypedArrayTemplate::fromBuffer(cx, RootedObject(cx, arrayBuffer), byteoffset, length, RootedObject(cx)); \ } \ JS_FRIEND_API(JSBool) JS_Is ## Name ## Array(JSObject *obj, JSContext *cx) \ { \ diff --git a/js/src/jswrapper.cpp b/js/src/jswrapper.cpp index ea4274e65bfe..a238610a1ec9 100644 --- a/js/src/jswrapper.cpp +++ b/js/src/jswrapper.cpp @@ -177,20 +177,17 @@ DirectWrapper::hasOwn(JSContext *cx, JSObject *wrapper, jsid id, bool *bp) } bool -DirectWrapper::get(JSContext *cx, JSObject *wrapper, JSObject *receiver_, jsid id_, Value *vp) +DirectWrapper::get(JSContext *cx, JSObject *wrapper, JSObject *receiver, jsid id, Value *vp) { vp->setUndefined(); // default result if we refuse to perform this action - Rooted receiver(cx, receiver_); - Rooted id(cx, id_); - GET(wrappedObject(wrapper)->getGeneric(cx, receiver, id, vp)); + GET(wrappedObject(wrapper)->getGeneric(cx, RootedObject(cx, receiver), RootedId(cx, id), vp)); } bool -DirectWrapper::set(JSContext *cx, JSObject *wrapper, JSObject *receiver, jsid id_, bool strict, +DirectWrapper::set(JSContext *cx, JSObject *wrapper, JSObject *receiver, jsid id, bool strict, Value *vp) { - Rooted id(cx, id_); - SET(wrappedObject(wrapper)->setGeneric(cx, id, vp, strict)); + SET(wrappedObject(wrapper)->setGeneric(cx, RootedId(cx, id), vp, strict)); } bool @@ -206,8 +203,7 @@ DirectWrapper::iterate(JSContext *cx, JSObject *wrapper, unsigned flags, Value * { vp->setUndefined(); // default result if we refuse to perform this action const jsid id = JSID_VOID; - Rooted wrapped(cx, wrappedObject(wrapper)); - GET(GetIterator(cx, wrapped, flags, vp)); + GET(GetIterator(cx, RootedObject(cx, wrappedObject(wrapper)), flags, vp)); } bool @@ -419,8 +415,7 @@ ErrorCopier::~ErrorCopier() if (exc.isObject() && exc.toObject().isError() && exc.toObject().getPrivate()) { cx->clearPendingException(); ac.leave(); - Rooted errObj(cx, &exc.toObject()); - JSObject *copyobj = js_CopyErrorObject(cx, errObj, scope); + JSObject *copyobj = js_CopyErrorObject(cx, RootedObject(cx, &exc.toObject()), scope); if (copyobj) cx->setPendingException(ObjectValue(*copyobj)); } diff --git a/js/src/jsxml.cpp b/js/src/jsxml.cpp index 0a6ec8dd0ba3..7e002e7fa007 100644 --- a/js/src/jsxml.cpp +++ b/js/src/jsxml.cpp @@ -386,8 +386,7 @@ ConvertQNameToString(JSContext *cx, JSObject *obj) if (!str) return NULL; } - Rooted localName(cx, obj->getQNameLocalName()); - str = js_ConcatStrings(cx, str, localName); + str = js_ConcatStrings(cx, str, RootedString(cx, obj->getQNameLocalName())); if (!str) return NULL; @@ -4000,8 +3999,7 @@ PutProperty(JSContext *cx, HandleObject obj_, HandleId id_, JSBool strict, jsval * Note that rxml can't be null here, because target * and targetprop are non-null. */ - Rooted robj(cx, rxml->object); - ok = GetProperty(cx, robj, id, &attrval); + ok = GetProperty(cx, RootedObject(cx, rxml->object), id, &attrval); if (!ok) goto out; if (JSVAL_IS_PRIMITIVE(attrval)) /* no such attribute */ @@ -4565,8 +4563,7 @@ ResolveValue(JSContext *cx, JSXML *list, JSXML **result) return JS_FALSE; RootedId id(cx, OBJECT_TO_JSID(targetprop)); - Rooted baseObj(cx, base->object); - if (!GetProperty(cx, baseObj, id, &tv)) + if (!GetProperty(cx, RootedObject(cx, base->object), id, &tv)) return JS_FALSE; target = (JSXML *) JSVAL_TO_OBJECT(tv)->getPrivate(); @@ -4576,9 +4573,9 @@ ResolveValue(JSContext *cx, JSXML *list, JSXML **result) return JS_TRUE; } tv = STRING_TO_JSVAL(cx->runtime->emptyString); - if (!PutProperty(cx, baseObj, id, false, &tv)) + if (!PutProperty(cx, RootedObject(cx, base->object), id, false, &tv)) return JS_FALSE; - if (!GetProperty(cx, baseObj, id, &tv)) + if (!GetProperty(cx, RootedObject(cx, base->object), id, &tv)) return JS_FALSE; target = (JSXML *) JSVAL_TO_OBJECT(tv)->getPrivate(); } @@ -4640,18 +4637,17 @@ static JSBool HasSimpleContent(JSXML *xml); static JSBool -HasFunctionProperty(JSContext *cx, JSObject *obj_, jsid funid_, JSBool *found) +HasFunctionProperty(JSContext *cx, JSObject *obj, jsid funid_, JSBool *found) { JSObject *pobj; JSProperty *prop; JSXML *xml; - JS_ASSERT(obj_->getClass() == &XMLClass); + JS_ASSERT(obj->getClass() == &XMLClass); RootedId funid(cx, funid_); - Rooted obj(cx, obj_); - if (!baseops::LookupProperty(cx, obj, funid, &pobj, &prop)) + if (!baseops::LookupProperty(cx, RootedObject(cx, obj), funid, &pobj, &prop)) return false; if (!prop) { xml = (JSXML *) obj->getPrivate(); @@ -4794,8 +4790,7 @@ static JSBool xml_lookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - Rooted id(cx, NameToId(name)); - return xml_lookupGeneric(cx, obj, id, objp, propp); + return xml_lookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); } static JSBool @@ -4814,8 +4809,9 @@ xml_lookupElement(JSContext *cx, HandleObject obj, uint32_t index, JSObject **ob return false; const Shape *shape = - js_AddNativeProperty(cx, obj, id, GetProperty, PutProperty, SHAPE_INVALID_SLOT, - JSPROP_ENUMERATE, 0, 0); + js_AddNativeProperty(cx, RootedObject(cx, obj), id, GetProperty, PutProperty, + SHAPE_INVALID_SLOT, JSPROP_ENUMERATE, + 0, 0); if (!shape) return false; @@ -4827,8 +4823,7 @@ xml_lookupElement(JSContext *cx, HandleObject obj, uint32_t index, JSObject **ob static JSBool xml_lookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return xml_lookupGeneric(cx, obj, id, objp, propp); + return xml_lookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); } static JSBool @@ -4838,7 +4833,7 @@ xml_defineGeneric(JSContext *cx, HandleObject obj, HandleId id, const Value *v, if (IsFunctionObject(*v) || getter || setter || (attrs & JSPROP_ENUMERATE) == 0 || (attrs & (JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_SHARED))) { - return baseops::DefineGeneric(cx, obj, id, v, getter, setter, attrs); + return baseops::DefineProperty(cx, obj, id, v, getter, setter, attrs); } jsval tmp = *v; @@ -4849,8 +4844,7 @@ static JSBool xml_defineProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - Rooted id(cx, NameToId(name)); - return xml_defineGeneric(cx, obj, id, v, getter, setter, attrs); + return xml_defineGeneric(cx, obj, RootedId(cx, NameToId(name)), v, getter, setter, attrs); } static JSBool @@ -4867,8 +4861,7 @@ static JSBool xml_defineSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, const Value *v, PropertyOp getter, StrictPropertyOp setter, unsigned attrs) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return xml_defineGeneric(cx, obj, id, v, getter, setter, attrs); + return xml_defineGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), v, getter, setter, attrs); } static JSBool @@ -4885,8 +4878,7 @@ xml_getGeneric(JSContext *cx, HandleObject obj, HandleObject receiver, HandleId static JSBool xml_getProperty(JSContext *cx, HandleObject obj, HandleObject receiver, HandlePropertyName name, Value *vp) { - Rooted id(cx, NameToId(name)); - return xml_getGeneric(cx, obj, receiver, id, vp); + return xml_getGeneric(cx, obj, receiver, RootedId(cx, NameToId(name)), vp); } static JSBool @@ -4901,8 +4893,7 @@ xml_getElement(JSContext *cx, HandleObject obj, HandleObject receiver, uint32_t static JSBool xml_getSpecial(JSContext *cx, HandleObject obj, HandleObject receiver, HandleSpecialId sid, Value *vp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return xml_getGeneric(cx, obj, receiver, id, vp); + return xml_getGeneric(cx, obj, receiver, RootedId(cx, SPECIALID_TO_JSID(sid)), vp); } static JSBool @@ -4914,8 +4905,7 @@ xml_setGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *vp, JSBool s static JSBool xml_setProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *vp, JSBool strict) { - Rooted id(cx, NameToId(name)); - return xml_setGeneric(cx, obj, id, vp, strict); + return xml_setGeneric(cx, obj, RootedId(cx, NameToId(name)), vp, strict); } static JSBool @@ -4930,8 +4920,7 @@ xml_setElement(JSContext *cx, HandleObject obj, uint32_t index, Value *vp, JSBoo static JSBool xml_setSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *vp, JSBool strict) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return xml_setGeneric(cx, obj, id, vp, strict); + return xml_setGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), vp, strict); } static JSBool @@ -4948,8 +4937,7 @@ xml_getGenericAttributes(JSContext *cx, HandleObject obj, HandleId id, unsigned static JSBool xml_getPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - Rooted id(cx, NameToId(name)); - return xml_getGenericAttributes(cx, obj, id, attrsp); + return xml_getGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); } static JSBool @@ -4964,8 +4952,7 @@ xml_getElementAttributes(JSContext *cx, HandleObject obj, uint32_t index, unsign static JSBool xml_getSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return xml_getGenericAttributes(cx, obj, id, attrsp); + return xml_getGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); } static JSBool @@ -4986,8 +4973,7 @@ xml_setGenericAttributes(JSContext *cx, HandleObject obj, HandleId id, unsigned static JSBool xml_setPropertyAttributes(JSContext *cx, HandleObject obj, HandlePropertyName name, unsigned *attrsp) { - Rooted id(cx, NameToId(name)); - return xml_setGenericAttributes(cx, obj, id, attrsp); + return xml_setGenericAttributes(cx, obj, RootedId(cx, NameToId(name)), attrsp); } static JSBool @@ -5002,8 +4988,7 @@ xml_setElementAttributes(JSContext *cx, HandleObject obj, uint32_t index, unsign static JSBool xml_setSpecialAttributes(JSContext *cx, HandleObject obj, HandleSpecialId sid, unsigned *attrsp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return xml_setGenericAttributes(cx, obj, id, attrsp); + return xml_setGenericAttributes(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), attrsp); } static JSBool @@ -5052,8 +5037,7 @@ xml_deleteGeneric(JSContext *cx, HandleObject obj, HandleId id, Value *rval, JSB static JSBool xml_deleteProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, Value *rval, JSBool strict) { - Rooted id(cx, NameToId(name)); - return xml_deleteGeneric(cx, obj, id, rval, strict); + return xml_deleteGeneric(cx, obj, RootedId(cx, NameToId(name)), rval, strict); } static JSBool @@ -5086,8 +5070,7 @@ xml_deleteElement(JSContext *cx, HandleObject obj, uint32_t index, Value *rval, static JSBool xml_deleteSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, Value *rval, JSBool strict) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return xml_deleteGeneric(cx, obj, id, rval, strict); + return xml_deleteGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), rval, strict); } static JSString * @@ -5228,20 +5211,19 @@ again: * 11.2.2.1 Step 3(d) onward. */ JSBool -js_GetXMLMethod(JSContext *cx, HandleObject obj, jsid id_, Value *vp) +js_GetXMLMethod(JSContext *cx, HandleObject obj, jsid id, Value *vp) { JS_ASSERT(obj->isXML()); - Rooted id(cx, id_); if (JSID_IS_OBJECT(id)) - js_GetLocalNameFromFunctionQName(JSID_TO_OBJECT(id), id.address(), cx); + js_GetLocalNameFromFunctionQName(JSID_TO_OBJECT(id), &id, cx); /* * As our callers have a bad habit of passing a pointer to an unrooted * local value as vp, we use a proper root here. */ AutoValueRooter tvr(cx); - JSBool ok = GetXMLFunction(cx, obj, id, tvr.addr()); + JSBool ok = GetXMLFunction(cx, obj, RootedId(cx, id), tvr.addr()); *vp = tvr.value(); return ok; } @@ -5520,6 +5502,10 @@ xml_addNamespace(JSContext *cx, unsigned argc, jsval *vp) static JSBool xml_appendChild(JSContext *cx, unsigned argc, jsval *vp) { + jsval v; + JSObject *vobj; + JSXML *vxml; + NON_LIST_XML_METHOD_PROLOG; xml = CHECK_COPY_ON_WRITE(cx, xml, obj); if (!xml) @@ -5529,21 +5515,20 @@ xml_appendChild(JSContext *cx, unsigned argc, jsval *vp) if (!js_GetAnyName(cx, name.address())) return JS_FALSE; - Value v; if (!GetProperty(cx, obj, name, &v)) return JS_FALSE; JS_ASSERT(!JSVAL_IS_PRIMITIVE(v)); - Rooted vobj(cx, &v.toObject()); + vobj = JSVAL_TO_OBJECT(v); JS_ASSERT(vobj->isXML()); - JSXML *vxml = (JSXML *) vobj->getPrivate(); + vxml = (JSXML *) vobj->getPrivate(); JS_ASSERT(vxml->xml_class == JSXML_CLASS_LIST); if (!IndexToId(cx, vxml->xml_kids.length, name.address())) return JS_FALSE; *vp = (argc != 0) ? vp[2] : JSVAL_VOID; - if (!PutProperty(cx, vobj, name, false, vp)) + if (!PutProperty(cx, RootedObject(cx, JSVAL_TO_OBJECT(v)), name, false, vp)) return JS_FALSE; *vp = OBJECT_TO_JSVAL(obj); @@ -5629,7 +5614,7 @@ ValueToIdForXML(JSContext *cx, jsval v, jsid *idp) } static JSBool -xml_child_helper(JSContext *cx, JSObject *obj_, JSXML *xml, jsval name, +xml_child_helper(JSContext *cx, JSObject *obj, JSXML *xml, jsval name, jsval *rval) { bool isIndex; @@ -5640,8 +5625,6 @@ xml_child_helper(JSContext *cx, JSObject *obj_, JSXML *xml, jsval name, /* ECMA-357 13.4.4.6 */ JS_ASSERT(xml->xml_class != JSXML_CLASS_LIST); - Rooted obj(cx, obj_); - if (!IdValIsIndex(cx, name, &index, &isIndex)) return JS_FALSE; @@ -5666,7 +5649,7 @@ xml_child_helper(JSContext *cx, JSObject *obj_, JSXML *xml, jsval name, if (!ValueToIdForXML(cx, name, id.address())) return JS_FALSE; - return GetProperty(cx, obj, id, rval); + return GetProperty(cx, RootedObject(cx, obj), id, rval); } /* XML and XMLList */ @@ -6351,11 +6334,9 @@ xml_normalize_helper(JSContext *cx, JSObject *obj, JSXML *xml) } else if (kid->xml_class == JSXML_CLASS_TEXT) { while (i + 1 < n && (kid2 = XMLARRAY_MEMBER(&xml->xml_kids, i + 1, JSXML)) && - kid2->xml_class == JSXML_CLASS_TEXT) - { - Rooted lstr(cx, kid->xml_value); - Rooted rstr(cx, kid2->xml_value); - str = js_ConcatStrings(cx, lstr, rstr); + kid2->xml_class == JSXML_CLASS_TEXT) { + str = js_ConcatStrings(cx, RootedString(cx, kid->xml_value), + RootedString(cx, kid2->xml_value)); if (!str) return JS_FALSE; NormalizingDelete(cx, xml, i + 1); @@ -6702,9 +6683,8 @@ xml_setChildren(JSContext *cx, unsigned argc, jsval *vp) if (!StartNonListXMLMethod(cx, vp, obj.address())) return JS_FALSE; - Rooted id(cx, NameToId(cx->runtime->atomState.starAtom)); *vp = argc != 0 ? vp[2] : JSVAL_VOID; /* local root */ - if (!PutProperty(cx, obj, id, false, vp)) + if (!PutProperty(cx, obj, RootedId(cx, NameToId(cx->runtime->atomState.starAtom)), false, vp)) return JS_FALSE; *vp = OBJECT_TO_JSVAL(obj); diff --git a/js/src/methodjit/Compiler.cpp b/js/src/methodjit/Compiler.cpp index 0f80241796e2..395f28065ae8 100644 --- a/js/src/methodjit/Compiler.cpp +++ b/js/src/methodjit/Compiler.cpp @@ -4822,29 +4822,27 @@ mjit::Compiler::jsop_getprop(PropertyName *name, JSValueType knownType, bool testObject; JSObject *singleton = (*PC == JSOP_GETPROP || *PC == JSOP_CALLPROP) ? pushedSingleton(0) : NULL; - if (singleton && singleton->isFunction() && !hasTypeBarriers(PC)) { - Rooted id(cx, NameToId(name)); - if (testSingletonPropertyTypes(top, id, &testObject)) { - if (testObject) { - Jump notObject = frame.testObject(Assembler::NotEqual, top); - stubcc.linkExit(notObject, Uses(1)); - stubcc.leave(); - stubcc.masm.move(ImmPtr(name), Registers::ArgReg1); - OOL_STUBCALL(stubs::GetProp, REJOIN_FALLTHROUGH); - testPushedType(REJOIN_FALLTHROUGH, -1); - } - - frame.pop(); - frame.push(ObjectValue(*singleton)); - - if (script->hasScriptCounts && cx->typeInferenceEnabled()) - bumpPropCount(PC, PCCounts::PROP_STATIC); - - if (testObject) - stubcc.rejoin(Changes(1)); - - return true; + if (singleton && singleton->isFunction() && !hasTypeBarriers(PC) && + testSingletonPropertyTypes(top, RootedId(cx, NameToId(name)), &testObject)) { + if (testObject) { + Jump notObject = frame.testObject(Assembler::NotEqual, top); + stubcc.linkExit(notObject, Uses(1)); + stubcc.leave(); + stubcc.masm.move(ImmPtr(name), Registers::ArgReg1); + OOL_STUBCALL(stubs::GetProp, REJOIN_FALLTHROUGH); + testPushedType(REJOIN_FALLTHROUGH, -1); } + + frame.pop(); + frame.push(ObjectValue(*singleton)); + + if (script->hasScriptCounts && cx->typeInferenceEnabled()) + bumpPropCount(PC, PCCounts::PROP_STATIC); + + if (testObject) + stubcc.rejoin(Changes(1)); + + return true; } /* Check if this is a property access we can make a loop invariant entry for. */ @@ -5121,8 +5119,7 @@ mjit::Compiler::testSingletonPropertyTypes(FrameEntry *top, HandleId id, bool *t JS_ASSERT_IF(top->isTypeKnown(), top->isType(JSVAL_TYPE_OBJECT)); types::TypeObject *object = types->getTypeObject(0); if (object && object->proto) { - Rooted proto(cx, object->proto); - if (!testSingletonProperty(proto, id)) + if (!testSingletonProperty(RootedObject(cx, object->proto), id)) return false; types->addFreeze(cx); @@ -5199,13 +5196,12 @@ mjit::Compiler::jsop_getprop_dispatch(PropertyName *name) if (ownTypes->isOwnProperty(cx, object, false)) return false; - Rooted proto(cx, object->proto); - if (!testSingletonProperty(proto, id)) + if (!testSingletonProperty(RootedObject(cx, object->proto), id)) return false; - if (proto->getType(cx)->unknownProperties()) + if (object->proto->getType(cx)->unknownProperties()) return false; - types::TypeSet *protoTypes = proto->type()->getProperty(cx, id, false); + types::TypeSet *protoTypes = object->proto->type()->getProperty(cx, id, false); if (!protoTypes) return false; JSObject *singleton = protoTypes->getSingleton(cx); @@ -6259,12 +6255,9 @@ mjit::Compiler::jsop_getgname(uint32_t index) /* Optimize singletons like Math for JSOP_CALLPROP. */ JSObject *obj = pushedSingleton(0); - if (obj && !hasTypeBarriers(PC)) { - Rooted id(cx, NameToId(name)); - if (testSingletonProperty(globalObj, id)) { - frame.push(ObjectValue(*obj)); - return true; - } + if (obj && !hasTypeBarriers(PC) && testSingletonProperty(globalObj, RootedId(cx, NameToId(name)))) { + frame.push(ObjectValue(*obj)); + return true; } jsid id = NameToId(name); diff --git a/js/src/methodjit/FastOps.cpp b/js/src/methodjit/FastOps.cpp index a5533588664c..5a033a09acba 100644 --- a/js/src/methodjit/FastOps.cpp +++ b/js/src/methodjit/FastOps.cpp @@ -2655,11 +2655,11 @@ mjit::Compiler::jsop_initprop() JSObject *holder; JSProperty *prop = NULL; - Rooted id(cx, NameToId(name)); #ifdef DEBUG bool res = #endif - LookupPropertyWithFlags(cx, baseobj, id, JSRESOLVE_QUALIFIED, &holder, &prop); + LookupPropertyWithFlags(cx, baseobj, RootedId(cx, NameToId(name)), + JSRESOLVE_QUALIFIED, &holder, &prop); JS_ASSERT(res && prop && holder == baseobj); RegisterID objReg = frame.copyDataIntoReg(obj); diff --git a/js/src/methodjit/PolyIC.cpp b/js/src/methodjit/PolyIC.cpp index ff72f3b31a14..4fa9abdbcae5 100644 --- a/js/src/methodjit/PolyIC.cpp +++ b/js/src/methodjit/PolyIC.cpp @@ -1665,7 +1665,7 @@ class ScopeNameCompiler : public PICStubCompiler bool retrieve(Value *vp, PICInfo::Kind kind) { JSObject *obj = getprop.obj; - Rooted holder(cx, getprop.holder); + JSObject *holder = getprop.holder; const JSProperty *prop = getprop.prop; if (!prop) { @@ -1690,7 +1690,7 @@ class ScopeNameCompiler : public PICStubCompiler } const Shape *shape = getprop.shape; - Rooted normalized(cx, obj); + JSObject *normalized = obj; if (obj->isWith() && !shape->hasDefaultGetter()) normalized = &obj->asWith().object(); NATIVE_GET(cx, normalized, holder, shape, 0, vp, return false); @@ -2437,8 +2437,7 @@ GetElementIC::attachTypedArray(VMFrame &f, JSObject *obj, const Value &v, jsid i disable(f, "generated typed array stub"); // Fetch the value as expected of Lookup_Cacheable for GetElement. - Rooted idRoot(cx, id); - if (!obj->getGeneric(cx, idRoot, vp)) + if (!obj->getGeneric(cx, RootedId(cx, id), vp)) return Lookup_Error; return Lookup_Cacheable; @@ -2505,11 +2504,11 @@ ic::GetElement(VMFrame &f, ic::GetElementIC *ic) } #endif - Rooted id(cx); + jsid id; if (idval.isInt32() && INT_FITS_IN_JSID(idval.toInt32())) { id = INT_TO_JSID(idval.toInt32()); } else { - if (!InternNonIntElementId(cx, obj, idval, id.address())) + if (!InternNonIntElementId(cx, obj, idval, &id)) THROW(); } @@ -2528,7 +2527,7 @@ ic::GetElement(VMFrame &f, ic::GetElementIC *ic) } } - if (!obj->getGeneric(cx, id, &f.regs.sp[-2])) + if (!obj->getGeneric(cx, RootedId(cx, id), &f.regs.sp[-2])) THROW(); #if JS_HAS_NO_SUCH_METHOD diff --git a/js/src/methodjit/StubCalls.cpp b/js/src/methodjit/StubCalls.cpp index c5445340fa44..57c054f5b208 100644 --- a/js/src/methodjit/StubCalls.cpp +++ b/js/src/methodjit/StubCalls.cpp @@ -52,10 +52,10 @@ using namespace js::types; using namespace JSC; void JS_FASTCALL -stubs::BindName(VMFrame &f, PropertyName *name_) +stubs::BindName(VMFrame &f, PropertyName *name) { - Rooted name(f.cx, name_); - JSObject *obj = FindIdentifierBase(f.cx, f.fp()->scopeChain(), name); + JSObject *obj = FindIdentifierBase(f.cx, f.fp()->scopeChain(), + RootedPropertyName(f.cx, name)); if (!obj) THROW(); f.regs.sp[0].setObject(*obj); @@ -505,8 +505,7 @@ StubEqualityOp(VMFrame &f) JSObject *l = &lval.toObject(), *r = &rval.toObject(); if (JSEqualityOp eq = l->getClass()->ext.equality) { JSBool equal; - Rooted lobj(cx, l); - if (!eq(cx, lobj, &rval, &equal)) + if (!eq(cx, RootedObject(cx, l), &rval, &equal)) return false; cond = !!equal == EQ; } else { @@ -887,8 +886,7 @@ stubs::NewInitObject(VMFrame &f, JSObject *baseobj) JSObject *obj; if (baseobj) { - Rooted base(cx, baseobj); - obj = CopyInitializerObject(cx, base); + obj = CopyInitializerObject(cx, RootedObject(cx, baseobj)); } else { gc::AllocKind kind = GuessObjectGCKind(0); obj = NewBuiltinClassInstance(cx, &ObjectClass, kind); @@ -1067,8 +1065,8 @@ stubs::IterMore(VMFrame &f) JS_ASSERT(f.regs.sp[-1].isObject()); Value v; - Rooted iterobj(f.cx, &f.regs.sp[-1].toObject()); - if (!js_IteratorMore(f.cx, iterobj, &v)) + JSObject *iterobj = &f.regs.sp[-1].toObject(); + if (!js_IteratorMore(f.cx, RootedObject(f.cx, iterobj), &v)) THROWV(JS_FALSE); return v.toBoolean(); @@ -1402,8 +1400,9 @@ stubs::DefVarOrConst(VMFrame &f, PropertyName *dn) if (JSOp(*f.regs.pc) == JSOP_DEFCONST) attrs |= JSPROP_READONLY; - Rooted varobj(f.cx, &f.fp()->varObj()); - if (!DefVarOrConstOperation(f.cx, varobj, dn, attrs)) + JSObject &obj = f.fp()->varObj(); + + if (!DefVarOrConstOperation(f.cx, RootedObject(f.cx, &obj), dn, attrs)) THROW(); } diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp index a5693dba6fb8..ef5aa3ce4b81 100644 --- a/js/src/shell/js.cpp +++ b/js/src/shell/js.cpp @@ -2782,8 +2782,7 @@ static JSBool resolver_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags, JSObject **objp) { jsval v = JS_GetReservedSlot(obj, 0); - Rooted vobj(cx, &v.toObject()); - return CopyProperty(cx, obj, vobj, id, flags, objp); + return CopyProperty(cx, obj, RootedObject(cx, JSVAL_TO_OBJECT(v)), id, flags, objp); } static JSBool @@ -2795,10 +2794,8 @@ resolver_enumerate(JSContext *cx, HandleObject obj) AutoIdArray ida(cx, JS_Enumerate(cx, referent)); bool ok = !!ida; JSObject *ignore; - for (size_t i = 0; ok && i < ida.length(); i++) { - Rooted id(cx, ida[i]); - ok = CopyProperty(cx, obj, referent, id, JSRESOLVE_QUALIFIED, &ignore); - } + for (size_t i = 0; ok && i < ida.length(); i++) + ok = CopyProperty(cx, obj, referent, RootedId(cx, ida[i]), JSRESOLVE_QUALIFIED, &ignore); return ok; } @@ -3150,13 +3147,13 @@ Parent(JSContext *cx, unsigned argc, jsval *vp) return false; } - Rooted parent(cx, JS_GetParent(&v.toObject())); + JSObject *parent = JS_GetParent(JSVAL_TO_OBJECT(v)); *vp = OBJECT_TO_JSVAL(parent); /* Outerize if necessary. Embrace the ugliness! */ if (parent) { if (JSObjectOp op = parent->getClass()->ext.outerObject) - *vp = OBJECT_TO_JSVAL(op(cx, parent)); + *vp = OBJECT_TO_JSVAL(op(cx, RootedObject(cx, parent))); } return true; diff --git a/js/src/shell/jsheaptools.cpp b/js/src/shell/jsheaptools.cpp index 2c7b4c1af511..b0ab98b93ed7 100644 --- a/js/src/shell/jsheaptools.cpp +++ b/js/src/shell/jsheaptools.cpp @@ -552,8 +552,7 @@ FindReferences(JSContext *cx, unsigned argc, jsval *vp) /* Given the reversed map, find the referents of target. */ ReferenceFinder finder(cx, reverser); - Rooted targetObj(cx, &target.toObject()); - JSObject *references = finder.findReferences(targetObj); + JSObject *references = finder.findReferences(RootedObject(cx, &target.toObject())); if (!references) return false; diff --git a/js/src/vm/ArgumentsObject.cpp b/js/src/vm/ArgumentsObject.cpp index fed1741486ff..6867fb7f953d 100644 --- a/js/src/vm/ArgumentsObject.cpp +++ b/js/src/vm/ArgumentsObject.cpp @@ -203,7 +203,7 @@ ArgSetter(JSContext *cx, HandleObject obj, HandleId id, JSBool strict, Value *vp */ RootedValue value(cx); return baseops::DeleteGeneric(cx, obj, id, value.address(), false) && - baseops::DefineGeneric(cx, obj, id, vp, NULL, NULL, JSPROP_ENUMERATE); + baseops::DefineProperty(cx, obj, id, vp, NULL, NULL, JSPROP_ENUMERATE); } static JSBool @@ -233,7 +233,7 @@ args_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags, } Value undef = UndefinedValue(); - if (!baseops::DefineGeneric(cx, argsobj, id, &undef, ArgGetter, ArgSetter, attrs)) + if (!baseops::DefineProperty(cx, argsobj, id, &undef, ArgGetter, ArgSetter, attrs)) return JS_FALSE; *objp = argsobj; @@ -282,8 +282,7 @@ NormalArgumentsObject::optimizedGetElem(JSContext *cx, StackFrame *fp, const Val if (!proto) return false; - Rooted root(cx, id); - return proto->getGeneric(cx, root, vp); + return proto->getGeneric(cx, RootedId(cx, id), vp); } static JSBool @@ -397,7 +396,7 @@ strictargs_resolve(JSContext *cx, HandleObject obj, HandleId id, unsigned flags, } Value undef = UndefinedValue(); - if (!baseops::DefineGeneric(cx, argsobj, id, &undef, getter, setter, attrs)) + if (!baseops::DefineProperty(cx, argsobj, id, &undef, getter, setter, attrs)) return false; *objp = argsobj; diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp index d9d868b1b98f..b3b7d07ed878 100644 --- a/js/src/vm/Debugger.cpp +++ b/js/src/vm/Debugger.cpp @@ -840,7 +840,7 @@ Debugger::parseResumptionValue(AutoCompartment &ac, bool ok, const Value &rv, Va /* Check that rv is {return: val} or {throw: val}. */ JSContext *cx = ac.context; - Rooted obj(cx); + JSObject *obj; const Shape *shape; jsid returnId = NameToId(cx->runtime->atomState.returnAtom); jsid throwId = NameToId(cx->runtime->atomState.throwAtom); @@ -878,13 +878,11 @@ CallMethodIfPresent(JSContext *cx, HandleObject obj, const char *name, int argc, { rval->setUndefined(); JSAtom *atom = js_Atomize(cx, name, strlen(name)); - if (!atom) - return false; - - Rooted id(cx, AtomToId(atom)); Value fval; - return GetMethod(cx, obj, id, 0, &fval) && - (!js_IsCallable(fval) || Invoke(cx, ObjectValue(*obj), fval, argc, argv, rval)); + return atom && + GetMethod(cx, obj, RootedId(cx, AtomToId(atom)), 0, &fval) && + (!js_IsCallable(fval) || + Invoke(cx, ObjectValue(*obj), fval, argc, argv, rval)); } JSTrapStatus @@ -1130,8 +1128,7 @@ Debugger::onTrap(JSContext *cx, Value *vp) if (!dbg->getScriptFrame(cx, fp, &argv[0])) return dbg->handleUncaughtException(ac, vp, false); Value rv; - Rooted handler(cx, bp->handler); - bool ok = CallMethodIfPresent(cx, handler, "hit", 1, argv, &rv); + bool ok = CallMethodIfPresent(cx, RootedObject(cx, bp->handler), "hit", 1, argv, &rv); JSTrapStatus st = dbg->parseResumptionValue(ac, ok, rv, vp, true); if (st != JSTRAP_CONTINUE) return st; @@ -2322,8 +2319,7 @@ Debugger::findScripts(JSContext *cx, unsigned argc, Value *vp) result->ensureDenseArrayInitializedLength(cx, 0, scripts.length()); for (size_t i = 0; i < scripts.length(); i++) { - JSObject *scriptObject = - dbg->wrapScript(cx, Handle::fromMarkedLocation(&scripts[i])); + JSObject *scriptObject = dbg->wrapScript(cx, Rooted(cx, scripts[i])); if (!scriptObject) return false; result->setDenseArrayElement(i, ObjectValue(*scriptObject)); @@ -2541,13 +2537,11 @@ DebuggerScript_getChildScripts(JSContext *cx, unsigned argc, Value *vp) * It is not really a child script of this script, so skip it. */ ObjectArray *objects = script->objects(); - Rooted script(cx); for (uint32_t i = script->savedCallerFun ? 1 : 0; i < objects->length; i++) { JSObject *obj = objects->vector[i]; if (obj->isFunction()) { JSFunction *fun = static_cast(obj); - script = fun->script(); - JSObject *s = dbg->wrapScript(cx, script); + JSObject *s = dbg->wrapScript(cx, Rooted(cx, fun->script())); if (!s || !js_NewbornArrayPush(cx, result, ObjectValue(*s))) return false; } @@ -3214,7 +3208,7 @@ DebuggerFrame_getArguments(JSContext *cx, unsigned argc, Value *vp) SetReservedSlot(argsobj, JSSLOT_DEBUGARGUMENTS_FRAME, ObjectValue(*thisobj)); JS_ASSERT(fp->numActualArgs() <= 0x7fffffff); - unsigned fargc = fp->numActualArgs(); + int32_t fargc = int32_t(fp->numActualArgs()); if (!DefineNativeProperty(cx, argsobj, cx->runtime->atomState.lengthAtom, Int32Value(fargc), NULL, NULL, JSPROP_PERMANENT | JSPROP_READONLY, 0, 0)) @@ -3222,16 +3216,12 @@ DebuggerFrame_getArguments(JSContext *cx, unsigned argc, Value *vp) return false; } - Rooted id(cx); - for (unsigned i = 0; i < fargc; i++) { + for (int32_t i = 0; i < fargc; i++) { RootedFunction getobj(cx); getobj = js_NewFunction(cx, NULL, DebuggerArguments_getArg, 0, 0, global, NULL, JSFunction::ExtendedFinalizeKind); - if (!getobj) - return false; - id = INT_TO_JSID(i); if (!getobj || - !DefineNativeProperty(cx, argsobj, id, UndefinedValue(), + !DefineNativeProperty(cx, argsobj, RootedId(cx, INT_TO_JSID(i)), UndefinedValue(), JS_DATA_TO_FUNC_PTR(PropertyOp, getobj.reference()), NULL, JSPROP_ENUMERATE | JSPROP_SHARED | JSPROP_GETTER, 0, 0)) { @@ -3257,8 +3247,7 @@ DebuggerFrame_getScript(JSContext *cx, unsigned argc, Value *vp) if (fp->isFunctionFrame() && !fp->isEvalFrame()) { JSFunction &callee = fp->callee(); if (callee.isInterpreted()) { - Rooted script(cx, callee.script()); - scriptObject = debug->wrapScript(cx, script); + scriptObject = debug->wrapScript(cx, Rooted(cx, callee.script())); if (!scriptObject) return false; } @@ -3267,8 +3256,8 @@ DebuggerFrame_getScript(JSContext *cx, unsigned argc, Value *vp) * We got eval, JS_Evaluate*, or JS_ExecuteScript non-function script * frames. */ - Rooted script(cx, fp->script()); - scriptObject = debug->wrapScript(cx, script); + JSScript *script = fp->script(); + scriptObject = debug->wrapScript(cx, Rooted(cx, script)); if (!scriptObject) return false; } @@ -3458,8 +3447,7 @@ DebuggerFrameEval(JSContext *cx, unsigned argc, Value *vp, EvalBindingsMode mode } for (size_t i = 0; i < keys.length(); i++) { Value *valp = &values[i]; - if (!bindingsobj->getGeneric(cx, bindingsobj, - Handle::fromMarkedLocation(&keys[i]), valp) || + if (!bindingsobj->getGeneric(cx, bindingsobj, RootedId(cx, keys[i]), valp) || !dbg->unwrapDebuggeeValue(cx, valp)) { return false; @@ -3728,8 +3716,7 @@ DebuggerObject_getScript(JSContext *cx, unsigned argc, Value *vp) return true; } - Rooted script(cx, fun->script()); - JSObject *scriptObject = dbg->wrapScript(cx, script); + JSObject *scriptObject = dbg->wrapScript(cx, Rooted(cx, fun->script())); if (!scriptObject) return false; @@ -3932,11 +3919,8 @@ DebuggerObject_defineProperties(JSContext *cx, unsigned argc, Value *vp) ErrorCopier ec(ac, dbg->toJSObject()); for (size_t i = 0; i < n; i++) { bool dummy; - if (!DefineProperty(cx, obj, Handle::fromMarkedLocation(&rewrappedIds[i]), - rewrappedDescs[i], true, &dummy)) - { + if (!DefineProperty(cx, obj, RootedId(cx, rewrappedIds[i]), rewrappedDescs[i], true, &dummy)) return false; - } } } diff --git a/js/src/vm/RegExpObject.cpp b/js/src/vm/RegExpObject.cpp index 3ab9e592af3d..0f1f471b2f80 100644 --- a/js/src/vm/RegExpObject.cpp +++ b/js/src/vm/RegExpObject.cpp @@ -97,16 +97,14 @@ RegExpObjectBuilder::clone(Handle other, Handle RegExpFlag staticsFlags = res->getFlags(); if ((origFlags & staticsFlags) != staticsFlags) { RegExpFlag newFlags = RegExpFlag(origFlags | staticsFlags); - Rooted source(cx, other->getSource()); - return build(source, newFlags); + return build(Rooted(cx, other->getSource()), newFlags); } RegExpGuard g; if (!other->getShared(cx, &g)) return NULL; - Rooted source(cx, other->getSource()); - return build(source, *g); + return build(RootedAtom(cx, other->getSource()), *g); } /* MatchPairs */ @@ -620,12 +618,14 @@ RegExpCompartment::get(JSContext *cx, JSAtom *atom, JSString *opt, RegExpGuard * /* Functions */ JSObject * -js::CloneRegExpObject(JSContext *cx, JSObject *obj_, JSObject *proto_) +js::CloneRegExpObject(JSContext *cx, JSObject *obj, JSObject *proto) { + JS_ASSERT(obj->isRegExp()); + JS_ASSERT(proto->isRegExp()); + RegExpObjectBuilder builder(cx); - Rooted regex(cx, &obj_->asRegExp()); - Rooted proto(cx, &proto_->asRegExp()); - return builder.clone(regex, proto); + return builder.clone(Rooted(cx, &obj->asRegExp()), + Rooted(cx, &proto->asRegExp())); } bool diff --git a/js/src/vm/ScopeObject.cpp b/js/src/vm/ScopeObject.cpp index 245e6f6dbbbc..06369efd6780 100644 --- a/js/src/vm/ScopeObject.cpp +++ b/js/src/vm/ScopeObject.cpp @@ -119,8 +119,7 @@ CallObject::create(JSContext *cx, JSScript *script, HandleObject enclosing, Hand */ if (&enclosing->global() != obj->getParent()) { JS_ASSERT(obj->getParent() == NULL); - Rooted global(cx, &enclosing->global()); - if (!JSObject::setParent(cx, obj, global)) + if (!JSObject::setParent(cx, obj, RootedObject(cx, &enclosing->global()))) return NULL; } @@ -159,8 +158,7 @@ CallObject::createForFunction(JSContext *cx, StackFrame *fp) } RootedScript script(cx, fp->script()); - Rooted callee(cx, &fp->callee()); - CallObject *callobj = create(cx, script, scopeChain, callee); + CallObject *callobj = create(cx, script, scopeChain, RootedFunction(cx, &fp->callee())); if (!callobj) return NULL; @@ -214,8 +212,7 @@ CallObject::createForStrictEval(JSContext *cx, StackFrame *fp) JS_ASSERT(cx->fp() == fp); JS_ASSERT(cx->regs().pc == fp->script()->code); - Rooted callee(cx, NULL); - return create(cx, fp->script(), fp->scopeChain(), callee); + return create(cx, fp->script(), fp->scopeChain(), RootedFunction(cx)); } JSBool @@ -306,8 +303,8 @@ DeclEnvObject::create(JSContext *cx, StackFrame *fp) return NULL; - Rooted id(cx, AtomToId(fp->fun()->atom)); - if (!DefineNativeProperty(cx, obj, id, ObjectValue(fp->callee()), NULL, NULL, + if (!DefineNativeProperty(cx, obj, RootedId(cx, AtomToId(fp->fun()->atom)), + ObjectValue(fp->callee()), NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY, 0, 0)) { return NULL; @@ -357,8 +354,7 @@ with_LookupGeneric(JSContext *cx, HandleObject obj, HandleId id, JSObject **objp static JSBool with_LookupProperty(JSContext *cx, HandleObject obj, HandlePropertyName name, JSObject **objp, JSProperty **propp) { - Rooted id(cx, NameToId(name)); - return with_LookupGeneric(cx, obj, id, objp, propp); + return with_LookupGeneric(cx, obj, RootedId(cx, NameToId(name)), objp, propp); } static JSBool @@ -374,8 +370,7 @@ with_LookupElement(JSContext *cx, HandleObject obj, uint32_t index, JSObject **o static JSBool with_LookupSpecial(JSContext *cx, HandleObject obj, HandleSpecialId sid, JSObject **objp, JSProperty **propp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return with_LookupGeneric(cx, obj, id, objp, propp); + return with_LookupGeneric(cx, obj, RootedId(cx, SPECIALID_TO_JSID(sid)), objp, propp); } static JSBool @@ -387,8 +382,7 @@ with_GetGeneric(JSContext *cx, HandleObject obj, HandleObject receiver, HandleId static JSBool with_GetProperty(JSContext *cx, HandleObject obj, HandleObject receiver, HandlePropertyName name, Value *vp) { - Rooted id(cx, NameToId(name)); - return with_GetGeneric(cx, obj, receiver, id, vp); + return with_GetGeneric(cx, obj, receiver, RootedId(cx, NameToId(name)), vp); } static JSBool @@ -403,8 +397,7 @@ with_GetElement(JSContext *cx, HandleObject obj, HandleObject receiver, uint32_t static JSBool with_GetSpecial(JSContext *cx, HandleObject obj, HandleObject receiver, HandleSpecialId sid, Value *vp) { - Rooted id(cx, SPECIALID_TO_JSID(sid)); - return with_GetGeneric(cx, obj, receiver, id, vp); + return with_GetGeneric(cx, obj, receiver, RootedId(cx, SPECIALID_TO_JSID(sid)), vp); } static JSBool @@ -594,8 +587,7 @@ ClonedBlockObject::create(JSContext *cx, Handle block, Stac /* Set the parent if necessary, as for call objects. */ if (&fp->global() != obj->getParent()) { JS_ASSERT(obj->getParent() == NULL); - Rooted global(cx, &fp->global()); - if (!JSObject::setParent(cx, obj, global)) + if (!JSObject::setParent(cx, obj, RootedObject(cx, &fp->global()))) return NULL; } @@ -1333,21 +1325,18 @@ class DebugScopeProxy : public BaseProxyHandler if (handleUnaliasedAccess(cx, scope, id, GET, vp)) return true; - Rooted scopeObj(cx, &scope); - Rooted idRoot(cx, id); - return scope.getGeneric(cx, scopeObj, idRoot, vp); + return scope.getGeneric(cx, RootedObject(cx, &scope), RootedId(cx, id), vp); } - bool set(JSContext *cx, JSObject *proxy, JSObject *receiver, jsid id_, bool strict, + bool set(JSContext *cx, JSObject *proxy, JSObject *receiver, jsid id, bool strict, Value *vp) MOZ_OVERRIDE { ScopeObject &scope = proxy->asDebugScope().scope(); - if (handleUnaliasedAccess(cx, scope, id_, SET, vp)) + if (handleUnaliasedAccess(cx, scope, id, SET, vp)) return true; - Rooted id(cx, id_); - return scope.setGeneric(cx, id, vp, strict); + return scope.setGeneric(cx, RootedId(cx, id), vp, strict); } bool defineProperty(JSContext *cx, JSObject *proxy, jsid id, PropertyDescriptor *desc) MOZ_OVERRIDE diff --git a/js/xpconnect/src/XPCComponents.cpp b/js/xpconnect/src/XPCComponents.cpp index d9a4474b07da..1093607fdb7b 100644 --- a/js/xpconnect/src/XPCComponents.cpp +++ b/js/xpconnect/src/XPCComponents.cpp @@ -4082,7 +4082,7 @@ nsXPCComponents_Utils::GetGlobalForObject(const JS::Value& object, // a wrapper for the foreign global. So we need to unwrap before getting the // parent, enter the compartment for the duration of the call, and wrap the // result. - JS::Rooted obj(cx, JSVAL_TO_OBJECT(object)); + JSObject *obj = JSVAL_TO_OBJECT(object); obj = js::UnwrapObject(obj); { JSAutoEnterCompartment ac; @@ -4090,12 +4090,12 @@ nsXPCComponents_Utils::GetGlobalForObject(const JS::Value& object, return NS_ERROR_FAILURE; obj = JS_GetGlobalForObject(cx, obj); } - JS_WrapObject(cx, obj.address()); + JS_WrapObject(cx, &obj); *retval = OBJECT_TO_JSVAL(obj); // Outerize if necessary. if (JSObjectOp outerize = js::GetObjectClass(obj)->ext.outerObject) - *retval = OBJECT_TO_JSVAL(outerize(cx, obj)); + *retval = OBJECT_TO_JSVAL(outerize(cx, JS::RootedObject(cx, obj))); return NS_OK; } diff --git a/mfbt/Assertions.h b/mfbt/Assertions.h index 407fb24e98d1..a6615c2f0fb8 100644 --- a/mfbt/Assertions.h +++ b/mfbt/Assertions.h @@ -9,27 +9,11 @@ #define mozilla_Assertions_h_ #include "mozilla/Attributes.h" +#include "mozilla/Types.h" -#include #include #include -#ifdef WIN32 - /* - * TerminateProcess and GetCurrentProcess are defined in , which - * further depends on . We hardcode these few definitions manually - * because those headers clutter the global namespace with a significant - * number of undesired macros and symbols. - */ -# ifdef __cplusplus - extern "C" { -# endif - __declspec(dllimport) int __stdcall - TerminateProcess(void* hProcess, unsigned int uExitCode); - __declspec(dllimport) void* __stdcall GetCurrentProcess(void); -# ifdef __cplusplus - } -# endif -#else +#ifndef WIN32 # include #endif #ifdef ANDROID @@ -136,30 +120,22 @@ extern "C" { * On MSVC use the __debugbreak compiler intrinsic, which produces an inline * (not nested in a system function) breakpoint. This distinctively invokes * Breakpad without requiring system library symbols on all stack-processing - * machines, as a nested breakpoint would require. We use TerminateProcess - * with the exit code aborting would generate because we don't want to invoke - * atexit handlers, destructors, library unload handlers, and so on when our - * process might be in a compromised state. We don't use abort() because - * it'd cause Windows to annoyingly pop up the process error dialog multiple - * times. See bug 345118 and bug 426163. - * - * (Technically these are Windows requirements, not MSVC requirements. But - * practically you need MSVC for debugging, and we only ship builds created - * by MSVC, so doing it this way reduces complexity.) + * machines, as a nested breakpoint would require. (Technically all Windows + * compilers would require this, but practically only MSVC matters.) */ # ifdef __cplusplus # define MOZ_CRASH() \ do { \ __debugbreak(); \ *((volatile int*) NULL) = 123; \ - ::TerminateProcess(::GetCurrentProcess(), 3); \ + ::exit(3); \ } while (0) # else # define MOZ_CRASH() \ do { \ __debugbreak(); \ *((volatile int*) NULL) = 123; \ - TerminateProcess(GetCurrentProcess(), 3); \ + exit(3); \ } while (0) # endif #else diff --git a/mfbt/HashFunctions.cpp b/mfbt/HashFunctions.cpp index 28d4c9f4022b..199e265de52e 100644 --- a/mfbt/HashFunctions.cpp +++ b/mfbt/HashFunctions.cpp @@ -6,7 +6,6 @@ /* Implementations of hash functions. */ #include "mozilla/HashFunctions.h" -#include "mozilla/Types.h" #include diff --git a/mfbt/HashFunctions.h b/mfbt/HashFunctions.h index 7a19749e556d..64ac6f91ce5c 100644 --- a/mfbt/HashFunctions.h +++ b/mfbt/HashFunctions.h @@ -48,7 +48,6 @@ #include "mozilla/Assertions.h" #include "mozilla/Attributes.h" #include "mozilla/StandardInteger.h" -#include "mozilla/Types.h" #ifdef __cplusplus namespace mozilla { diff --git a/mfbt/Scoped.h b/mfbt/Scoped.h index b811a47d5e44..27016b3c32ee 100644 --- a/mfbt/Scoped.h +++ b/mfbt/Scoped.h @@ -35,12 +35,12 @@ * Note that the RAII classes defined in this header do _not_ perform any form * of reference-counting or garbage-collection. These classes have exactly two * behaviors: - * * - if |forget()| has not been called, the resource is always deallocated at * the end of the scope; * - if |forget()| has been called, any control on the resource is unbound * and the resource is not deallocated by the class. * + * * Extension: * * In addition, this header provides class |Scoped| and macro |SCOPED_TEMPLATE| @@ -52,8 +52,6 @@ #include "mozilla/Attributes.h" #include "mozilla/GuardObjects.h" -namespace mozilla { - /* * Scoped is a helper to create RAII wrappers * Type argument |Traits| is expected to have the following structure: @@ -161,9 +159,9 @@ class Scoped */ #define SCOPED_TEMPLATE(name, Traits) \ template \ -struct name : public mozilla::Scoped > \ +struct name : public Scoped > \ { \ - typedef mozilla::Scoped > Super; \ + typedef Scoped > Super; \ typedef typename Super::Resource Resource; \ name& operator=(Resource ptr) { \ Super::operator=(ptr); \ @@ -223,6 +221,4 @@ struct ScopedDeleteArrayTraits : public ScopedFreePtrTraits }; SCOPED_TEMPLATE(ScopedDeleteArray, ScopedDeleteArrayTraits) -} /* namespace mozilla */ - #endif // mozilla_Scoped_h_ From c64a09bff4b60dac2cc102951ba5b4c765876c81 Mon Sep 17 00:00:00 2001 From: Mats Palmgren Date: Thu, 21 Jun 2012 12:51:38 +0200 Subject: [PATCH 010/154] Bug 764541. r=smontagu --- layout/base/nsBidiPresUtils.cpp | 34 ++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/layout/base/nsBidiPresUtils.cpp b/layout/base/nsBidiPresUtils.cpp index 722bb92bcee5..3a6304cea9c6 100644 --- a/layout/base/nsBidiPresUtils.cpp +++ b/layout/base/nsBidiPresUtils.cpp @@ -381,12 +381,20 @@ struct BidiLineData { /* Some helper methods for Resolve() */ // Should this frame be split between text runs? -bool -IsBidiSplittable(nsIFrame* aFrame) { - nsIAtom* frameType = aFrame->GetType(); +static bool +IsBidiSplittable(nsIFrame* aFrame) +{ // Bidi inline containers should be split, unless they're line frames. return aFrame->IsFrameOfType(nsIFrame::eBidiInlineContainer) - && frameType != nsGkAtoms::lineFrame; + && aFrame->GetType() != nsGkAtoms::lineFrame; +} + +// Should this frame be treated as a leaf (e.g. when building mLogicalFrames)? +static bool +IsBidiLeaf(nsIFrame* aFrame) +{ + nsIFrame* kid = aFrame->GetFirstPrincipalChild(); + return !kid || !aFrame->IsFrameOfType(nsIFrame::eBidiInlineContainer); } /** @@ -577,7 +585,7 @@ nsBidiPresUtils::Resolve(nsBlockFrame* aBlockFrame) BidiParagraphData bpd; bpd.Init(aBlockFrame); - // handle bidi-override being set on the block itself before calling + // Handle bidi-override being set on the block itself before calling // TraverseFrames. const nsStyleTextReset* text = aBlockFrame->GetStyleTextReset(); PRUnichar ch = 0; @@ -600,6 +608,7 @@ nsBidiPresUtils::Resolve(nsBlockFrame* aBlockFrame) bpd.mPrevFrame = nsnull; bpd.GetSubParagraph()->mPrevFrame = nsnull; TraverseFrames(aBlockFrame, &lineIter, block->GetFirstPrincipalChild(), &bpd); + // XXX what about overflow lines? } if (ch != 0) { @@ -888,13 +897,6 @@ nsBidiPresUtils::ResolveParagraph(nsBlockFrame* aBlockFrame, return rv; } -// Should this frame be treated as a leaf (e.g. when building mLogicalFrames)? -bool IsBidiLeaf(nsIFrame* aFrame) { - nsIFrame* kid = aFrame->GetFirstPrincipalChild(); - return !kid - || !aFrame->IsFrameOfType(nsIFrame::eBidiInlineContainer); -} - void nsBidiPresUtils::TraverseFrames(nsBlockFrame* aBlockFrame, nsBlockInFlowLineIterator* aLineIter, @@ -1095,11 +1097,11 @@ nsBidiPresUtils::TraverseFrames(nsBlockFrame* aBlockFrame, ResolveParagraphWithinBlock(aBlockFrame, aBpd); } } - } - else { + } else { // For a non-leaf frame, recurse into TraverseFrames nsIFrame* kid = frame->GetFirstPrincipalChild(); - if (kid) { + nsIFrame* overflowKid = frame->GetFirstChild(nsIFrame::kOverflowList); + if (kid || overflowKid) { const nsStyleTextReset* text = frame->GetStyleTextReset(); if (text->mUnicodeBidi & NS_STYLE_UNICODE_BIDI_ISOLATE || text->mUnicodeBidi & NS_STYLE_UNICODE_BIDI_PLAINTEXT) { @@ -1123,6 +1125,7 @@ nsBidiPresUtils::TraverseFrames(nsBlockFrame* aBlockFrame, subParagraph->Reset(frame, aBpd); } TraverseFrames(aBlockFrame, aLineIter, kid, subParagraph); + TraverseFrames(aBlockFrame, aLineIter, overflowKid, subParagraph); if (isLastContinuation) { ResolveParagraph(aBlockFrame, subParagraph); subParagraph->EmptyBuffer(); @@ -1133,6 +1136,7 @@ nsBidiPresUtils::TraverseFrames(nsBlockFrame* aBlockFrame, aBpd->AppendControlChar(kObjectSubstitute); } else { TraverseFrames(aBlockFrame, aLineIter, kid, aBpd); + TraverseFrames(aBlockFrame, aLineIter, overflowKid, aBpd); } } } From a9df4a23d981965462e76d12e0ea2527e137c37e Mon Sep 17 00:00:00 2001 From: Randell Jesup Date: Thu, 21 Jun 2012 07:34:58 -0400 Subject: [PATCH 011/154] Bug 749889: Webrtc import of rev 2047, with most of third_party and test/data removed rs=ted --- media/webrtc/.gclient | 10 + media/webrtc/.gclient_entries | 31 + media/webrtc/trunk/DEPS | 132 + media/webrtc/trunk/Makefile | 1069 + media/webrtc/trunk/OWNERS | 5 + media/webrtc/trunk/README | 12 + media/webrtc/trunk/build/README.chromium | 15 + media/webrtc/trunk/build/all.gyp | 625 + media/webrtc/trunk/build/all_android.gyp | 60 + .../trunk/build/android/android_commands.py | 780 + .../trunk/build/android/base_test_runner.py | 146 + media/webrtc/trunk/build/android/buildbot.sh | 16 + .../trunk/build/android/buildbot_functions.sh | 105 + .../trunk/build/android/buildbot_fyi.sh | 20 + .../trunk/build/android/buildbot_main.sh | 18 + .../build/android/buildbot_try_compile.sh | 16 + .../android/buildbot_try_compile_test.sh | 17 + .../android/chrome_test_server_spawner.py | 114 + .../webrtc/trunk/build/android/cmd_helper.py | 40 + .../webrtc/trunk/build/android/debug_info.py | 202 + media/webrtc/trunk/build/android/emulator.py | 253 + media/webrtc/trunk/build/android/envsetup.sh | 155 + .../trunk/build/android/flag_changer.py | 49 + .../gtest_filter/base_unittests_disabled | 15 + ...ase_unittests_emulator_additional_disabled | 10 + .../android/gtest_filter/ipc_tests_disabled | 2 + .../gtest_filter/net_unittests_disabled | 55 + .../trunk/build/android/lighttpd_server.py | 234 + .../trunk/build/android/perf_tests_helper.py | 56 + media/webrtc/trunk/build/android/run_tests.py | 362 + .../trunk/build/android/run_tests_helper.py | 133 + .../trunk/build/android/single_test_runner.py | 316 + media/webrtc/trunk/build/android/system.gyp | 24 + .../trunk/build/android/test_package.py | 168 + .../build/android/test_package_executable.py | 156 + .../webrtc/trunk/build/android/test_result.py | 110 + .../trunk/build/android/valgrind_tools.py | 185 + media/webrtc/trunk/build/apply_locales.py | 45 + media/webrtc/trunk/build/asan.saves | 22 + media/webrtc/trunk/build/branding_value.sh | 51 + media/webrtc/trunk/build/build_config.h | 143 + media/webrtc/trunk/build/common.croc | 127 + media/webrtc/trunk/build/common.gypi | 2763 ++ media/webrtc/trunk/build/compiler_version.py | 49 + media/webrtc/trunk/build/cp.py | 18 + media/webrtc/trunk/build/dir_exists.py | 15 + .../trunk/build/download_nacl_toolchains.py | 33 + media/webrtc/trunk/build/escape_unicode.py | 56 + media/webrtc/trunk/build/extract_from_cab.py | 56 + media/webrtc/trunk/build/filename_rules.gypi | 86 + media/webrtc/trunk/build/grit_action.gypi | 31 + media/webrtc/trunk/build/grit_target.gypi | 30 + media/webrtc/trunk/build/gyp_chromium | 171 + .../trunk/build/install-build-deps-android.sh | 123 + .../webrtc/trunk/build/install-build-deps.sh | 513 + media/webrtc/trunk/build/install-chroot.sh | 325 + .../trunk/build/internal/README.chromium | 24 + .../build/internal/release_defaults.gypi | 18 + .../trunk/build/internal/release_impl.gypi | 6 + .../build/internal/release_impl_official.gypi | 37 + .../trunk/build/json_schema_compile.gypi | 59 + .../trunk/build/linux/chrome_linux.croc | 29 + media/webrtc/trunk/build/linux/dump_app_syms | 36 + .../trunk/build/linux/pkg-config-wrapper | 37 + media/webrtc/trunk/build/linux/python_arch.sh | 42 + .../webrtc/trunk/build/linux/rewrite_dirs.py | 71 + media/webrtc/trunk/build/linux/system.gyp | 651 + media/webrtc/trunk/build/mac/OWNERS | 2 + .../trunk/build/mac/change_mach_o_flags.py | 273 + .../mac/change_mach_o_flags_from_xcode.sh | 15 + media/webrtc/trunk/build/mac/chrome_mac.croc | 36 + media/webrtc/trunk/build/mac/strip_from_xcode | 62 + media/webrtc/trunk/build/mac/strip_save_dsym | 341 + media/webrtc/trunk/build/nocompile.gypi | 96 + .../webrtc/trunk/build/output_dll_copy.rules | 17 + media/webrtc/trunk/build/precompile.cc | 7 + media/webrtc/trunk/build/precompile.h | 108 + media/webrtc/trunk/build/protoc.gypi | 92 + media/webrtc/trunk/build/release.gypi | 17 + .../trunk/build/sanitize-mac-build-log.sed | 35 + .../trunk/build/sanitize-mac-build-log.sh | 6 + .../trunk/build/sanitize-win-build-log.sed | 14 + .../trunk/build/sanitize-win-build-log.sh | 6 + media/webrtc/trunk/build/some.gyp | 24 + .../trunk/build/temp_gyp/README.chromium | 3 + .../webrtc/trunk/build/temp_gyp/googleurl.gyp | 101 + .../trunk/build/temp_gyp/pdfsqueeze.gyp | 40 + media/webrtc/trunk/build/use_skia_on_mac.gypi | 9 + media/webrtc/trunk/build/util/build_util.gyp | 36 + media/webrtc/trunk/build/util/lastchange.py | 230 + media/webrtc/trunk/build/whitespace_file.txt | 50 + media/webrtc/trunk/build/win/chrome_win.croc | 26 + .../trunk/build/win/install-build-deps.py | 47 + .../trunk/build/win/setup_cygwin_mount.py | 20 + media/webrtc/trunk/build/win_precompile.gypi | 20 + media/webrtc/trunk/peerconnection.Makefile | 6 + media/webrtc/trunk/peerconnection.gyp | 113 + .../trunk/peerconnection_client.target.mk | 239 + .../trunk/peerconnection_server.target.mk | 174 + media/webrtc/trunk/src/LICENSE | 29 + media/webrtc/trunk/src/LICENSE_THIRD_PARTY | 27 + media/webrtc/trunk/src/PATENTS | 24 + media/webrtc/trunk/src/README.chromium | 13 + media/webrtc/trunk/src/build/common.gypi | 171 + media/webrtc/trunk/src/build/merge_libs.gyp | 43 + media/webrtc/trunk/src/build/merge_libs.py | 58 + media/webrtc/trunk/src/build/no_op.cc | 3 + media/webrtc/trunk/src/build/protoc.gypi | 97 + media/webrtc/trunk/src/common_audio/OWNERS | 4 + .../src/common_audio/common_audio.Makefile | 6 + .../trunk/src/common_audio/common_audio.gyp | 16 + .../src/common_audio/resampler.target.mk | 172 + .../src/common_audio/resampler/Android.mk | 47 + .../resampler/include/resampler.h | 116 + .../src/common_audio/resampler/resampler.cc | 1084 + .../src/common_audio/resampler/resampler.gypi | 55 + .../resampler/resampler_unittest.cc | 143 + .../resampler_unittests.target.mk | 178 + .../common_audio/signal_processing.target.mk | 201 + .../common_audio/signal_processing/Android.mk | 101 + .../auto_corr_to_refl_coef.c | 103 + .../signal_processing/auto_correlation.c | 141 + .../signal_processing/complex_bit_reverse.c | 109 + .../complex_bit_reverse_arm.s | 126 + .../signal_processing/complex_fft.c | 425 + .../signal_processing/copy_set_operations.c | 108 + .../signal_processing/cross_correlation.c | 271 + .../cross_correlation_neon.s | 168 + .../signal_processing/division_operations.c | 144 + .../dot_product_with_scale.c | 91 + .../signal_processing/downsample_fast.c | 47 + .../signal_processing/downsample_fast_neon.s | 222 + .../common_audio/signal_processing/energy.c | 36 + .../signal_processing/filter_ar.c | 89 + .../signal_processing/filter_ar_fast_q12.c | 43 + .../filter_ar_fast_q12_armv7.s | 223 + .../signal_processing/filter_ma_fast_q12.c | 49 + .../signal_processing/get_hanning_window.c | 77 + .../signal_processing/get_scaling_square.c | 44 + .../ilbc_specific_functions.c | 101 + .../include/signal_processing_library.h | 1677 + .../signal_processing/include/spl_inl.h | 159 + .../signal_processing/include/spl_inl_armv7.h | 140 + .../signal_processing/levinson_durbin.c | 259 + .../signal_processing/lpc_to_refl_coef.c | 57 + .../signal_processing/min_max_operations.c | 246 + .../min_max_operations_neon.s | 305 + .../randomization_functions.c | 119 + .../signal_processing/refl_coef_to_lpc.c | 60 + .../common_audio/signal_processing/resample.c | 505 + .../signal_processing/resample_48khz.c | 186 + .../signal_processing/resample_by_2.c | 181 + .../resample_by_2_internal.c | 679 + .../resample_by_2_internal.h | 47 + .../signal_processing/resample_fractional.c | 242 + .../signal_processing/signal_processing.gypi | 85 + .../signal_processing_unittest.cc | 454 + .../common_audio/signal_processing/spl_sqrt.c | 184 + .../signal_processing/spl_sqrt_floor.c | 54 + .../signal_processing/spl_sqrt_floor.s | 88 + .../signal_processing/spl_version.c | 25 + .../signal_processing/splitting_filter.c | 198 + .../sqrt_of_one_minus_x_squared.c | 35 + .../vector_scaling_operations.c | 176 + .../vector_scaling_operations_neon.s | 88 + .../signal_processing/webrtc_fft_t_1024_8.c | 704 + .../signal_processing/webrtc_fft_t_rad.c | 27 + .../signal_processing_unittests.target.mk | 178 + .../trunk/src/common_audio/vad.target.mk | 176 + .../trunk/src/common_audio/vad/Android.mk | 50 + .../src/common_audio/vad/include/webrtc_vad.h | 106 + .../trunk/src/common_audio/vad/vad.gypi | 68 + .../trunk/src/common_audio/vad/vad_core.c | 640 + .../trunk/src/common_audio/vad/vad_core.h | 110 + .../src/common_audio/vad/vad_core_unittest.cc | 99 + .../src/common_audio/vad/vad_filterbank.c | 334 + .../src/common_audio/vad/vad_filterbank.h | 44 + .../vad/vad_filterbank_unittest.cc | 92 + .../trunk/src/common_audio/vad/vad_gmm.c | 83 + .../trunk/src/common_audio/vad/vad_gmm.h | 39 + .../src/common_audio/vad/vad_gmm_unittest.cc | 43 + .../trunk/src/common_audio/vad/vad_sp.c | 183 + .../trunk/src/common_audio/vad/vad_sp.h | 56 + .../src/common_audio/vad/vad_sp_unittest.cc | 75 + .../src/common_audio/vad/vad_unittest.cc | 137 + .../trunk/src/common_audio/vad/vad_unittest.h | 47 + .../trunk/src/common_audio/vad/webrtc_vad.c | 143 + .../src/common_audio/vad_unittests.target.mk | 182 + media/webrtc/trunk/src/common_types.h | 574 + media/webrtc/trunk/src/common_video/OWNERS | 4 + .../src/common_video/common_video.Makefile | 6 + .../trunk/src/common_video/common_video.gyp | 15 + .../src/common_video/interface/video_image.h | 75 + .../trunk/src/common_video/jpeg/Android.mk | 42 + .../src/common_video/jpeg/data_manager.cc | 86 + .../src/common_video/jpeg/data_manager.h | 68 + .../src/common_video/jpeg/include/jpeg.h | 80 + .../trunk/src/common_video/jpeg/jpeg.cc | 376 + .../trunk/src/common_video/jpeg/jpeg.gypi | 90 + .../src/common_video/jpeg/jpeg_unittest.cc | 123 + .../src/common_video/jpeg_test.target.mk | 174 + .../trunk/src/common_video/libyuv/Android.mk | 42 + .../src/common_video/libyuv/include/libyuv.h | 194 + .../src/common_video/libyuv/include/scaler.h | 71 + .../trunk/src/common_video/libyuv/libyuv.cc | 446 + .../trunk/src/common_video/libyuv/libyuv.gypi | 55 + .../common_video/libyuv/libyuv_unittest.cc | 250 + .../trunk/src/common_video/libyuv/scaler.cc | 101 + .../common_video/libyuv/scaler_unittest.cc | 239 + .../common_video/libyuv_unittests.target.mk | 179 + .../src/common_video/webrtc_jpeg.target.mk | 177 + .../src/common_video/webrtc_libyuv.target.mk | 173 + .../webrtc/trunk/src/engine_configurations.h | 149 + media/webrtc/trunk/src/modules/CNG.target.mk | 173 + media/webrtc/trunk/src/modules/G711.target.mk | 171 + media/webrtc/trunk/src/modules/G722.target.mk | 172 + .../trunk/src/modules/G722Test.target.mk | 170 + .../webrtc/trunk/src/modules/NetEq.target.mk | 210 + .../trunk/src/modules/NetEqRTPplay.target.mk | 212 + .../src/modules/NetEqTestTools.target.mk | 214 + .../webrtc/trunk/src/modules/PCM16B.target.mk | 170 + .../trunk/src/modules/RTPanalyze.target.mk | 178 + .../webrtc/trunk/src/modules/RTPcat.target.mk | 178 + .../trunk/src/modules/RTPchange.target.mk | 178 + .../trunk/src/modules/RTPencode.target.mk | 212 + .../trunk/src/modules/RTPjitter.target.mk | 174 + .../trunk/src/modules/RTPtimeshift.target.mk | 178 + media/webrtc/trunk/src/modules/aec.target.mk | 177 + .../trunk/src/modules/aec_sse2.target.mk | 171 + media/webrtc/trunk/src/modules/aecm.target.mk | 177 + media/webrtc/trunk/src/modules/agc.target.mk | 173 + .../trunk/src/modules/apm_util.target.mk | 173 + .../src/modules/audio_coding/codecs/OWNERS | 3 + .../audio_coding/codecs/cng/Android.mk | 40 + .../modules/audio_coding/codecs/cng/cng.gypi | 57 + .../audio_coding/codecs/cng/cng_helpfuns.c | 64 + .../audio_coding/codecs/cng/cng_helpfuns.h | 28 + .../audio_coding/codecs/cng/cng_unittest.cc | 17 + .../codecs/cng/include/webrtc_cng.h | 236 + .../audio_coding/codecs/cng/test/CNG.cc | 225 + .../audio_coding/codecs/cng/test/StdAfx.cc | 18 + .../audio_coding/codecs/cng/test/StdAfx.h | 32 + .../audio_coding/codecs/cng/webrtc_cng.c | 732 + .../audio_coding/codecs/g711/Android.mk | 40 + .../modules/audio_coding/codecs/g711/g711.c | 83 + .../audio_coding/codecs/g711/g711.gypi | 65 + .../modules/audio_coding/codecs/g711/g711.h | 382 + .../audio_coding/codecs/g711/g711_interface.c | 171 + .../audio_coding/codecs/g711/g711_unittest.cc | 17 + .../codecs/g711/include/g711_interface.h | 148 + .../audio_coding/codecs/g711/test/testG711.cc | 169 + .../audio_coding/codecs/g722/Android.mk | 40 + .../audio_coding/codecs/g722/g722.gypi | 65 + .../audio_coding/codecs/g722/g722_decode.c | 410 + .../audio_coding/codecs/g722/g722_enc_dec.h | 158 + .../audio_coding/codecs/g722/g722_encode.c | 434 + .../audio_coding/codecs/g722/g722_interface.c | 115 + .../audio_coding/codecs/g722/g722_unittest.cc | 17 + .../codecs/g722/include/g722_interface.h | 190 + .../audio_coding/codecs/g722/test/testG722.cc | 157 + .../codecs/iSAC/fix/interface/isacfix.h | 633 + .../codecs/iSAC/fix/source/Android.mk | 143 + .../codecs/iSAC/fix/source/arith_routines.c | 124 + .../iSAC/fix/source/arith_routines_hist.c | 404 + .../iSAC/fix/source/arith_routines_logist.c | 404 + .../codecs/iSAC/fix/source/arith_routins.h | 160 + .../iSAC/fix/source/bandwidth_estimator.c | 1022 + .../iSAC/fix/source/bandwidth_estimator.h | 127 + .../codecs/iSAC/fix/source/codec.h | 183 + .../codecs/iSAC/fix/source/decode.c | 217 + .../codecs/iSAC/fix/source/decode_bwe.c | 69 + .../codecs/iSAC/fix/source/decode_plc.c | 830 + .../codecs/iSAC/fix/source/encode.c | 626 + .../codecs/iSAC/fix/source/entropy_coding.c | 2072 + .../codecs/iSAC/fix/source/entropy_coding.h | 111 + .../audio_coding/codecs/iSAC/fix/source/fft.c | 415 + .../audio_coding/codecs/iSAC/fix/source/fft.h | 41 + .../iSAC/fix/source/filterbank_tables.c | 64 + .../iSAC/fix/source/filterbank_tables.h | 41 + .../codecs/iSAC/fix/source/filterbanks.c | 326 + .../codecs/iSAC/fix/source/filters.c | 122 + .../codecs/iSAC/fix/source/filters_neon.c | 167 + .../codecs/iSAC/fix/source/initialize.c | 175 + .../codecs/iSAC/fix/source/isacfix.c | 1529 + .../codecs/iSAC/fix/source/isacfix.gypi | 82 + .../codecs/iSAC/fix/source/lattice.c | 313 + .../codecs/iSAC/fix/source/lattice_armv7.S | 82 + .../codecs/iSAC/fix/source/lattice_c.c | 49 + .../codecs/iSAC/fix/source/lattice_neon.S | 155 + .../iSAC/fix/source/lpc_masking_model.c | 1035 + .../iSAC/fix/source/lpc_masking_model.h | 37 + .../codecs/iSAC/fix/source/lpc_tables.c | 1280 + .../codecs/iSAC/fix/source/lpc_tables.h | 98 + .../codecs/iSAC/fix/source/pitch_estimator.c | 519 + .../codecs/iSAC/fix/source/pitch_estimator.h | 55 + .../codecs/iSAC/fix/source/pitch_filter.c | 331 + .../iSAC/fix/source/pitch_gain_tables.c | 149 + .../iSAC/fix/source/pitch_gain_tables.h | 45 + .../codecs/iSAC/fix/source/pitch_lag_tables.c | 306 + .../codecs/iSAC/fix/source/pitch_lag_tables.h | 103 + .../codecs/iSAC/fix/source/settings.h | 205 + .../fix/source/spectrum_ar_model_tables.c | 193 + .../fix/source/spectrum_ar_model_tables.h | 96 + .../codecs/iSAC/fix/source/structs.h | 382 + .../codecs/iSAC/fix/source/transform.c | 296 + .../codecs/iSAC/fix/test/ISACHist.cc | 173 + .../codecs/iSAC/fix/test/Isac_test.cc | 260 + .../codecs/iSAC/fix/test/QA/ChannelFiles.txt | 3 + .../codecs/iSAC/fix/test/QA/InputFiles.txt | 31 + .../codecs/iSAC/fix/test/QA/InputFilesFew.txt | 6 + .../iSAC/fix/test/QA/ListOfTestCases.xls | Bin 0 -> 152064 bytes .../codecs/iSAC/fix/test/QA/diffiSAC.txt | 481 + .../codecs/iSAC/fix/test/QA/diffiSACPLC.txt | 20 + .../iSAC/fix/test/QA/runiSACLongtest.txt | 61 + .../codecs/iSAC/fix/test/QA/runiSACNB.txt | 45 + .../codecs/iSAC/fix/test/QA/runiSACPLC.txt | 23 + .../codecs/iSAC/fix/test/QA/runiSACRate.txt | 23 + .../codecs/iSAC/fix/test/QA/runiSACfault.txt | 40 + .../iSAC/fix/test/QA/runiSACfixfloat.txt | 47 + .../audio_coding/codecs/iSAC/fix/test/kenny.c | 847 + .../codecs/iSAC/fix/test/test_iSACfixfloat.c | 693 + .../audio_coding/codecs/iSAC/isac_test.gypi | 71 + .../codecs/iSAC/isacfix_test.gypi | 33 + .../codecs/iSAC/main/interface/isac.h | 729 + .../codecs/iSAC/main/source/Android.mk | 66 + .../codecs/iSAC/main/source/arith_routines.c | 60 + .../codecs/iSAC/main/source/arith_routines.h | 63 + .../iSAC/main/source/arith_routines_hist.c | 291 + .../iSAC/main/source/arith_routines_logist.c | 294 + .../iSAC/main/source/bandwidth_estimator.c | 1020 + .../iSAC/main/source/bandwidth_estimator.h | 177 + .../codecs/iSAC/main/source/codec.h | 292 + .../codecs/iSAC/main/source/crc.c | 110 + .../codecs/iSAC/main/source/crc.h | 46 + .../codecs/iSAC/main/source/decode.c | 330 + .../codecs/iSAC/main/source/decode_bwe.c | 88 + .../codecs/iSAC/main/source/encode.c | 1451 + .../codecs/iSAC/main/source/encode_lpc_swb.c | 708 + .../codecs/iSAC/main/source/encode_lpc_swb.h | 283 + .../codecs/iSAC/main/source/entropy_coding.c | 2748 ++ .../codecs/iSAC/main/source/entropy_coding.h | 412 + .../codecs/iSAC/main/source/fft.c | 947 + .../codecs/iSAC/main/source/fft.h | 45 + .../iSAC/main/source/filter_functions.c | 271 + .../iSAC/main/source/filterbank_tables.c | 37 + .../iSAC/main/source/filterbank_tables.h | 46 + .../codecs/iSAC/main/source/filterbanks.c | 346 + .../codecs/iSAC/main/source/intialize.c | 175 + .../codecs/iSAC/main/source/isac.c | 2793 ++ .../codecs/iSAC/main/source/isac.gypi | 91 + .../codecs/iSAC/main/source/lattice.c | 217 + .../codecs/iSAC/main/source/lpc_analysis.c | 535 + .../codecs/iSAC/main/source/lpc_analysis.h | 50 + .../iSAC/main/source/lpc_gain_swb_tables.c | 137 + .../iSAC/main/source/lpc_gain_swb_tables.h | 49 + .../iSAC/main/source/lpc_shape_swb12_tables.c | 159 + .../iSAC/main/source/lpc_shape_swb12_tables.h | 65 + .../iSAC/main/source/lpc_shape_swb16_tables.c | 248 + .../iSAC/main/source/lpc_shape_swb16_tables.h | 79 + .../codecs/iSAC/main/source/lpc_tables.c | 1129 + .../codecs/iSAC/main/source/lpc_tables.h | 114 + .../iSAC/main/source/os_specific_inline.h | 42 + .../codecs/iSAC/main/source/pitch_estimator.c | 622 + .../codecs/iSAC/main/source/pitch_estimator.h | 71 + .../codecs/iSAC/main/source/pitch_filter.c | 469 + .../iSAC/main/source/pitch_gain_tables.c | 105 + .../iSAC/main/source/pitch_gain_tables.h | 45 + .../iSAC/main/source/pitch_lag_tables.c | 277 + .../iSAC/main/source/pitch_lag_tables.h | 114 + .../codecs/iSAC/main/source/settings.h | 199 + .../main/source/spectrum_ar_model_tables.c | 138 + .../main/source/spectrum_ar_model_tables.h | 76 + .../codecs/iSAC/main/source/structs.h | 478 + .../codecs/iSAC/main/source/transform.c | 131 + .../iSAC/main/test/QA/runiSACLongtest.txt | 433 + .../codecs/iSAC/main/test/QA/runiSACfault.txt | 80 + .../iSAC/main/test/QA/runiSACfixfloat.txt | 47 + .../test/ReleaseTest-API/ReleaseTest-API.cc | 1050 + .../SwitchingSampRate/SwitchingSampRate.cc | 443 + .../codecs/iSAC/main/test/debugUtility.h | 72 + .../codecs/iSAC/main/test/simpleKenny.c | 634 + .../codecs/iSAC/main/util/utility.c | 178 + .../codecs/iSAC/main/util/utility.h | 144 + .../audio_coding/codecs/ilbc/Android.mk | 165 + .../audio_coding/codecs/ilbc/abs_quant.c | 80 + .../audio_coding/codecs/ilbc/abs_quant.h | 39 + .../audio_coding/codecs/ilbc/abs_quant_loop.c | 95 + .../audio_coding/codecs/ilbc/abs_quant_loop.h | 37 + .../codecs/ilbc/augmented_cb_corr.c | 63 + .../codecs/ilbc/augmented_cb_corr.h | 42 + .../audio_coding/codecs/ilbc/bw_expand.c | 42 + .../audio_coding/codecs/ilbc/bw_expand.h | 36 + .../audio_coding/codecs/ilbc/cb_construct.c | 67 + .../audio_coding/codecs/ilbc/cb_construct.h | 38 + .../audio_coding/codecs/ilbc/cb_mem_energy.c | 79 + .../audio_coding/codecs/ilbc/cb_mem_energy.h | 34 + .../codecs/ilbc/cb_mem_energy_augmentation.c | 67 + .../codecs/ilbc/cb_mem_energy_augmentation.h | 31 + .../codecs/ilbc/cb_mem_energy_calc.c | 65 + .../codecs/ilbc/cb_mem_energy_calc.h | 33 + .../audio_coding/codecs/ilbc/cb_search.c | 396 + .../audio_coding/codecs/ilbc/cb_search.h | 35 + .../audio_coding/codecs/ilbc/cb_search_core.c | 113 + .../audio_coding/codecs/ilbc/cb_search_core.h | 40 + .../codecs/ilbc/cb_update_best_index.c | 89 + .../codecs/ilbc/cb_update_best_index.h | 38 + .../audio_coding/codecs/ilbc/chebyshev.c | 82 + .../audio_coding/codecs/ilbc/chebyshev.h | 37 + .../audio_coding/codecs/ilbc/comp_corr.c | 49 + .../audio_coding/codecs/ilbc/comp_corr.h | 39 + .../codecs/ilbc/complexityMeasures.m | 49 + .../audio_coding/codecs/ilbc/constants.c | 666 + .../audio_coding/codecs/ilbc/constants.h | 92 + .../codecs/ilbc/create_augmented_vec.c | 57 + .../codecs/ilbc/create_augmented_vec.h | 36 + .../modules/audio_coding/codecs/ilbc/decode.c | 244 + .../modules/audio_coding/codecs/ilbc/decode.h | 37 + .../codecs/ilbc/decode_residual.c | 189 + .../codecs/ilbc/decode_residual.h | 38 + .../codecs/ilbc/decoder_interpolate_lsf.c | 82 + .../codecs/ilbc/decoder_interpolate_lsf.h | 38 + .../audio_coding/codecs/ilbc/defines.h | 219 + .../modules/audio_coding/codecs/ilbc/do_plc.c | 308 + .../modules/audio_coding/codecs/ilbc/do_plc.h | 41 + .../codecs/ilbc/documentation/rfc3951.txt | 10867 +++++ .../codecs/ilbc/documentation/rfc3952.txt | 731 + .../modules/audio_coding/codecs/ilbc/encode.c | 518 + .../modules/audio_coding/codecs/ilbc/encode.h | 35 + .../audio_coding/codecs/ilbc/energy_inverse.c | 46 + .../audio_coding/codecs/ilbc/energy_inverse.h | 32 + .../audio_coding/codecs/ilbc/enh_upsample.c | 110 + .../audio_coding/codecs/ilbc/enh_upsample.h | 33 + .../audio_coding/codecs/ilbc/enhancer.c | 51 + .../audio_coding/codecs/ilbc/enhancer.h | 39 + .../codecs/ilbc/enhancer_interface.c | 381 + .../codecs/ilbc/enhancer_interface.h | 34 + .../codecs/ilbc/filtered_cb_vecs.c | 48 + .../codecs/ilbc/filtered_cb_vecs.h | 38 + .../audio_coding/codecs/ilbc/frame_classify.c | 88 + .../audio_coding/codecs/ilbc/frame_classify.h | 29 + .../audio_coding/codecs/ilbc/gain_dequant.c | 45 + .../audio_coding/codecs/ilbc/gain_dequant.h | 36 + .../audio_coding/codecs/ilbc/gain_quant.c | 106 + .../audio_coding/codecs/ilbc/gain_quant.h | 35 + .../audio_coding/codecs/ilbc/get_cd_vec.c | 111 + .../audio_coding/codecs/ilbc/get_cd_vec.h | 30 + .../audio_coding/codecs/ilbc/get_lsp_poly.c | 83 + .../audio_coding/codecs/ilbc/get_lsp_poly.h | 47 + .../audio_coding/codecs/ilbc/get_sync_seq.c | 108 + .../audio_coding/codecs/ilbc/get_sync_seq.h | 40 + .../audio_coding/codecs/ilbc/hp_input.c | 88 + .../audio_coding/codecs/ilbc/hp_input.h | 34 + .../audio_coding/codecs/ilbc/hp_output.c | 89 + .../audio_coding/codecs/ilbc/hp_output.h | 34 + .../modules/audio_coding/codecs/ilbc/ilbc.c | 255 + .../audio_coding/codecs/ilbc/ilbc.gypi | 190 + .../audio_coding/codecs/ilbc/index_conv_dec.c | 38 + .../audio_coding/codecs/ilbc/index_conv_dec.h | 28 + .../audio_coding/codecs/ilbc/index_conv_enc.c | 42 + .../audio_coding/codecs/ilbc/index_conv_enc.h | 32 + .../audio_coding/codecs/ilbc/init_decode.c | 98 + .../audio_coding/codecs/ilbc/init_decode.h | 35 + .../audio_coding/codecs/ilbc/init_encode.c | 72 + .../audio_coding/codecs/ilbc/init_encode.h | 33 + .../audio_coding/codecs/ilbc/interface/ilbc.h | 259 + .../audio_coding/codecs/ilbc/interpolate.c | 48 + .../audio_coding/codecs/ilbc/interpolate.h | 35 + .../codecs/ilbc/interpolate_samples.c | 51 + .../codecs/ilbc/interpolate_samples.h | 34 + .../audio_coding/codecs/ilbc/lpc_encode.c | 60 + .../audio_coding/codecs/ilbc/lpc_encode.h | 39 + .../audio_coding/codecs/ilbc/lsf_check.c | 71 + .../audio_coding/codecs/ilbc/lsf_check.h | 33 + .../codecs/ilbc/lsf_interpolate_to_poly_dec.c | 42 + .../codecs/ilbc/lsf_interpolate_to_poly_dec.h | 37 + .../codecs/ilbc/lsf_interpolate_to_poly_enc.c | 46 + .../codecs/ilbc/lsf_interpolate_to_poly_enc.h | 38 + .../audio_coding/codecs/ilbc/lsf_to_lsp.c | 61 + .../audio_coding/codecs/ilbc/lsf_to_lsp.h | 34 + .../audio_coding/codecs/ilbc/lsf_to_poly.c | 86 + .../audio_coding/codecs/ilbc/lsf_to_poly.h | 33 + .../audio_coding/codecs/ilbc/lsp_to_lsf.c | 84 + .../audio_coding/codecs/ilbc/lsp_to_lsf.h | 35 + .../audio_coding/codecs/ilbc/my_corr.c | 51 + .../audio_coding/codecs/ilbc/my_corr.h | 36 + .../codecs/ilbc/nearest_neighbor.c | 46 + .../codecs/ilbc/nearest_neighbor.h | 37 + .../audio_coding/codecs/ilbc/pack_bits.c | 251 + .../audio_coding/codecs/ilbc/pack_bits.h | 34 + .../audio_coding/codecs/ilbc/poly_to_lsf.c | 31 + .../audio_coding/codecs/ilbc/poly_to_lsf.h | 33 + .../audio_coding/codecs/ilbc/poly_to_lsp.c | 156 + .../audio_coding/codecs/ilbc/poly_to_lsp.h | 36 + .../audio_coding/codecs/ilbc/refiner.c | 150 + .../audio_coding/codecs/ilbc/refiner.h | 43 + .../codecs/ilbc/simple_interpolate_lsf.c | 130 + .../codecs/ilbc/simple_interpolate_lsf.h | 46 + .../codecs/ilbc/simple_lpc_analysis.c | 94 + .../codecs/ilbc/simple_lpc_analysis.h | 35 + .../codecs/ilbc/simple_lsf_dequant.c | 60 + .../codecs/ilbc/simple_lsf_dequant.h | 34 + .../codecs/ilbc/simple_lsf_quant.c | 47 + .../codecs/ilbc/simple_lsf_quant.h | 37 + .../modules/audio_coding/codecs/ilbc/smooth.c | 211 + .../modules/audio_coding/codecs/ilbc/smooth.h | 36 + .../codecs/ilbc/smooth_out_data.c | 45 + .../codecs/ilbc/smooth_out_data.h | 35 + .../audio_coding/codecs/ilbc/sort_sq.c | 51 + .../audio_coding/codecs/ilbc/sort_sq.h | 36 + .../audio_coding/codecs/ilbc/split_vq.c | 61 + .../audio_coding/codecs/ilbc/split_vq.h | 38 + .../codecs/ilbc/state_construct.c | 111 + .../codecs/ilbc/state_construct.h | 35 + .../audio_coding/codecs/ilbc/state_search.c | 119 + .../audio_coding/codecs/ilbc/state_search.h | 38 + .../audio_coding/codecs/ilbc/swap_bytes.c | 36 + .../audio_coding/codecs/ilbc/swap_bytes.h | 33 + .../audio_coding/codecs/ilbc/test/iLBC_test.c | 225 + .../codecs/ilbc/test/iLBC_testLib.c | 207 + .../codecs/ilbc/test/iLBC_testprogram.c | 343 + .../codecs/ilbc/test/iLBCtestscript.txt | 73 + .../audio_coding/codecs/ilbc/unpack_bits.c | 239 + .../audio_coding/codecs/ilbc/unpack_bits.h | 34 + .../modules/audio_coding/codecs/ilbc/vq3.c | 63 + .../modules/audio_coding/codecs/ilbc/vq3.h | 36 + .../modules/audio_coding/codecs/ilbc/vq4.c | 62 + .../modules/audio_coding/codecs/ilbc/vq4.h | 36 + .../audio_coding/codecs/ilbc/window32_w32.c | 65 + .../audio_coding/codecs/ilbc/window32_w32.h | 35 + .../audio_coding/codecs/ilbc/xcorr_coef.c | 142 + .../audio_coding/codecs/ilbc/xcorr_coef.h | 38 + .../audio_coding/codecs/pcm16b/Android.mk | 37 + .../codecs/pcm16b/include/pcm16b.h | 106 + .../audio_coding/codecs/pcm16b/pcm16b.c | 105 + .../audio_coding/codecs/pcm16b/pcm16b.gypi | 52 + .../codecs/pcm16b/pcm16b_unittest.cc | 17 + .../src/modules/audio_coding/main/OWNERS | 3 + .../main/interface/audio_coding_module.h | 888 + .../interface/audio_coding_module_typedefs.h | 197 + .../audio_coding/main/source/Android.mk | 67 + .../audio_coding/main/source/acm_amr.cc | 444 + .../audio_coding/main/source/acm_amr.h | 86 + .../audio_coding/main/source/acm_amrwb.cc | 450 + .../audio_coding/main/source/acm_amrwb.h | 87 + .../audio_coding/main/source/acm_celt.cc | 348 + .../audio_coding/main/source/acm_celt.h | 76 + .../audio_coding/main/source/acm_cng.cc | 157 + .../audio_coding/main/source/acm_cng.h | 73 + .../main/source/acm_codec_database.cc | 998 + .../main/source/acm_codec_database.h | 308 + .../main/source/acm_common_defs.h | 115 + .../main/source/acm_dtmf_detection.cc | 45 + .../main/source/acm_dtmf_detection.h | 43 + .../main/source/acm_dtmf_playout.cc | 185 + .../main/source/acm_dtmf_playout.h | 57 + .../audio_coding/main/source/acm_g722.cc | 369 + .../audio_coding/main/source/acm_g722.h | 78 + .../audio_coding/main/source/acm_g7221.cc | 528 + .../audio_coding/main/source/acm_g7221.h | 85 + .../audio_coding/main/source/acm_g7221c.cc | 532 + .../audio_coding/main/source/acm_g7221c.h | 94 + .../audio_coding/main/source/acm_g729.cc | 546 + .../audio_coding/main/source/acm_g729.h | 84 + .../audio_coding/main/source/acm_g7291.cc | 500 + .../audio_coding/main/source/acm_g7291.h | 85 + .../main/source/acm_generic_codec.cc | 1554 + .../main/source/acm_generic_codec.h | 1360 + .../audio_coding/main/source/acm_gsmfr.cc | 416 + .../audio_coding/main/source/acm_gsmfr.h | 77 + .../audio_coding/main/source/acm_ilbc.cc | 390 + .../audio_coding/main/source/acm_ilbc.h | 78 + .../audio_coding/main/source/acm_isac.cc | 1241 + .../audio_coding/main/source/acm_isac.h | 153 + .../main/source/acm_isac_macros.h | 76 + .../audio_coding/main/source/acm_neteq.cc | 1270 + .../audio_coding/main/source/acm_neteq.h | 383 + .../main/source/acm_neteq_unittest.cc | 147 + .../audio_coding/main/source/acm_opus.cc | 477 + .../audio_coding/main/source/acm_opus.h | 83 + .../audio_coding/main/source/acm_pcm16b.cc | 359 + .../audio_coding/main/source/acm_pcm16b.h | 71 + .../audio_coding/main/source/acm_pcma.cc | 185 + .../audio_coding/main/source/acm_pcma.h | 69 + .../audio_coding/main/source/acm_pcmu.cc | 187 + .../audio_coding/main/source/acm_pcmu.h | 69 + .../audio_coding/main/source/acm_red.cc | 163 + .../audio_coding/main/source/acm_red.h | 67 + .../audio_coding/main/source/acm_resampler.cc | 83 + .../audio_coding/main/source/acm_resampler.h | 43 + .../audio_coding/main/source/acm_speex.cc | 669 + .../audio_coding/main/source/acm_speex.h | 94 + .../main/source/audio_coding_module.cc | 136 + .../main/source/audio_coding_module.gypi | 152 + .../main/source/audio_coding_module_impl.cc | 2724 ++ .../main/source/audio_coding_module_impl.h | 385 + .../modules/audio_coding/main/test/ACMTest.cc | 16 + .../modules/audio_coding/main/test/ACMTest.h | 21 + .../modules/audio_coding/main/test/APITest.cc | 1569 + .../modules/audio_coding/main/test/APITest.h | 177 + .../modules/audio_coding/main/test/Channel.cc | 478 + .../modules/audio_coding/main/test/Channel.h | 125 + .../main/test/EncodeDecodeTest.cc | 413 + .../audio_coding/main/test/EncodeDecodeTest.h | 117 + .../modules/audio_coding/main/test/PCMFile.cc | 302 + .../modules/audio_coding/main/test/PCMFile.h | 67 + .../modules/audio_coding/main/test/RTPFile.cc | 260 + .../modules/audio_coding/main/test/RTPFile.h | 103 + .../audio_coding/main/test/SpatialAudio.cc | 246 + .../audio_coding/main/test/SpatialAudio.h | 47 + .../audio_coding/main/test/TestAllCodecs.cc | 873 + .../audio_coding/main/test/TestAllCodecs.h | 96 + .../modules/audio_coding/main/test/TestFEC.cc | 627 + .../modules/audio_coding/main/test/TestFEC.h | 49 + .../audio_coding/main/test/TestStereo.cc | 967 + .../audio_coding/main/test/TestStereo.h | 125 + .../audio_coding/main/test/TestVADDTX.cc | 511 + .../audio_coding/main/test/TestVADDTX.h | 90 + .../modules/audio_coding/main/test/Tester.cc | 120 + .../audio_coding/main/test/TimedTrace.cc | 77 + .../audio_coding/main/test/TimedTrace.h | 38 + .../main/test/TwoWayCommunication.cc | 524 + .../main/test/TwoWayCommunication.h | 64 + .../audio_coding/main/test/iSACTest.cc | 598 + .../modules/audio_coding/main/test/iSACTest.h | 103 + .../modules/audio_coding/main/test/utility.cc | 434 + .../modules/audio_coding/main/test/utility.h | 195 + .../src/modules/audio_coding/neteq/Android.mk | 73 + .../src/modules/audio_coding/neteq/OWNERS | 2 + .../modules/audio_coding/neteq/accelerate.c | 489 + .../src/modules/audio_coding/neteq/automode.c | 736 + .../src/modules/audio_coding/neteq/automode.h | 264 + .../modules/audio_coding/neteq/bgn_update.c | 247 + .../modules/audio_coding/neteq/buffer_stats.h | 95 + .../audio_coding/neteq/bufstats_decision.c | 426 + .../modules/audio_coding/neteq/cng_internal.c | 155 + .../src/modules/audio_coding/neteq/codec_db.c | 743 + .../src/modules/audio_coding/neteq/codec_db.h | 126 + .../audio_coding/neteq/codec_db_defines.h | 89 + .../modules/audio_coding/neteq/correlator.c | 132 + .../audio_coding/neteq/delay_logging.h | 34 + .../src/modules/audio_coding/neteq/dsp.c | 522 + .../src/modules/audio_coding/neteq/dsp.h | 788 + .../audio_coding/neteq/dsp_helpfunctions.c | 120 + .../audio_coding/neteq/dsp_helpfunctions.h | 220 + .../modules/audio_coding/neteq/dtmf_buffer.c | 232 + .../modules/audio_coding/neteq/dtmf_buffer.h | 101 + .../modules/audio_coding/neteq/dtmf_tonegen.c | 371 + .../modules/audio_coding/neteq/dtmf_tonegen.h | 73 + .../src/modules/audio_coding/neteq/expand.c | 1216 + .../neteq/interface/webrtc_neteq.h | 215 + .../interface/webrtc_neteq_help_macros.h | 387 + .../neteq/interface/webrtc_neteq_internal.h | 236 + .../src/modules/audio_coding/neteq/mcu.h | 284 + .../audio_coding/neteq/mcu_address_init.c | 33 + .../audio_coding/neteq/mcu_dsp_common.c | 37 + .../audio_coding/neteq/mcu_dsp_common.h | 61 + .../modules/audio_coding/neteq/mcu_reset.c | 128 + .../src/modules/audio_coding/neteq/merge.c | 564 + .../audio_coding/neteq/min_distortion.c | 55 + .../audio_coding/neteq/mix_voice_unvoice.c | 41 + .../modules/audio_coding/neteq/mute_signal.c | 33 + .../src/modules/audio_coding/neteq/neteq.gypi | 300 + .../audio_coding/neteq/neteq_defines.h | 356 + .../audio_coding/neteq/neteq_error_codes.h | 79 + .../audio_coding/neteq/neteq_statistics.h | 40 + .../src/modules/audio_coding/neteq/normal.c | 279 + .../audio_coding/neteq/packet_buffer.c | 735 + .../audio_coding/neteq/packet_buffer.h | 220 + .../audio_coding/neteq/peak_detection.c | 232 + .../audio_coding/neteq/preemptive_expand.c | 524 + .../audio_coding/neteq/random_vector.c | 54 + .../src/modules/audio_coding/neteq/recin.c | 472 + .../src/modules/audio_coding/neteq/recout.c | 1429 + .../src/modules/audio_coding/neteq/rtcp.c | 134 + .../src/modules/audio_coding/neteq/rtcp.h | 102 + .../src/modules/audio_coding/neteq/rtp.c | 240 + .../src/modules/audio_coding/neteq/rtp.h | 78 + .../src/modules/audio_coding/neteq/set_fs.c | 78 + .../modules/audio_coding/neteq/signal_mcu.c | 766 + .../audio_coding/neteq/split_and_insert.c | 141 + .../neteq/test/NETEQTEST_CodecClass.cc | 678 + .../neteq/test/NETEQTEST_CodecClass.h | 308 + .../neteq/test/NETEQTEST_DummyRTPpacket.cc | 191 + .../neteq/test/NETEQTEST_DummyRTPpacket.h | 23 + .../neteq/test/NETEQTEST_NetEQClass.cc | 393 + .../neteq/test/NETEQTEST_NetEQClass.h | 81 + .../neteq/test/NETEQTEST_RTPpacket.cc | 865 + .../neteq/test/NETEQTEST_RTPpacket.h | 105 + .../audio_coding/neteq/test/NetEqRTPplay.cc | 1774 + .../audio_coding/neteq/test/PayloadTypes.h | 77 + .../audio_coding/neteq/test/RTPanalyze.cc | 72 + .../modules/audio_coding/neteq/test/RTPcat.cc | 75 + .../audio_coding/neteq/test/RTPchange.cc | 133 + .../audio_coding/neteq/test/RTPencode.cc | 2031 + .../audio_coding/neteq/test/RTPjitter.cc | 195 + .../audio_coding/neteq/test/RTPtimeshift.cc | 97 + .../neteq/test/delay_tool/parse_delay_file.m | 191 + .../neteq/test/delay_tool/plot_neteq_delay.m | 187 + .../audio_coding/neteq/test/ptypes.txt | 20 + .../audio_coding/neteq/test/rtp_to_text.cc | 124 + .../audio_coding/neteq/unmute_signal.c | 41 + .../modules/audio_coding/neteq/webrtc_neteq.c | 1654 + .../neteq/webrtc_neteq_unittest.cc | 605 + .../src/modules/audio_coding_module.target.mk | 220 + .../audio_coding_module_test.target.mk | 197 + .../modules/audio_coding_unittests.target.mk | 186 + .../modules/audio_conference_mixer.target.mk | 179 + .../src/modules/audio_conference_mixer/OWNERS | 3 + .../interface/audio_conference_mixer.h | 86 + .../audio_conference_mixer_defines.h | 106 + .../audio_conference_mixer/source/Android.mk | 44 + .../source/audio_conference_mixer.gypi | 70 + .../source/audio_conference_mixer_impl.cc | 1187 + .../source/audio_conference_mixer_impl.h | 208 + .../source/audio_conference_mixer_unittest.cc | 17 + .../source/audio_frame_manipulator.cc | 81 + .../source/audio_frame_manipulator.h | 26 + .../source/level_indicator.cc | 76 + .../source/level_indicator.h | 37 + .../source/memory_pool.h | 122 + .../source/memory_pool_posix.h | 168 + .../source/memory_pool_win.h | 199 + .../source/time_scheduler.cc | 102 + .../source/time_scheduler.h | 47 + .../test/FunctionTest/functionTest.cc | 1098 + .../test/FunctionTest/functionTest.h | 276 + ...audio_conference_mixer_unittests.target.mk | 182 + .../trunk/src/modules/audio_device.target.mk | 201 + .../trunk/src/modules/audio_device/OWNERS | 4 + .../main/interface/audio_device.h | 207 + .../main/interface/audio_device_defines.h | 80 + .../audio_device/main/source/Android.mk | 57 + .../android/audio_device_android_jni.cc | 2920 ++ .../source/android/audio_device_android_jni.h | 268 + .../android/audio_device_android_opensles.cc | 2163 + .../android/audio_device_android_opensles.h | 310 + .../android/audio_device_utility_android.cc | 51 + .../android/audio_device_utility_android.h | 41 + .../voiceengine/AudioDeviceAndroid.java | 509 + .../main/source/audio_device.gypi | 215 + .../main/source/audio_device_buffer.cc | 654 + .../main/source/audio_device_buffer.h | 129 + .../main/source/audio_device_config.h | 44 + .../main/source/audio_device_generic.cc | 76 + .../main/source/audio_device_generic.h | 183 + .../main/source/audio_device_impl.cc | 2077 + .../main/source/audio_device_impl.h | 235 + .../main/source/audio_device_utility.cc | 127 + .../main/source/audio_device_utility.h | 36 + .../main/source/dummy/audio_device_dummy.cc | 1365 + .../main/source/dummy/audio_device_dummy.h | 191 + .../dummy/audio_device_utility_dummy.cc | 56 + .../source/dummy/audio_device_utility_dummy.h | 37 + .../source/linux/alsasymboltable_linux.cc | 39 + .../main/source/linux/alsasymboltable_linux.h | 147 + .../source/linux/audio_device_alsa_linux.cc | 2317 + .../source/linux/audio_device_alsa_linux.h | 253 + .../source/linux/audio_device_pulse_linux.cc | 3155 ++ .../source/linux/audio_device_pulse_linux.h | 385 + .../linux/audio_device_utility_linux.cc | 55 + .../source/linux/audio_device_utility_linux.h | 37 + .../linux/audio_mixer_manager_alsa_linux.cc | 1317 + .../linux/audio_mixer_manager_alsa_linux.h | 78 + .../linux/audio_mixer_manager_pulse_linux.cc | 1271 + .../linux/audio_mixer_manager_pulse_linux.h | 121 + .../linux/latebindingsymboltable_linux.cc | 116 + .../linux/latebindingsymboltable_linux.h | 195 + .../linux/pulseaudiosymboltable_linux.cc | 39 + .../linux/pulseaudiosymboltable_linux.h | 104 + .../main/source/mac/audio_device_mac.cc | 3241 ++ .../main/source/mac/audio_device_mac.h | 399 + .../source/mac/audio_device_utility_mac.cc | 54 + .../source/mac/audio_device_utility_mac.h | 37 + .../source/mac/audio_mixer_manager_mac.cc | 1167 + .../main/source/mac/audio_mixer_manager_mac.h | 80 + .../source/mac/portaudio/pa_memorybarrier.h | 127 + .../main/source/mac/portaudio/pa_ringbuffer.c | 227 + .../main/source/mac/portaudio/pa_ringbuffer.h | 233 + .../main/source/win/audio_device_core_win.cc | 5163 ++ .../main/source/win/audio_device_core_win.h | 386 + .../source/win/audio_device_utility_win.cc | 231 + .../source/win/audio_device_utility_win.h | 41 + .../main/source/win/audio_device_wave_win.cc | 3824 ++ .../main/source/win/audio_device_wave_win.h | 339 + .../source/win/audio_mixer_manager_win.cc | 2721 ++ .../main/source/win/audio_mixer_manager_win.h | 139 + .../modules/audio_device/main/test/README.txt | 23 + .../audio_device_android_test/.classpath | 7 + .../audio_device_android_test/.project | 33 + .../AndroidManifest.xml | 22 + .../default.properties | 11 + .../gen/org/webrtc/voiceengine/test/R.java | 26 + .../jni/audio_device_android_test.cc | 108 + ..._voiceengine_test_AudioDeviceAndroidTest.h | 29 + .../res/drawable/icon.png | Bin 0 -> 2574 bytes .../res/layout/main.xml | 12 + .../res/values/strings.xml | 6 + .../voiceengine/AudioDeviceAndroid.java | 1 + .../test/AudioDeviceAndroidTest.java | 69 + .../main/test/audio_device_test_api.cc | 1869 + .../main/test/audio_device_test_defines.h | 77 + .../main/test/audio_device_test_func.cc | 162 + .../main/test/func_test_manager.cc | 2733 ++ .../main/test/func_test_manager.h | 227 + .../modules/audio_device_test_api.target.mk | 183 + .../modules/audio_device_test_func.target.mk | 188 + .../src/modules/audio_processing.target.mk | 211 + .../src/modules/audio_processing/Android.mk | 149 + .../trunk/src/modules/audio_processing/OWNERS | 2 + .../modules/audio_processing/aec/Android.mk | 48 + .../src/modules/audio_processing/aec/aec.gypi | 75 + .../modules/audio_processing/aec/aec_core.c | 1525 + .../modules/audio_processing/aec/aec_core.h | 185 + .../audio_processing/aec/aec_core_sse2.c | 415 + .../modules/audio_processing/aec/aec_rdft.c | 657 + .../modules/audio_processing/aec/aec_rdft.h | 57 + .../audio_processing/aec/aec_rdft_sse2.c | 427 + .../audio_processing/aec/aec_resampler.c | 233 + .../audio_processing/aec/aec_resampler.h | 35 + .../audio_processing/aec/echo_cancellation.c | 874 + .../aec/echo_cancellation_internal.h | 67 + .../aec/include/echo_cancellation.h | 262 + .../aec/system_delay_unittest.cc | 459 + .../modules/audio_processing/aecm/Android.mk | 78 + .../modules/audio_processing/aecm/aecm.gypi | 35 + .../modules/audio_processing/aecm/aecm_core.c | 2131 + .../modules/audio_processing/aecm/aecm_core.h | 375 + .../audio_processing/aecm/aecm_core_neon.c | 303 + .../aecm/echo_control_mobile.c | 792 + .../aecm/include/echo_control_mobile.h | 233 + .../modules/audio_processing/agc/Android.mk | 40 + .../src/modules/audio_processing/agc/agc.gypi | 34 + .../modules/audio_processing/agc/analog_agc.c | 1694 + .../modules/audio_processing/agc/analog_agc.h | 133 + .../audio_processing/agc/digital_agc.c | 798 + .../audio_processing/agc/digital_agc.h | 76 + .../agc/include/gain_control.h | 259 + .../modules/audio_processing/apm_tests.gypi | 78 + .../modules/audio_processing/audio_buffer.cc | 306 + .../modules/audio_processing/audio_buffer.h | 82 + .../audio_processing/audio_processing.gypi | 91 + .../audio_processing/audio_processing_impl.cc | 655 + .../audio_processing/audio_processing_impl.h | 129 + .../src/modules/audio_processing/debug.proto | 37 + .../echo_cancellation_impl.cc | 371 + .../audio_processing/echo_cancellation_impl.h | 75 + .../echo_control_mobile_impl.cc | 300 + .../echo_control_mobile_impl.h | 61 + .../audio_processing/gain_control_impl.cc | 367 + .../audio_processing/gain_control_impl.h | 79 + .../audio_processing/high_pass_filter_impl.cc | 173 + .../audio_processing/high_pass_filter_impl.h | 48 + .../include/audio_processing.h | 603 + .../audio_processing/level_estimator_impl.cc | 165 + .../audio_processing/level_estimator_impl.h | 49 + .../noise_suppression_impl.cc | 165 + .../audio_processing/noise_suppression_impl.h | 51 + .../modules/audio_processing/ns/Android.mk | 79 + .../src/modules/audio_processing/ns/defines.h | 53 + .../ns/include/noise_suppression.h | 110 + .../ns/include/noise_suppression_x.h | 109 + .../audio_processing/ns/noise_suppression.c | 48 + .../audio_processing/ns/noise_suppression_x.c | 48 + .../src/modules/audio_processing/ns/ns.gypi | 59 + .../src/modules/audio_processing/ns/ns_core.c | 1303 + .../src/modules/audio_processing/ns/ns_core.h | 179 + .../modules/audio_processing/ns/nsx_core.c | 2444 + .../modules/audio_processing/ns/nsx_core.h | 222 + .../audio_processing/ns/nsx_core_neon.c | 734 + .../modules/audio_processing/ns/nsx_defines.h | 59 + .../audio_processing/ns/windows_private.h | 574 + .../audio_processing/processing_component.cc | 112 + .../audio_processing/processing_component.h | 53 + .../audio_processing/splitting_filter.cc | 33 + .../audio_processing/splitting_filter.h | 63 + .../test/android/apmtest/AndroidManifest.xml | 30 + .../test/android/apmtest/default.properties | 11 + .../test/android/apmtest/jni/Android.mk | 26 + .../test/android/apmtest/jni/Application.mk | 1 + .../test/android/apmtest/jni/main.c | 307 + .../android/apmtest/res/values/strings.xml | 4 + .../modules/audio_processing/test/apmtest.m | 355 + .../audio_processing/test/process_test.cc | 964 + .../audio_processing/test/unit_test.cc | 1335 + .../audio_processing/test/unittest.proto | 52 + .../modules/audio_processing/test/unpack.cc | 216 + .../audio_processing/utility/Android.mk | 43 + .../utility/delay_estimator.c | 312 + .../utility/delay_estimator.h | 128 + .../utility/delay_estimator_wrapper.c | 333 + .../utility/delay_estimator_wrapper.h | 110 + .../modules/audio_processing/utility/fft4g.c | 1326 + .../modules/audio_processing/utility/fft4g.h | 17 + .../audio_processing/utility/ring_buffer.c | 271 + .../audio_processing/utility/ring_buffer.h | 53 + .../audio_processing/utility/util.gypi | 40 + .../audio_processing/voice_detection_impl.cc | 188 + .../audio_processing/voice_detection_impl.h | 62 + .../trunk/src/modules/audioproc.target.mk | 188 + .../modules/audioproc_debug_proto.target.mk | 209 + .../src/modules/audioproc_unittest.target.mk | 196 + .../audioproc_unittest_proto.target.mk | 205 + .../trunk/src/modules/cng_unittests.target.mk | 178 + .../trunk/src/modules/g711_test.target.mk | 170 + .../src/modules/g711_unittests.target.mk | 178 + .../src/modules/g722_unittests.target.mk | 178 + media/webrtc/trunk/src/modules/iLBC.target.mk | 240 + .../trunk/src/modules/iLBCtest.target.mk | 170 + media/webrtc/trunk/src/modules/iSAC.target.mk | 199 + .../trunk/src/modules/iSACAPITest.target.mk | 184 + .../trunk/src/modules/iSACFix.target.mk | 196 + .../trunk/src/modules/iSACFixtest.target.mk | 172 + .../modules/iSACSwitchSampRateTest.target.mk | 186 + .../trunk/src/modules/iSACtest.target.mk | 175 + .../trunk/src/modules/interface/module.h | 65 + .../modules/interface/module_common_types.h | 1062 + .../trunk/src/modules/media_file.target.mk | 182 + .../trunk/src/modules/media_file/OWNERS | 4 + .../modules/media_file/interface/media_file.h | 227 + .../media_file/interface/media_file_defines.h | 51 + .../src/modules/media_file/source/Android.mk | 46 + .../src/modules/media_file/source/avi_file.cc | 1773 + .../src/modules/media_file/source/avi_file.h | 278 + .../modules/media_file/source/media_file.gypi | 67 + .../media_file/source/media_file_impl.cc | 1372 + .../media_file/source/media_file_impl.h | 246 + .../media_file/source/media_file_unittest.cc | 46 + .../media_file/source/media_file_utility.cc | 2563 + .../media_file/source/media_file_utility.h | 349 + .../modules/media_file_unittests.target.mk | 180 + .../webrtc/trunk/src/modules/modules.Makefile | 6 + media/webrtc/trunk/src/modules/modules.gyp | 60 + .../src/modules/neteq_unittests.target.mk | 180 + media/webrtc/trunk/src/modules/ns.target.mk | 175 + .../webrtc/trunk/src/modules/ns_fix.target.mk | 171 + .../src/modules/pcm16b_unittests.target.mk | 178 + .../trunk/src/modules/rtp_rtcp.target.mk | 200 + .../webrtc/trunk/src/modules/rtp_rtcp/OWNERS | 5 + .../src/modules/rtp_rtcp/interface/rtp_rtcp.h | 1030 + .../rtp_rtcp/interface/rtp_rtcp_defines.h | 282 + .../modules/rtp_rtcp/mocks/mock_rtp_rtcp.h | 292 + .../src/modules/rtp_rtcp/source/Android.mk | 67 + .../src/modules/rtp_rtcp/source/Bitrate.h | 89 + .../rtp_rtcp/source/H264/bitstream_builder.cc | 580 + .../rtp_rtcp/source/H264/bitstream_builder.h | 52 + .../rtp_rtcp/source/H264/bitstream_parser.cc | 217 + .../rtp_rtcp/source/H264/bitstream_parser.h | 46 + .../rtp_rtcp/source/H264/h264_information.cc | 818 + .../rtp_rtcp/source/H264/h264_information.h | 170 + .../rtp_rtcp/source/H264/rtp_sender_h264.cc | 1280 + .../rtp_rtcp/source/H264/rtp_sender_h264.h | 179 + .../rtp_rtcp/source/bandwidth_management.cc | 301 + .../rtp_rtcp/source/bandwidth_management.h | 92 + .../src/modules/rtp_rtcp/source/bitrate.cc | 203 + .../src/modules/rtp_rtcp/source/bwe_defines.h | 56 + .../src/modules/rtp_rtcp/source/dtmf_queue.cc | 79 + .../src/modules/rtp_rtcp/source/dtmf_queue.h | 40 + .../rtp_rtcp/source/fec_private_tables.h | 25741 ++++++++++ .../rtp_rtcp/source/fec_test_helper.cc | 99 + .../modules/rtp_rtcp/source/fec_test_helper.h | 60 + .../source/forward_error_correction.cc | 837 + .../source/forward_error_correction.h | 329 + .../forward_error_correction_internal.cc | 381 + .../forward_error_correction_internal.h | 48 + .../source/mock/mock_rtp_receiver_video.h | 41 + .../rtp_rtcp/source/overuse_detector.cc | 450 + .../rtp_rtcp/source/overuse_detector.h | 90 + .../modules/rtp_rtcp/source/producer_fec.cc | 215 + .../modules/rtp_rtcp/source/producer_fec.h | 77 + .../rtp_rtcp/source/producer_fec_unittest.cc | 143 + .../modules/rtp_rtcp/source/receiver_fec.cc | 269 + .../modules/rtp_rtcp/source/receiver_fec.h | 53 + .../rtp_rtcp/source/receiver_fec_unittest.cc | 381 + .../rtp_rtcp/source/remote_rate_control.cc | 483 + .../rtp_rtcp/source/remote_rate_control.h | 82 + .../source/rtcp_format_remb_unittest.cc | 120 + .../modules/rtp_rtcp/source/rtcp_receiver.cc | 1531 + .../modules/rtp_rtcp/source/rtcp_receiver.h | 233 + .../rtp_rtcp/source/rtcp_receiver_help.cc | 258 + .../rtp_rtcp/source/rtcp_receiver_help.h | 127 + .../modules/rtp_rtcp/source/rtcp_sender.cc | 2175 + .../src/modules/rtp_rtcp/source/rtcp_sender.h | 265 + .../rtp_rtcp/source/rtcp_sender_test.cc | 178 + .../modules/rtp_rtcp/source/rtcp_utility.cc | 1509 + .../modules/rtp_rtcp/source/rtcp_utility.h | 437 + .../rtp_rtcp/source/rtp_fec_unittest.cc | 776 + .../modules/rtp_rtcp/source/rtp_format_vp8.cc | 469 + .../modules/rtp_rtcp/source/rtp_format_vp8.h | 206 + .../source/rtp_format_vp8_test_helper.cc | 248 + .../source/rtp_format_vp8_test_helper.h | 75 + .../source/rtp_format_vp8_unittest.cc | 358 + .../rtp_rtcp/source/rtp_header_extension.cc | 176 + .../rtp_rtcp/source/rtp_header_extension.h | 72 + .../source/rtp_header_extension_test.cc | 117 + .../rtp_rtcp/source/rtp_packet_history.cc | 278 + .../rtp_rtcp/source/rtp_packet_history.h | 87 + .../source/rtp_packet_history_test.cc | 214 + .../modules/rtp_rtcp/source/rtp_receiver.cc | 1684 + .../modules/rtp_rtcp/source/rtp_receiver.h | 264 + .../rtp_rtcp/source/rtp_receiver_audio.cc | 379 + .../rtp_rtcp/source/rtp_receiver_audio.h | 98 + .../rtp_rtcp/source/rtp_receiver_video.cc | 521 + .../rtp_rtcp/source/rtp_receiver_video.h | 139 + .../src/modules/rtp_rtcp/source/rtp_rtcp.gypi | 104 + .../modules/rtp_rtcp/source/rtp_rtcp_config.h | 48 + .../modules/rtp_rtcp/source/rtp_rtcp_impl.cc | 2729 ++ .../modules/rtp_rtcp/source/rtp_rtcp_impl.h | 597 + .../rtp_rtcp/source/rtp_rtcp_tests.gypi | 50 + .../src/modules/rtp_rtcp/source/rtp_sender.cc | 1583 + .../src/modules/rtp_rtcp/source/rtp_sender.h | 351 + .../rtp_rtcp/source/rtp_sender_audio.cc | 627 + .../rtp_rtcp/source/rtp_sender_audio.h | 133 + .../rtp_rtcp/source/rtp_sender_test.cc | 227 + .../rtp_rtcp/source/rtp_sender_video.cc | 492 + .../rtp_rtcp/source/rtp_sender_video.h | 143 + .../modules/rtp_rtcp/source/rtp_utility.cc | 914 + .../src/modules/rtp_rtcp/source/rtp_utility.h | 243 + .../rtp_rtcp/source/rtp_utility_test.cc | 288 + .../modules/rtp_rtcp/source/ssrc_database.cc | 217 + .../modules/rtp_rtcp/source/ssrc_database.h | 62 + .../src/modules/rtp_rtcp/source/tmmbr_help.cc | 447 + .../src/modules/rtp_rtcp/source/tmmbr_help.h | 75 + .../rtp_rtcp/source/transmission_bucket.cc | 117 + .../rtp_rtcp/source/transmission_bucket.h | 63 + .../source/transmission_bucket_test.cc | 64 + .../rtp_rtcp/source/video_codec_information.h | 28 + .../source/vp8_partition_aggregator.cc | 268 + .../source/vp8_partition_aggregator.h | 135 + .../vp8_partition_aggregator_unittest.cc | 215 + .../test/BWEStandAlone/BWEConvergenceTest.cc | 66 + .../test/BWEStandAlone/BWEConvergenceTest.h | 38 + .../test/BWEStandAlone/BWEStabilityTest.cc | 84 + .../test/BWEStandAlone/BWEStabilityTest.h | 39 + .../test/BWEStandAlone/BWEStandAlone.cc | 200 + .../test/BWEStandAlone/BWETestBase.cc | 453 + .../rtp_rtcp/test/BWEStandAlone/BWETestBase.h | 102 + .../rtp_rtcp/test/BWEStandAlone/BWETester.cc | 274 + .../BWEStandAlone/BWETwoWayLimitFinding.cc | 75 + .../BWEStandAlone/BWETwoWayLimitFinding.h | 41 + .../rtp_rtcp/test/BWEStandAlone/MatlabPlot.cc | 1071 + .../rtp_rtcp/test/BWEStandAlone/MatlabPlot.h | 170 + .../test/BWEStandAlone/TestLoadGenerator.cc | 438 + .../test/BWEStandAlone/TestLoadGenerator.h | 146 + .../test/BWEStandAlone/TestSenderReceiver.cc | 442 + .../test/BWEStandAlone/TestSenderReceiver.h | 166 + .../test/bitstreamTest/bitstreamTest.cc | 538 + .../modules/rtp_rtcp/test/bwe_standalone.gypi | 111 + .../modules/rtp_rtcp/test/testAPI/test_api.cc | 120 + .../rtp_rtcp/test/testAPI/test_api.gypi | 42 + .../modules/rtp_rtcp/test/testAPI/test_api.h | 86 + .../rtp_rtcp/test/testAPI/test_api_audio.cc | 446 + .../rtp_rtcp/test/testAPI/test_api_nack.cc | 248 + .../rtp_rtcp/test/testAPI/test_api_rtcp.cc | 333 + .../rtp_rtcp/test/testAPI/test_api_video.cc | 90 + .../modules/rtp_rtcp/test/testFec/test_fec.cc | 492 + .../rtp_rtcp/test/testFec/test_fec.gypi | 36 + .../test/testH263Parser/testH263Parser.cc | 580 + .../test/testRateControl/testRateControl.cc | 271 + .../rtp_rtcp/test/testTMMBR/testTMMBR.cc | 1034 + .../rtp_rtcp/test/test_bwe/test_bwe.gypi | 35 + .../rtp_rtcp/test/test_bwe/unit_test.cc | 59 + .../src/modules/rtp_rtcp_unittests.target.mk | 193 + .../trunk/src/modules/test_bwe.target.mk | 185 + .../trunk/src/modules/test_fec.target.mk | 176 + .../src/modules/test_framework.target.mk | 188 + .../src/modules/test_rtp_rtcp_api.target.mk | 188 + .../trunk/src/modules/udp_transport.target.mk | 180 + .../trunk/src/modules/udp_transport/OWNERS | 4 + .../udp_transport/interface/udp_transport.h | 386 + .../modules/udp_transport/source/Android.mk | 45 + .../source/traffic_control_windows.cc | 253 + .../source/traffic_control_windows.h | 99 + .../source/udp_socket2_manager_windows.cc | 657 + .../source/udp_socket2_manager_windows.h | 162 + .../source/udp_socket2_windows.cc | 1387 + .../source/udp_socket2_windows.h | 171 + .../source/udp_socket_manager_posix.cc | 429 + .../source/udp_socket_manager_posix.h | 85 + .../source/udp_socket_manager_windows.cc | 283 + .../source/udp_socket_manager_windows.h | 68 + .../source/udp_socket_manager_wrapper.cc | 77 + .../source/udp_socket_manager_wrapper.h | 71 + .../udp_transport/source/udp_socket_posix.cc | 277 + .../udp_transport/source/udp_socket_posix.h | 91 + .../source/udp_socket_windows.cc | 775 + .../udp_transport/source/udp_socket_windows.h | 103 + .../source/udp_socket_wrapper.cc | 162 + .../udp_transport/source/udp_socket_wrapper.h | 110 + .../udp_transport/source/udp_transport.gypi | 120 + .../source/udp_transport_impl.cc | 3016 ++ .../udp_transport/source/udp_transport_impl.h | 256 + .../source/udp_transport_unittest.cc | 35 + .../udp_transport/test/SocketManagerTest.cc | 449 + .../modules/udp_transport_unittests.target.mk | 180 + .../src/modules/unpack_aecdump.target.mk | 188 + media/webrtc/trunk/src/modules/utility/OWNERS | 4 + .../modules/utility/interface/file_player.h | 107 + .../modules/utility/interface/file_recorder.h | 88 + .../utility/interface/process_thread.h | 34 + .../src/modules/utility/interface/rtp_dump.h | 52 + .../src/modules/utility/source/Android.mk | 55 + .../trunk/src/modules/utility/source/coder.cc | 128 + .../trunk/src/modules/utility/source/coder.h | 69 + .../utility/source/file_player_impl.cc | 723 + .../modules/utility/source/file_player_impl.h | 124 + .../utility/source/file_player_unittest.cc | 17 + .../utility/source/file_recorder_impl.cc | 794 + .../utility/source/file_recorder_impl.h | 164 + .../modules/utility/source/frame_scaler.cc | 58 + .../src/modules/utility/source/frame_scaler.h | 47 + .../utility/source/process_thread_impl.cc | 188 + .../utility/source/process_thread_impl.h | 47 + .../modules/utility/source/rtp_dump_impl.cc | 282 + .../modules/utility/source/rtp_dump_impl.h | 49 + .../src/modules/utility/source/utility.gypi | 92 + .../src/modules/utility/source/video_coder.cc | 152 + .../src/modules/utility/source/video_coder.h | 69 + .../utility/source/video_frames_queue.cc | 150 + .../utility/source/video_frames_queue.h | 62 + .../trunk/src/modules/utility/test/testAPI.cc | 368 + .../trunk/src/modules/video_capture/OWNERS | 4 + .../main/interface/video_capture.h | 160 + .../main/interface/video_capture_defines.h | 155 + .../main/interface/video_capture_factory.h | 49 + .../video_capture/main/source/Android.mk | 50 + .../source/External/device_info_external.cc | 53 + .../source/External/video_capture_external.cc | 28 + .../main/source/Linux/device_info_linux.cc | 330 + .../main/source/Linux/device_info_linux.h | 53 + .../main/source/Linux/video_capture_linux.cc | 464 + .../main/source/Linux/video_capture_linux.h | 64 + .../source/Mac/QTKit/video_capture_qtkit.h | 83 + .../source/Mac/QTKit/video_capture_qtkit.mm | 223 + .../Mac/QTKit/video_capture_qtkit_info.h | 95 + .../Mac/QTKit/video_capture_qtkit_info.mm | 126 + .../Mac/QTKit/video_capture_qtkit_info_objc.h | 66 + .../QTKit/video_capture_qtkit_info_objc.mm | 188 + .../Mac/QTKit/video_capture_qtkit_objc.h | 93 + .../Mac/QTKit/video_capture_qtkit_objc.mm | 462 + .../Mac/QTKit/video_capture_qtkit_utility.h | 36 + .../Mac/QTKit/video_capture_recursive_lock.h | 32 + .../Mac/QTKit/video_capture_recursive_lock.mm | 33 + .../Mac/QuickTime/video_capture_quick_time.cc | 1387 + .../Mac/QuickTime/video_capture_quick_time.h | 133 + .../video_capture_quick_time_info.cc | 391 + .../QuickTime/video_capture_quick_time_info.h | 166 + .../main/source/Mac/video_capture_mac.h | 0 .../main/source/Mac/video_capture_mac.mm | 275 + .../Windows/capture_delay_values_windows.h | 28 + .../source/Windows/device_info_windows.cc | 790 + .../main/source/Windows/device_info_windows.h | 105 + .../Windows/direct_show_base_classes.gyp | 109 + .../source/Windows/help_functions_windows.cc | 114 + .../source/Windows/help_functions_windows.h | 38 + .../source/Windows/sink_filter_windows.cc | 505 + .../main/source/Windows/sink_filter_windows.h | 100 + .../Windows/video_capture_factory_windows.cc | 45 + .../source/Windows/video_capture_windows.cc | 411 + .../source/Windows/video_capture_windows.h | 86 + .../source/android/device_info_android.cc | 326 + .../main/source/android/device_info_android.h | 65 + .../videoengine/CaptureCapabilityAndroid.java | 17 + .../videoengine/VideoCaptureAndroid.java | 262 + .../VideoCaptureDeviceInfoAndroid.java | 431 + .../source/android/video_capture_android.cc | 654 + .../source/android/video_capture_android.h | 66 + .../main/source/device_info_impl.cc | 400 + .../main/source/device_info_impl.h | 68 + .../main/source/video_capture.gypi | 190 + .../main/source/video_capture_config.h | 34 + .../main/source/video_capture_delay.h | 36 + .../main/source/video_capture_factory.cc | 43 + .../main/source/video_capture_impl.cc | 501 + .../main/source/video_capture_impl.h | 143 + .../main/test/android/.classpath | 9 + .../video_capture/main/test/android/.project | 33 + .../main/test/android/AndroidManifest.xml | 31 + .../main/test/android/default.properties | 11 + .../webrtc/capturemoduleandroidtest/R.java | 33 + .../main/test/android/jni/Android.mk | 19 + ...moduleandroidtest_VideoCaptureModuleTest.h | 40 + .../video_capture_module_android_test_jni.cc | 149 + .../test/android/res/drawable-hdpi/icon.png | Bin 0 -> 4147 bytes .../test/android/res/drawable-ldpi/icon.png | Bin 0 -> 1723 bytes .../test/android/res/drawable-mdpi/icon.png | Bin 0 -> 2574 bytes .../main/test/android/res/layout/main.xml | 32 + .../main/test/android/res/values/strings.xml | 11 + .../VideoCaptureJavaTest.java | 61 + .../VideoCaptureModuleTest.java | 142 + .../main/test/video_capture_unittest.cc | 455 + .../modules/video_capture_module.target.mk | 186 + .../video_capture_module_test.target.mk | 194 + .../video_codecs_test_framework.target.mk | 168 + ..._test_framework_integrationtests.target.mk | 186 + ..._codecs_test_framework_unittests.target.mk | 182 + .../src/modules/video_coding/codecs/OWNERS | 4 + .../codecs/i420/main/interface/i420.h | 156 + .../codecs/i420/main/source/Android.mk | 41 + .../codecs/i420/main/source/i420.cc | 253 + .../codecs/i420/main/source/i420.gypi | 40 + .../mock/mock_video_codec_interface.h | 89 + .../codecs/interface/video_codec_interface.h | 246 + .../codecs/interface/video_error_codes.h | 30 + .../test/mock/mock_packet_manipulator.h | 33 + .../codecs/test/packet_manipulator.cc | 111 + .../codecs/test/packet_manipulator.h | 113 + .../test/packet_manipulator_unittest.cc | 153 + .../test/predictive_packet_manipulator.cc | 48 + .../test/predictive_packet_manipulator.h | 45 + .../modules/video_coding/codecs/test/stats.cc | 172 + .../modules/video_coding/codecs/test/stats.h | 76 + .../codecs/test/stats_unittest.cc | 64 + .../test/video_codecs_test_framework.gypi | 72 + .../codecs/test/videoprocessor.cc | 287 + .../video_coding/codecs/test/videoprocessor.h | 229 + .../test/videoprocessor_integrationtest.cc | 172 + .../codecs/test/videoprocessor_unittest.cc | 99 + .../codecs/test_framework/benchmark.cc | 310 + .../codecs/test_framework/benchmark.h | 40 + .../codecs/test_framework/exportfig.m | 500 + .../test_framework/normal_async_test.cc | 593 + .../codecs/test_framework/normal_async_test.h | 189 + .../codecs/test_framework/normal_test.cc | 253 + .../codecs/test_framework/normal_test.h | 46 + .../codecs/test_framework/packet_loss_test.cc | 248 + .../codecs/test_framework/packet_loss_test.h | 59 + .../codecs/test_framework/performance_test.cc | 296 + .../codecs/test_framework/performance_test.h | 54 + .../codecs/test_framework/plotBenchmark.m | 427 + .../codecs/test_framework/test.cc | 165 + .../video_coding/codecs/test_framework/test.h | 68 + .../codecs/test_framework/test_framework.gypi | 71 + .../codecs/test_framework/unit_test.cc | 815 + .../codecs/test_framework/unit_test.h | 111 + .../codecs/test_framework/video_buffer.cc | 319 + .../codecs/test_framework/video_buffer.h | 122 + .../codecs/test_framework/video_source.cc | 419 + .../codecs/test_framework/video_source.h | 109 + .../codecs/tools/video_codecs_tools.gypi | 37 + .../codecs/tools/video_quality_measurement.cc | 526 + .../codecs/vp8/main/interface/vp8.h | 240 + .../vp8/main/interface/vp8_common_types.h | 29 + .../codecs/vp8/main/source/Android.mk | 47 + .../source/reference_picture_selection.cc | 131 + .../main/source/reference_picture_selection.h | 78 + .../reference_picture_selection_unittest.cc | 107 + .../codecs/vp8/main/source/temporal_layers.cc | 219 + .../codecs/vp8/main/source/temporal_layers.h | 67 + .../main/source/temporal_layers_unittest.cc | 202 + .../codecs/vp8/main/source/vp8.cc | 1016 + .../codecs/vp8/main/source/vp8.gypi | 121 + .../codecs/vp8/main/test/benchmark.cc | 39 + .../codecs/vp8/main/test/benchmark.h | 28 + .../codecs/vp8/main/test/dual_decoder_test.cc | 221 + .../codecs/vp8/main/test/dual_decoder_test.h | 52 + .../codecs/vp8/main/test/normal_async_test.cc | 83 + .../codecs/vp8/main/test/normal_async_test.h | 33 + .../codecs/vp8/main/test/packet_loss_test.cc | 74 + .../codecs/vp8/main/test/packet_loss_test.h | 34 + .../codecs/vp8/main/test/rps_test.cc | 311 + .../codecs/vp8/main/test/rps_test.h | 57 + .../codecs/vp8/main/test/tester.cc | 62 + .../codecs/vp8/main/test/unit_test.cc | 161 + .../codecs/vp8/main/test/unit_test.h | 39 + .../src/modules/video_coding/main/OWNERS | 4 + .../main/interface/mock/mock_vcm_callbacks.h | 34 + .../main/interface/video_coding.h | 551 + .../main/interface/video_coding_defines.h | 187 + .../video_coding/main/source/Android.mk | 70 + .../main/source/codec_database.cc | 720 + .../video_coding/main/source/codec_database.h | 210 + .../video_coding/main/source/codec_timer.cc | 133 + .../video_coding/main/source/codec_timer.h | 61 + .../main/source/content_metrics_processing.cc | 125 + .../main/source/content_metrics_processing.h | 76 + .../main/source/decoding_state.cc | 202 + .../video_coding/main/source/decoding_state.h | 69 + .../main/source/decoding_state_unittest.cc | 430 + .../video_coding/main/source/encoded_frame.cc | 253 + .../video_coding/main/source/encoded_frame.h | 120 + .../video_coding/main/source/er_tables_xor.h | 38742 ++++++++++++++++ .../modules/video_coding/main/source/event.h | 63 + .../video_coding/main/source/exp_filter.cc | 60 + .../video_coding/main/source/exp_filter.h | 58 + .../video_coding/main/source/fec_tables_xor.h | 6481 +++ .../video_coding/main/source/frame_buffer.cc | 415 + .../video_coding/main/source/frame_buffer.h | 102 + .../video_coding/main/source/frame_dropper.cc | 331 + .../video_coding/main/source/frame_dropper.h | 94 + .../main/source/generic_decoder.cc | 227 + .../main/source/generic_decoder.h | 121 + .../main/source/generic_encoder.cc | 273 + .../main/source/generic_encoder.h | 143 + .../main/source/inter_frame_delay.cc | 114 + .../main/source/inter_frame_delay.h | 66 + .../main/source/internal_defines.h | 58 + .../video_coding/main/source/jitter_buffer.cc | 1775 + .../video_coding/main/source/jitter_buffer.h | 259 + .../main/source/jitter_buffer_common.cc | 60 + .../main/source/jitter_buffer_common.h | 84 + .../main/source/jitter_buffer_unittest.cc | 376 + .../main/source/jitter_estimator.cc | 422 + .../main/source/jitter_estimator.h | 155 + .../main/source/media_opt_util.cc | 925 + .../video_coding/main/source/media_opt_util.h | 385 + .../main/source/media_optimization.cc | 666 + .../main/source/media_optimization.h | 210 + .../main/source/mock/fake_tick_time.h | 47 + .../main/source/nack_fec_tables.h | 127 + .../video_coding/main/source/packet.cc | 119 + .../modules/video_coding/main/source/packet.h | 57 + .../video_coding/main/source/qm_select.cc | 895 + .../video_coding/main/source/qm_select.h | 374 + .../video_coding/main/source/qm_select_data.h | 228 + .../main/source/qm_select_unittest.cc | 1283 + .../video_coding/main/source/receiver.cc | 493 + .../video_coding/main/source/receiver.h | 101 + .../video_coding/main/source/rtt_filter.cc | 214 + .../video_coding/main/source/rtt_filter.h | 70 + .../video_coding/main/source/session_info.cc | 595 + .../video_coding/main/source/session_info.h | 134 + .../main/source/session_info_unittest.cc | 931 + .../video_coding/main/source/tick_time_base.h | 36 + .../main/source/timestamp_extrapolator.cc | 262 + .../main/source/timestamp_extrapolator.h | 63 + .../video_coding/main/source/timestamp_map.cc | 99 + .../video_coding/main/source/timestamp_map.h | 52 + .../video_coding/main/source/timing.cc | 337 + .../modules/video_coding/main/source/timing.h | 111 + .../main/source/video_coding.gypi | 106 + .../main/source/video_coding_impl.cc | 1369 + .../main/source/video_coding_impl.h | 309 + .../video_coding_robustness_unittest.cc | 396 + .../main/source/video_coding_test.gypi | 96 + .../main/test/codec_database_test.cc | 408 + .../main/test/codec_database_test.h | 51 + .../main/test/decode_from_storage_test.cc | 177 + .../main/test/generic_codec_test.cc | 587 + .../main/test/generic_codec_test.h | 109 + .../main/test/jitter_buffer_test.cc | 1936 + .../main/test/jitter_estimate_test.cc | 109 + .../main/test/jitter_estimate_test.h | 105 + .../video_coding/main/test/media_opt_test.cc | 560 + .../video_coding/main/test/media_opt_test.h | 93 + .../video_coding/main/test/mt_rx_tx_test.cc | 363 + .../video_coding/main/test/mt_test_common.cc | 139 + .../video_coding/main/test/mt_test_common.h | 88 + .../video_coding/main/test/normal_test.cc | 402 + .../video_coding/main/test/normal_test.h | 143 + .../main/test/plotJitterEstimate.m | 52 + .../video_coding/main/test/plotReceiveTrace.m | 213 + .../video_coding/main/test/plotTimingTest.m | 62 + .../main/test/quality_modes_test.cc | 485 + .../main/test/quality_modes_test.h | 95 + .../video_coding/main/test/receiver_tests.h | 81 + .../main/test/receiver_timing_tests.cc | 235 + .../video_coding/main/test/release_test.cc | 46 + .../video_coding/main/test/release_test.h | 17 + .../main/test/release_test_pt2.cc | 31 + .../video_coding/main/test/rtp_player.cc | 443 + .../video_coding/main/test/rtp_player.h | 119 + .../video_coding/main/test/subfigure.m | 30 + .../video_coding/main/test/test_callbacks.cc | 471 + .../video_coding/main/test/test_callbacks.h | 271 + .../video_coding/main/test/test_macros.h | 45 + .../video_coding/main/test/test_util.cc | 46 + .../video_coding/main/test/test_util.h | 75 + .../video_coding/main/test/tester_main.cc | 208 + .../video_coding/main/test/video_rtp_play.cc | 202 + .../main/test/video_rtp_play_mt.cc | 261 + .../video_coding/main/test/video_source.cc | 202 + .../video_coding/main/test/video_source.h | 83 + .../src/modules/video_coding_test.target.mk | 214 + .../modules/video_coding_unittests.target.mk | 189 + .../src/modules/video_processing.target.mk | 189 + .../src/modules/video_processing/main/OWNERS | 4 + .../main/interface/video_processing.h | 382 + .../main/interface/video_processing_defines.h | 43 + .../video_processing/main/source/Android.mk | 59 + .../video_processing/main/source/brighten.cc | 52 + .../video_processing/main/source/brighten.h | 26 + .../main/source/brightness_detection.cc | 195 + .../main/source/brightness_detection.h | 46 + .../main/source/color_enhancement.cc | 68 + .../main/source/color_enhancement.h | 31 + .../main/source/color_enhancement_private.h | 273 + .../main/source/content_analysis.cc | 338 + .../main/source/content_analysis.h | 90 + .../main/source/content_analysis_sse2.cc | 300 + .../main/source/deflickering.cc | 445 + .../main/source/deflickering.h | 69 + .../video_processing/main/source/denoising.cc | 180 + .../video_processing/main/source/denoising.h | 48 + .../main/source/frame_preprocessor.cc | 189 + .../main/source/frame_preprocessor.h | 84 + .../main/source/spatial_resampler.cc | 123 + .../main/source/spatial_resampler.h | 69 + .../main/source/video_decimator.cc | 235 + .../main/source/video_decimator.h | 65 + .../main/source/video_processing.gypi | 88 + .../main/source/video_processing_impl.cc | 340 + .../main/source/video_processing_impl.h | 107 + .../unit_test/brightness_detection_test.cc | 107 + .../test/unit_test/color_enhancement_test.cc | 125 + .../test/unit_test/content_metrics_test.cc | 40 + .../main/test/unit_test/createTable.m | 179 + .../main/test/unit_test/deflickering_test.cc | 91 + .../main/test/unit_test/denoising_test.cc | 127 + .../main/test/unit_test/readYUV420file.m | 45 + .../main/test/unit_test/unit_test.cc | 343 + .../main/test/unit_test/unit_test.h | 47 + .../main/test/unit_test/writeYUV420file.m | 22 + .../video_processing/main/test/vpm_tests.gypi | 39 + .../modules/video_processing_sse2.target.mk | 174 + .../video_processing_unittests.target.mk | 189 + .../video_quality_measurement.target.mk | 190 + .../trunk/src/modules/video_render/OWNERS | 4 + .../main/interface/video_render.h | 280 + .../main/interface/video_render_defines.h | 92 + .../video_render/main/source/Android.mk | 53 + .../webrtc/videoengine/ViEAndroidGLES20.java | 263 + .../org/webrtc/videoengine/ViERenderer.java | 58 + .../videoengine/ViESurfaceRenderer.java | 155 + .../android/video_render_android_impl.cc | 344 + .../android/video_render_android_impl.h | 156 + .../video_render_android_native_opengl2.cc | 448 + .../video_render_android_native_opengl2.h | 99 + .../video_render_android_surface_view.cc | 560 + .../video_render_android_surface_view.h | 92 + .../source/android/video_render_opengles20.cc | 413 + .../source/android/video_render_opengles20.h | 61 + .../external/video_render_external_impl.cc | 205 + .../external/video_render_external_impl.h | 134 + .../video_render/main/source/i_video_render.h | 133 + .../main/source/incoming_video_stream.cc | 413 + .../main/source/incoming_video_stream.h | 140 + .../source/linux/video_render_linux_impl.cc | 271 + .../source/linux/video_render_linux_impl.h | 136 + .../main/source/linux/video_x11_channel.cc | 332 + .../main/source/linux/video_x11_channel.h | 97 + .../main/source/linux/video_x11_render.cc | 154 + .../main/source/linux/video_x11_render.h | 58 + .../source/mac/cocoa_full_screen_window.h | 33 + .../source/mac/cocoa_full_screen_window.mm | 87 + .../main/source/mac/cocoa_render_view.h | 32 + .../main/source/mac/cocoa_render_view.mm | 54 + .../main/source/mac/video_render_agl.cc | 2007 + .../main/source/mac/video_render_agl.h | 185 + .../mac/video_render_mac_carbon_impl.cc | 297 + .../source/mac/video_render_mac_carbon_impl.h | 148 + .../source/mac/video_render_mac_cocoa_impl.h | 143 + .../source/mac/video_render_mac_cocoa_impl.mm | 269 + .../main/source/mac/video_render_nsopengl.h | 193 + .../main/source/mac/video_render_nsopengl.mm | 1275 + .../main/source/video_render.gypi | 219 + .../main/source/video_render_frames.cc | 209 + .../main/source/video_render_frames.h | 78 + .../main/source/video_render_impl.cc | 980 + .../main/source/video_render_impl.h | 229 + .../main/source/windows/i_video_render_win.h | 118 + .../source/windows/video_render_direct3d9.cc | 1189 + .../source/windows/video_render_direct3d9.h | 267 + .../source/windows/video_render_directdraw.cc | 4006 ++ .../source/windows/video_render_directdraw.h | 399 + .../windows/video_render_windows_impl.cc | 986 + .../windows/video_render_windows_impl.h | 155 + .../main/test/testAPI/renderStartImage.bmp | Bin 0 -> 304182 bytes .../video_render/main/test/testAPI/testAPI.cc | 677 + .../video_render/main/test/testAPI/testAPI.h | 18 + .../main/test/testAPI/testAPI_android.cc | 15 + .../main/test/testAPI/testAPI_mac.mm | 69 + .../src/modules/video_render_module.target.mk | 188 + .../video_render_module_test.target.mk | 184 + .../trunk/src/modules/vp8_test.target.mk | 192 + .../trunk/src/modules/vp8_unittests.target.mk | 187 + .../trunk/src/modules/webrtc_i420.target.mk | 176 + .../src/modules/webrtc_utility.target.mk | 193 + .../webrtc_utility_unittests.target.mk | 182 + .../src/modules/webrtc_video_coding.target.mk | 211 + .../trunk/src/modules/webrtc_vp8.target.mk | 184 + media/webrtc/trunk/src/supplement.gypi | 8 + media/webrtc/trunk/src/system_wrappers/OWNERS | 7 + .../interface/aligned_malloc.h | 25 + .../interface/atomic32_wrapper.h | 55 + .../interface/compile_assert.h | 27 + .../interface/condition_variable_wrapper.h | 41 + .../interface/constructor_magic.h | 50 + .../interface/cpu_features_wrapper.h | 49 + .../src/system_wrappers/interface/cpu_info.h | 27 + .../system_wrappers/interface/cpu_wrapper.h | 53 + .../interface/critical_section_wrapper.h | 74 + .../src/system_wrappers/interface/data_log.h | 121 + .../system_wrappers/interface/data_log_c.h | 89 + .../system_wrappers/interface/data_log_impl.h | 157 + .../system_wrappers/interface/event_wrapper.h | 68 + .../system_wrappers/interface/file_wrapper.h | 79 + .../fix_interlocked_exchange_pointer_win.h | 35 + .../system_wrappers/interface/list_wrapper.h | 107 + .../system_wrappers/interface/map_wrapper.h | 75 + .../src/system_wrappers/interface/ref_count.h | 82 + .../interface/rw_lock_wrapper.h | 76 + .../system_wrappers/interface/scoped_ptr.h | 258 + .../system_wrappers/interface/scoped_refptr.h | 137 + .../src/system_wrappers/interface/sort.h | 64 + .../interface/static_instance.h | 153 + .../interface/thread_wrapper.h | 95 + .../src/system_wrappers/interface/tick_util.h | 344 + .../src/system_wrappers/interface/trace.h | 75 + .../src/system_wrappers/source/Android.mk | 60 + .../system_wrappers/source/aligned_malloc.cc | 121 + .../src/system_wrappers/source/atomic32.cc | 84 + .../system_wrappers/source/atomic32_linux.h | 119 + .../src/system_wrappers/source/atomic32_mac.h | 117 + .../src/system_wrappers/source/atomic32_win.h | 113 + .../source/condition_variable.cc | 37 + .../source/condition_variable_posix.cc | 151 + .../source/condition_variable_posix.h | 39 + .../source/condition_variable_win.cc | 224 + .../source/condition_variable_win.h | 67 + .../trunk/src/system_wrappers/source/cpu.cc | 38 + .../system_wrappers/source/cpu_features.cc | 74 + .../system_wrappers/source/cpu_features_arm.c | 333 + .../src/system_wrappers/source/cpu_info.cc | 72 + .../src/system_wrappers/source/cpu_linux.cc | 202 + .../src/system_wrappers/source/cpu_linux.h | 51 + .../src/system_wrappers/source/cpu_mac.cc | 143 + .../src/system_wrappers/source/cpu_mac.h | 48 + .../source/cpu_measurement_harness.cc | 127 + .../source/cpu_measurement_harness.h | 66 + .../src/system_wrappers/source/cpu_no_op.cc | 22 + .../src/system_wrappers/source/cpu_win.cc | 530 + .../src/system_wrappers/source/cpu_win.h | 103 + .../source/cpu_wrapper_unittest.cc | 77 + .../source/critical_section.cc | 27 + .../source/critical_section_posix.cc | 46 + .../source/critical_section_posix.h | 35 + .../source/critical_section_win.cc | 35 + .../source/critical_section_win.h | 36 + .../src/system_wrappers/source/data_log.cc | 455 + .../src/system_wrappers/source/data_log_c.cc | 145 + .../source/data_log_c_helpers_unittest.c | 124 + .../source/data_log_c_helpers_unittest.h | 58 + .../source/data_log_helpers_unittest.cc | 64 + .../system_wrappers/source/data_log_no_op.cc | 88 + .../source/data_log_unittest.cc | 310 + .../source/data_log_unittest_disabled.cc | 55 + .../trunk/src/system_wrappers/source/event.cc | 71 + .../src/system_wrappers/source/event_posix.cc | 324 + .../src/system_wrappers/source/event_posix.h | 66 + .../src/system_wrappers/source/event_win.cc | 84 + .../src/system_wrappers/source/event_win.h | 40 + .../src/system_wrappers/source/file_impl.cc | 265 + .../src/system_wrappers/source/file_impl.h | 57 + .../src/system_wrappers/source/list_no_stl.cc | 289 + .../src/system_wrappers/source/list_no_stl.h | 79 + .../src/system_wrappers/source/list_stl.cc | 244 + .../src/system_wrappers/source/list_stl.h | 66 + .../system_wrappers/source/list_unittest.cc | 479 + .../trunk/src/system_wrappers/source/map.cc | 166 + .../src/system_wrappers/source/map_no_stl.cc | 217 + .../src/system_wrappers/source/map_no_stl.h | 70 + .../system_wrappers/source/map_unittest.cc | 231 + .../src/system_wrappers/source/rw_lock.cc | 41 + .../system_wrappers/source/rw_lock_generic.cc | 106 + .../system_wrappers/source/rw_lock_generic.h | 46 + .../system_wrappers/source/rw_lock_posix.cc | 47 + .../system_wrappers/source/rw_lock_posix.h | 39 + .../src/system_wrappers/source/rw_lock_win.cc | 186 + .../src/system_wrappers/source/rw_lock_win.h | 71 + .../source/set_thread_name_win.h | 43 + .../trunk/src/system_wrappers/source/sort.cc | 549 + .../source/spreadsortlib/constants.hpp | 42 + .../source/spreadsortlib/spreadsort.hpp | 1688 + .../source/system_wrappers.Makefile | 6 + .../source/system_wrappers.gyp | 191 + .../source/system_wrappers.target.mk | 195 + .../system_wrappers_unittests.target.mk | 192 + .../src/system_wrappers/source/thread.cc | 30 + .../system_wrappers/source/thread_posix.cc | 340 + .../src/system_wrappers/source/thread_posix.h | 68 + .../src/system_wrappers/source/thread_win.cc | 238 + .../src/system_wrappers/source/thread_win.h | 66 + .../src/system_wrappers/source/trace_impl.cc | 835 + .../src/system_wrappers/source/trace_impl.h | 132 + .../source/trace_impl_no_op.cc | 56 + .../src/system_wrappers/source/trace_posix.cc | 118 + .../src/system_wrappers/source/trace_posix.h | 36 + .../system_wrappers/source/trace_unittest.cc | 57 + .../src/system_wrappers/source/trace_win.cc | 131 + .../src/system_wrappers/source/trace_win.h | 36 + .../system_wrappers/test/TestSort/TestSort.cc | 265 + .../src/system_wrappers/test/list/list.cc | 174 + .../trunk/src/system_wrappers/test/map/map.cc | 112 + media/webrtc/trunk/src/typedefs.h | 84 + .../webrtc/trunk/src/video_engine/Android.mk | 95 + media/webrtc/trunk/src/video_engine/OWNERS | 4 + .../trunk/src/video_engine/include/vie_base.h | 149 + .../src/video_engine/include/vie_capture.h | 255 + .../src/video_engine/include/vie_codec.h | 176 + .../src/video_engine/include/vie_encryption.h | 51 + .../src/video_engine/include/vie_errors.h | 121 + .../video_engine/include/vie_external_codec.h | 51 + .../trunk/src/video_engine/include/vie_file.h | 221 + .../video_engine/include/vie_image_process.h | 101 + .../src/video_engine/include/vie_network.h | 215 + .../src/video_engine/include/vie_render.h | 110 + .../src/video_engine/include/vie_rtp_rtcp.h | 293 + .../main/test/SimpleCocoaGUI/GUI_Defines.h | 36 + .../SimpleCocoaGUI/SimpleCocoaGUI-Info.plist | 32 + .../SimpleCocoaGUIAppDelegate.h | 77 + .../SimpleCocoaGUIAppDelegate.mm | 1075 + .../SimpleCocoaGUI/SimpleCocoaGUI_Prefix.pch | 7 + .../main/test/SimpleCocoaGUI/main.m | 12 + .../main/test/WindowsTest/Capture.rc | 255 + .../test/WindowsTest/CaptureDevicePool.cc | 93 + .../main/test/WindowsTest/CaptureDevicePool.h | 49 + .../main/test/WindowsTest/ChannelDlg.cc | 1271 + .../main/test/WindowsTest/ChannelDlg.h | 273 + .../main/test/WindowsTest/ChannelPool.cc | 40 + .../main/test/WindowsTest/ChannelPool.h | 36 + .../main/test/WindowsTest/StdAfx.h | 37 + .../main/test/WindowsTest/VideoSize.h | 53 + .../main/test/WindowsTest/WindowsTest.cc | 114 + .../main/test/WindowsTest/WindowsTest.h | 61 + .../test/WindowsTest/WindowsTestMainDlg.cc | 142 + .../test/WindowsTest/WindowsTestMainDlg.h | 72 + .../test/WindowsTest/WindowsTestResouce.rc | 101 + .../test/WindowsTest/WindowsTestResource.h | 28 + .../test/WindowsTest/captureDeviceImage.jpg | Bin 0 -> 10742 bytes .../test/WindowsTest/renderStartImage.jpg | Bin 0 -> 10274 bytes .../test/WindowsTest/renderTimeoutImage.jpg | Bin 0 -> 10554 bytes .../main/test/WindowsTest/res/Capture.rc2 | 13 + .../main/test/WindowsTest/resource.h | 58 + .../test/WindowsTest/tbExternalTransport.cc | 313 + .../test/WindowsTest/tbExternalTransport.h | 106 + .../main/test/WindowsTest/videosize.cc | 140 + .../main/test/WindowsTest/windowstest.gypi | 84 + .../main/test/android_test/.classpath | 9 + .../main/test/android_test/.project | 33 + .../main/test/android_test/Android.mk | 33 + .../test/android_test/AndroidManifest.xml | 28 + .../main/test/android_test/build.xml | 85 + .../main/test/android_test/default.properties | 13 + .../main/test/android_test/jni/Android.mk | 81 + .../main/test/android_test/jni/Application.mk | 11 + ...brtc_videoengineapp_vie_android_java_api.h | 494 + .../android_test/jni/vie_android_java_api.cc | 1563 + .../main/test/android_test/project.properties | 13 + .../test/android_test/res/drawable/logo.png | Bin 0 -> 2574 bytes .../test/android_test/res/layout/aconfig.xml | 81 + .../test/android_test/res/layout/both.xml | 43 + .../test/android_test/res/layout/main.xml | 54 + .../test/android_test/res/layout/send.xml | 17 + .../test/android_test/res/layout/stats.xml | 59 + .../test/android_test/res/layout/tabhost.xml | 25 + .../test/android_test/res/layout/vconfig.xml | 67 + .../test/android_test/res/values/arrays.xml | 22 + .../test/android_test/res/values/strings.xml | 36 + .../videoengineapp/IViEAndroidCallback.java | 17 + .../webrtc/videoengineapp/ViEAndroidDemo.java | 803 + .../videoengineapp/ViEAndroidJavaAPI.java | 138 + .../test/auto_test/android/.classpath | 9 + .../test/auto_test/android/.project | 33 + .../test/auto_test/android/Android.mk | 39 + .../auto_test/android/AndroidManifest.xml | 26 + .../test/auto_test/android/default.properties | 11 + .../android/gen/org/webrtc/vieautotest/R.java | 37 + .../test/auto_test/android/jni/Android.mk | 77 + .../jni/org_webrtc_vieautotest_vie_autotest.h | 34 + .../auto_test/android/jni/vie_autotest_jni.cc | 137 + .../auto_test/android/res/drawable/logo.png | Bin 0 -> 409 bytes .../auto_test/android/res/layout/main.xml | 64 + .../auto_test/android/res/values/strings.xml | 31 + .../org/webrtc/vieautotest/ViEAutotest.java | 162 + .../auto_test/automated/legacy_fixture.cc | 28 + .../test/auto_test/automated/legacy_fixture.h | 29 + .../automated/two_windows_fixture.cc | 33 + .../auto_test/automated/two_windows_fixture.h | 35 + .../automated/vie_api_integration_test.cc | 60 + .../vie_extended_integration_test.cc | 60 + .../auto_test/automated/vie_rtp_fuzz_test.cc | 150 + .../vie_standard_integration_test.cc | 71 + .../automated/vie_video_verification_test.cc | 253 + .../test/auto_test/interface/vie_autotest.h | 137 + .../interface/vie_autotest_android.h | 26 + .../interface/vie_autotest_defines.h | 209 + .../auto_test/interface/vie_autotest_linux.h | 44 + .../interface/vie_autotest_mac_carbon.h | 63 + .../interface/vie_autotest_mac_cocoa.h | 58 + .../auto_test/interface/vie_autotest_main.h | 49 + .../vie_autotest_window_manager_interface.h | 33 + .../interface/vie_autotest_windows.h | 64 + .../vie_file_based_comparison_tests.h | 68 + .../auto_test/interface/vie_window_creator.h | 32 + .../interface/vie_window_manager_factory.h | 25 + .../auto_test/media/captureDeviceImage.bmp | Bin 0 -> 304182 bytes .../auto_test/media/captureDeviceImage.jpg | Bin 0 -> 10742 bytes .../test/auto_test/media/renderStartImage.bmp | Bin 0 -> 304182 bytes .../test/auto_test/media/renderStartImage.jpg | Bin 0 -> 10274 bytes .../auto_test/media/renderTimeoutImage.bmp | Bin 0 -> 304182 bytes .../auto_test/media/renderTimeoutImage.jpg | Bin 0 -> 10554 bytes .../auto_test/primitives/base_primitives.cc | 67 + .../auto_test/primitives/base_primitives.h | 32 + .../auto_test/primitives/codec_primitives.cc | 184 + .../auto_test/primitives/codec_primitives.h | 126 + .../primitives/framedrop_primitives.cc | 513 + .../primitives/framedrop_primitives.h | 229 + .../framedrop_primitives_unittest.cc | 96 + .../primitives/general_primitives.cc | 130 + .../auto_test/primitives/general_primitives.h | 83 + .../test/auto_test/source/Android.mk | 65 + .../test/auto_test/source/vie_autotest.cc | 155 + .../auto_test/source/vie_autotest_android.cc | 199 + .../auto_test/source/vie_autotest_base.cc | 231 + .../auto_test/source/vie_autotest_capture.cc | 559 + .../source/vie_autotest_carbon_mac.cc | 355 + .../source/vie_autotest_cocoa_mac.mm | 132 + .../auto_test/source/vie_autotest_codec.cc | 771 + .../source/vie_autotest_custom_call.cc | 2057 + .../source/vie_autotest_encryption.cc | 567 + .../auto_test/source/vie_autotest_file.cc | 493 + .../source/vie_autotest_image_process.cc | 242 + .../auto_test/source/vie_autotest_linux.cc | 142 + .../auto_test/source/vie_autotest_loopback.cc | 663 + .../auto_test/source/vie_autotest_main.cc | 188 + .../auto_test/source/vie_autotest_network.cc | 568 + .../auto_test/source/vie_autotest_render.cc | 296 + .../auto_test/source/vie_autotest_rtp_rtcp.cc | 706 + .../source/vie_autotest_simulcast.cc | 531 + .../test/auto_test/source/vie_autotest_win.cc | 212 + .../source/vie_file_based_comparison_tests.cc | 159 + .../auto_test/source/vie_window_creator.cc | 55 + .../vie_window_manager_factory_linux.cc | 18 + .../source/vie_window_manager_factory_mac.mm | 23 + .../source/vie_window_manager_factory_win.cc | 17 + .../test/auto_test/vie_auto_test.gypi | 138 + .../libvietest/helpers/bit_flip_encryption.cc | 40 + .../libvietest/helpers/random_encryption.cc | 46 + .../libvietest/helpers/vie_fake_camera.cc | 87 + .../helpers/vie_file_capture_device.cc | 105 + .../helpers/vie_to_file_renderer.cc | 94 + .../libvietest/include/bit_flip_encryption.h | 61 + .../libvietest/include/random_encryption.h | 54 + .../test/libvietest/include/tb_I420_codec.h | 131 + .../libvietest/include/tb_capture_device.h | 37 + .../include/tb_external_transport.h | 159 + .../test/libvietest/include/tb_interfaces.h | 52 + .../libvietest/include/tb_video_channel.h | 42 + .../test/libvietest/include/vie_fake_camera.h | 50 + .../include/vie_file_capture_device.h | 58 + .../libvietest/include/vie_to_file_renderer.h | 59 + .../test/libvietest/libvietest.gypi | 57 + .../test/libvietest/testbed/tb_I420_codec.cc | 319 + .../libvietest/testbed/tb_capture_device.cc | 84 + .../testbed/tb_external_transport.cc | 445 + .../test/libvietest/testbed/tb_interfaces.cc | 67 + .../libvietest/testbed/tb_video_channel.cc | 92 + .../src/video_engine/video_engine.Makefile | 6 + .../trunk/src/video_engine/video_engine.gyp | 26 + .../src/video_engine/video_engine_core.gypi | 162 + .../video_engine/video_engine_core.target.mk | 231 + .../video_engine_core_unittests.target.mk | 187 + .../src/video_engine/vie_auto_test.target.mk | 293 + .../trunk/src/video_engine/vie_base_impl.cc | 491 + .../trunk/src/video_engine/vie_base_impl.h | 69 + .../src/video_engine/vie_capture_impl.cc | 596 + .../trunk/src/video_engine/vie_capture_impl.h | 81 + .../trunk/src/video_engine/vie_capturer.cc | 898 + .../trunk/src/video_engine/vie_capturer.h | 222 + .../trunk/src/video_engine/vie_channel.cc | 2453 + .../trunk/src/video_engine/vie_channel.h | 402 + .../src/video_engine/vie_channel_group.cc | 79 + .../src/video_engine/vie_channel_group.h | 52 + .../src/video_engine/vie_channel_manager.cc | 464 + .../src/video_engine/vie_channel_manager.h | 147 + .../trunk/src/video_engine/vie_codec_impl.cc | 728 + .../trunk/src/video_engine/vie_codec_impl.h | 81 + .../trunk/src/video_engine/vie_defines.h | 261 + .../trunk/src/video_engine/vie_encoder.cc | 907 + .../trunk/src/video_engine/vie_encoder.h | 184 + .../src/video_engine/vie_encryption_impl.cc | 111 + .../src/video_engine/vie_encryption_impl.h | 43 + .../video_engine/vie_external_codec_impl.cc | 184 + .../video_engine/vie_external_codec_impl.h | 50 + .../trunk/src/video_engine/vie_file_image.cc | 125 + .../trunk/src/video_engine/vie_file_image.h | 32 + .../trunk/src/video_engine/vie_file_impl.cc | 1015 + .../trunk/src/video_engine/vie_file_impl.h | 131 + .../trunk/src/video_engine/vie_file_player.cc | 508 + .../trunk/src/video_engine/vie_file_player.h | 141 + .../src/video_engine/vie_file_recorder.cc | 239 + .../src/video_engine/vie_file_recorder.h | 65 + .../video_engine/vie_frame_provider_base.cc | 197 + .../video_engine/vie_frame_provider_base.h | 102 + .../video_engine/vie_image_process_impl.cc | 280 + .../src/video_engine/vie_image_process_impl.h | 52 + .../webrtc/trunk/src/video_engine/vie_impl.cc | 232 + .../webrtc/trunk/src/video_engine/vie_impl.h | 115 + .../src/video_engine/vie_input_manager.cc | 600 + .../src/video_engine/vie_input_manager.h | 143 + .../src/video_engine/vie_manager_base.cc | 72 + .../trunk/src/video_engine/vie_manager_base.h | 74 + .../src/video_engine/vie_network_impl.cc | 798 + .../trunk/src/video_engine/vie_network_impl.h | 114 + .../video_engine/vie_performance_monitor.cc | 142 + .../video_engine/vie_performance_monitor.h | 56 + .../trunk/src/video_engine/vie_receiver.cc | 267 + .../trunk/src/video_engine/vie_receiver.h | 87 + .../trunk/src/video_engine/vie_ref_count.cc | 46 + .../trunk/src/video_engine/vie_ref_count.h | 40 + .../webrtc/trunk/src/video_engine/vie_remb.cc | 241 + .../webrtc/trunk/src/video_engine/vie_remb.h | 104 + .../src/video_engine/vie_remb_unittest.cc | 350 + .../trunk/src/video_engine/vie_render_impl.cc | 398 + .../trunk/src/video_engine/vie_render_impl.h | 57 + .../src/video_engine/vie_render_manager.cc | 230 + .../src/video_engine/vie_render_manager.h | 72 + .../trunk/src/video_engine/vie_renderer.cc | 235 + .../trunk/src/video_engine/vie_renderer.h | 117 + .../src/video_engine/vie_rtp_rtcp_impl.cc | 898 + .../src/video_engine/vie_rtp_rtcp_impl.h | 117 + .../trunk/src/video_engine/vie_sender.cc | 205 + .../trunk/src/video_engine/vie_sender.h | 65 + .../trunk/src/video_engine/vie_shared_data.cc | 80 + .../trunk/src/video_engine/vie_shared_data.h | 63 + .../trunk/src/video_engine/vie_sync_module.cc | 297 + .../trunk/src/video_engine/vie_sync_module.h | 76 + media/webrtc/trunk/src/voice_engine/OWNERS | 4 + .../mock/mock_voe_connection_observer.h | 26 + .../main/interface/mock/mock_voe_observer.h | 29 + .../main/interface/voe_audio_processing.h | 211 + .../voice_engine/main/interface/voe_base.h | 213 + .../main/interface/voe_call_report.h | 87 + .../voice_engine/main/interface/voe_codec.h | 134 + .../voice_engine/main/interface/voe_dtmf.h | 148 + .../main/interface/voe_encryption.h | 81 + .../voice_engine/main/interface/voe_errors.h | 162 + .../main/interface/voe_external_media.h | 114 + .../voice_engine/main/interface/voe_file.h | 184 + .../main/interface/voe_hardware.h | 142 + .../main/interface/voe_neteq_stats.h | 45 + .../voice_engine/main/interface/voe_network.h | 177 + .../main/interface/voe_rtp_rtcp.h | 221 + .../main/interface/voe_video_sync.h | 85 + .../main/interface/voe_volume_control.h | 127 + .../src/voice_engine/main/source/Android.mk | 88 + .../main/source/audio_frame_operations.cc | 129 + .../main/source/audio_frame_operations.h | 43 + .../src/voice_engine/main/source/channel.cc | 6604 +++ .../src/voice_engine/main/source/channel.h | 654 + .../main/source/channel_manager.cc | 161 + .../main/source/channel_manager.h | 89 + .../main/source/channel_manager_base.cc | 227 + .../main/source/channel_manager_base.h | 90 + .../main/source/channel_unittest.cc | 15 + .../voice_engine/main/source/dtmf_inband.cc | 389 + .../voice_engine/main/source/dtmf_inband.h | 93 + .../main/source/dtmf_inband_queue.cc | 88 + .../main/source/dtmf_inband_queue.h | 52 + .../main/source/level_indicator.cc | 99 + .../main/source/level_indicator.h | 49 + .../main/source/monitor_module.cc | 91 + .../voice_engine/main/source/monitor_module.h | 63 + .../voice_engine/main/source/output_mixer.cc | 753 + .../voice_engine/main/source/output_mixer.h | 162 + .../src/voice_engine/main/source/ref_count.cc | 60 + .../src/voice_engine/main/source/ref_count.h | 36 + .../voice_engine/main/source/shared_data.cc | 125 + .../voice_engine/main/source/shared_data.h | 90 + .../voice_engine/main/source/statistics.cc | 99 + .../src/voice_engine/main/source/statistics.h | 54 + .../main/source/transmit_mixer.cc | 1470 + .../voice_engine/main/source/transmit_mixer.h | 239 + .../src/voice_engine/main/source/utility.cc | 125 + .../src/voice_engine/main/source/utility.h | 58 + .../main/source/voe_audio_processing_impl.cc | 1096 + .../main/source/voe_audio_processing_impl.h | 110 + .../voice_engine/main/source/voe_base_impl.cc | 1643 + .../voice_engine/main/source/voe_base_impl.h | 152 + .../main/source/voe_call_report_impl.cc | 431 + .../main/source/voe_call_report_impl.h | 61 + .../main/source/voe_codec_impl.cc | 730 + .../voice_engine/main/source/voe_codec_impl.h | 93 + .../voice_engine/main/source/voe_dtmf_impl.cc | 463 + .../voice_engine/main/source/voe_dtmf_impl.h | 83 + .../main/source/voe_encryption_impl.cc | 265 + .../main/source/voe_encryption_impl.h | 72 + .../main/source/voe_external_media_impl.cc | 368 + .../main/source/voe_external_media_impl.h | 62 + .../voice_engine/main/source/voe_file_impl.cc | 1423 + .../voice_engine/main/source/voe_file_impl.h | 145 + .../main/source/voe_hardware_impl.cc | 843 + .../main/source/voe_hardware_impl.h | 83 + .../main/source/voe_neteq_stats_impl.cc | 99 + .../main/source/voe_neteq_stats_impl.h | 40 + .../main/source/voe_network_impl.cc | 891 + .../main/source/voe_network_impl.h | 118 + .../main/source/voe_rtp_rtcp_impl.cc | 650 + .../main/source/voe_rtp_rtcp_impl.h | 125 + .../main/source/voe_video_sync_impl.cc | 242 + .../main/source/voe_video_sync_impl.h | 51 + .../main/source/voe_volume_control_impl.cc | 660 + .../main/source/voe_volume_control_impl.h | 76 + .../main/source/voice_engine_core.gypi | 158 + .../main/source/voice_engine_defines.h | 588 + .../main/source/voice_engine_impl.cc | 317 + .../main/source/voice_engine_impl.h | 153 + .../main/test/android/android_test/.classpath | 7 + .../main/test/android/android_test/.project | 33 + .../main/test/android/android_test/Android.mk | 25 + .../android/android_test/AndroidManifest.xml | 32 + .../android/android_test/default.properties | 11 + .../gen/org/webrtc/voiceengine/test/R.java | 30 + .../test/android/android_test/jni/Android.mk | 152 + .../android/android_test/jni/Application.mk | 11 + .../android/android_test/jni/android_test.cc | 1554 + .../org_webrtc_voiceengine_test_AndroidTest.h | 253 + .../android_test/res/drawable/icon.png | Bin 0 -> 2574 bytes .../android/android_test/res/layout/main.xml | 43 + .../android_test/res/values/strings.xml | 13 + .../webrtc/voiceengine/test/AndroidTest.java | 1190 + .../main/test/auto_test/Android.mk | 56 + .../main/test/auto_test/automated_mode.cc | 17 + .../main/test/auto_test/automated_mode.h | 16 + .../test/auto_test/fakes/fake_media_process.h | 44 + .../fixtures/after_initialization_fixture.cc | 36 + .../fixtures/after_initialization_fixture.h | 32 + .../fixtures/after_streaming_fixture.cc | 70 + .../fixtures/after_streaming_fixture.h | 43 + .../fixtures/before_initialization_fixture.cc | 58 + .../fixtures/before_initialization_fixture.h | 79 + .../main/test/auto_test/resource_manager.cc | 29 + .../main/test/auto_test/resource_manager.h | 30 + .../standard/audio_processing_test.cc | 371 + .../auto_test/standard/call_report_test.cc | 88 + .../standard/codec_before_streaming_test.cc | 82 + .../test/auto_test/standard/codec_test.cc | 232 + .../main/test/auto_test/standard/dtmf_test.cc | 101 + .../auto_test/standard/encryption_test.cc | 74 + .../auto_test/standard/external_media_test.cc | 84 + .../main/test/auto_test/standard/file_test.cc | 82 + .../hardware_before_initializing_test.cc | 27 + .../hardware_before_streaming_test.cc | 166 + .../test/auto_test/standard/hardware_test.cc | 168 + .../auto_test/standard/manual_hold_test.cc | 43 + .../auto_test/standard/neteq_stats_test.cc | 52 + .../test/auto_test/standard/neteq_test.cc | 82 + .../standard/network_before_streaming_test.cc | 55 + .../test/auto_test/standard/network_test.cc | 199 + .../rtp_rtcp_before_streaming_test.cc | 50 + .../test/auto_test/standard/rtp_rtcp_test.cc | 196 + .../auto_test/standard/video_sync_test.cc | 126 + .../auto_test/standard/voe_base_misc_test.cc | 26 + .../test/auto_test/standard/volume_test.cc | 245 + .../main/test/auto_test/voe_cpu_test.cc | 99 + .../main/test/auto_test/voe_cpu_test.h | 31 + .../main/test/auto_test/voe_extended_test.cc | 8377 ++++ .../main/test/auto_test/voe_extended_test.h | 463 + .../main/test/auto_test/voe_standard_test.cc | 1497 + .../main/test/auto_test/voe_standard_test.h | 345 + .../main/test/auto_test/voe_stress_test.cc | 415 + .../main/test/auto_test/voe_stress_test.h | 50 + .../main/test/auto_test/voe_test_defines.h | 189 + .../main/test/auto_test/voe_test_interface.h | 89 + .../main/test/auto_test/voe_unit_test.cc | 1084 + .../main/test/auto_test/voe_unit_test.h | 69 + .../main/test/cmd_test/Android.mk | 60 + .../main/test/cmd_test/voe_cmd_test.cc | 918 + .../main/test/voice_engine_tests.gypi | 152 + .../main/test/win_test/Resource.h | 241 + .../main/test/win_test/WinTest.aps | Bin 0 -> 84160 bytes .../main/test/win_test/WinTest.cc | 75 + .../voice_engine/main/test/win_test/WinTest.h | 38 + .../main/test/win_test/WinTest.rc | 394 + .../main/test/win_test/WinTestDlg.cc | 3558 ++ .../main/test/win_test/WinTestDlg.h | 278 + .../main/test/win_test/res/WinTest.ico | Bin 0 -> 21630 bytes .../main/test/win_test/res/WinTest.rc2 | 13 + .../voice_engine/main/test/win_test/stdafx.cc | 17 + .../voice_engine/main/test/win_test/stdafx.h | 82 + .../src/voice_engine/voe_auto_test.target.mk | 217 + .../src/voice_engine/voe_cmd_test.target.mk | 183 + .../src/voice_engine/voice_engine.Makefile | 6 + .../trunk/src/voice_engine/voice_engine.gyp | 23 + .../voice_engine/voice_engine_core.target.mk | 226 + .../voice_engine_unittests.target.mk | 207 + media/webrtc/trunk/test/OWNERS | 4 + .../test/linux/v4l2_file_player/Makefile | 2 + .../trunk/test/linux/v4l2_file_player/README | 10 + .../linux/v4l2_file_player/v4l2_file_player.c | 127 + media/webrtc/trunk/test/metrics.gyp | 46 + media/webrtc/trunk/test/metrics.target.mk | 166 + .../trunk/test/metrics_unittests.target.mk | 176 + media/webrtc/trunk/test/run_all_unittests.cc | 16 + media/webrtc/trunk/test/sanity_check/README | 25 + .../trunk/test/sanity_check/lighttpd.conf | 5 + .../trunk/test/sanity_check/run_sanity_check | 107 + .../trunk/test/sanity_check/www/html/README | 60 + .../sanity_check/www/html/webrtc_test.html | 650 + media/webrtc/trunk/test/test.gyp | 79 + media/webrtc/trunk/test/test_suite.cc | 39 + media/webrtc/trunk/test/test_suite.h | 42 + .../webrtc/trunk/test/test_support.target.mk | 178 + .../trunk/test/test_support_main.target.mk | 166 + .../test/test_support_unittests.target.mk | 179 + .../trunk/test/testsupport/fileutils.cc | 179 + .../webrtc/trunk/test/testsupport/fileutils.h | 144 + .../test/testsupport/fileutils_unittest.cc | 192 + .../trunk/test/testsupport/frame_reader.cc | 81 + .../trunk/test/testsupport/frame_reader.h | 73 + .../test/testsupport/frame_reader_unittest.cc | 72 + .../trunk/test/testsupport/frame_writer.cc | 68 + .../trunk/test/testsupport/frame_writer.h | 70 + .../test/testsupport/frame_writer_unittest.cc | 64 + .../trunk/test/testsupport/gtest_prod_util.h | 36 + .../test/testsupport/metrics/video_metrics.cc | 185 + .../test/testsupport/metrics/video_metrics.h | 112 + .../metrics/video_metrics_unittest.cc | 139 + .../test/testsupport/mock/mock_frame_reader.h | 33 + .../test/testsupport/mock/mock_frame_writer.h | 32 + .../trunk/test/testsupport/packet_reader.cc | 56 + .../trunk/test/testsupport/packet_reader.h | 53 + .../testsupport/packet_reader_unittest.cc | 123 + .../trunk/test/testsupport/unittest_utils.h | 56 + .../trunk/testing/generate_gmock_mutant.py | 455 + media/webrtc/trunk/testing/gmock.gyp | 62 + media/webrtc/trunk/testing/gmock.target.mk | 160 + media/webrtc/trunk/testing/gmock/CHANGES | 92 + .../webrtc/trunk/testing/gmock/CMakeLists.txt | 151 + media/webrtc/trunk/testing/gmock/CONTRIBUTORS | 40 + media/webrtc/trunk/testing/gmock/COPYING | 28 + media/webrtc/trunk/testing/gmock/Makefile.am | 209 + media/webrtc/trunk/testing/gmock/README | 354 + .../trunk/testing/gmock/build-aux/.keep | 0 media/webrtc/trunk/testing/gmock/configure.ac | 146 + .../gmock/include/gmock/gmock-actions.h | 1076 + .../gmock/include/gmock/gmock-cardinalities.h | 146 + .../include/gmock/gmock-generated-actions.h | 2419 + .../gmock/gmock-generated-actions.h.pump | 825 + .../gmock/gmock-generated-function-mockers.h | 929 + .../gmock-generated-function-mockers.h.pump | 258 + .../include/gmock/gmock-generated-matchers.h | 2054 + .../gmock/gmock-generated-matchers.h.pump | 651 + .../gmock/gmock-generated-nice-strict.h | 274 + .../gmock/gmock-generated-nice-strict.h.pump | 160 + .../gmock/include/gmock/gmock-matchers.h | 3066 ++ .../gmock/include/gmock/gmock-more-actions.h | 233 + .../gmock/include/gmock/gmock-spec-builders.h | 1749 + .../trunk/testing/gmock/include/gmock/gmock.h | 93 + .../internal/gmock-generated-internal-utils.h | 277 + .../gmock-generated-internal-utils.h.pump | 136 + .../gmock/internal/gmock-internal-utils.h | 463 + .../gmock/include/gmock/internal/gmock-port.h | 78 + .../webrtc/trunk/testing/gmock/make/Makefile | 98 + .../trunk/testing/gmock/msvc/2005/gmock.sln | 32 + .../testing/gmock/msvc/2005/gmock.vcproj | 191 + .../gmock/msvc/2005/gmock_config.vsprops | 15 + .../testing/gmock/msvc/2005/gmock_main.vcproj | 187 + .../testing/gmock/msvc/2005/gmock_test.vcproj | 201 + .../trunk/testing/gmock/msvc/2010/gmock.sln | 32 + .../testing/gmock/msvc/2010/gmock.vcxproj | 82 + .../gmock/msvc/2010/gmock_config.props | 19 + .../gmock/msvc/2010/gmock_main.vcxproj | 88 + .../gmock/msvc/2010/gmock_test.vcxproj | 101 + .../testing/gmock/scripts/fuse_gmock_files.py | 240 + .../testing/gmock/scripts/generator/COPYING | 203 + .../testing/gmock/scripts/generator/README | 35 + .../gmock/scripts/generator/README.cppclean | 115 + .../gmock/scripts/generator/cpp/__init__.py | 0 .../gmock/scripts/generator/cpp/ast.py | 1723 + .../scripts/generator/cpp/gmock_class.py | 192 + .../scripts/generator/cpp/gmock_class_test.py | 214 + .../gmock/scripts/generator/cpp/keywords.py | 59 + .../gmock/scripts/generator/cpp/tokenize.py | 287 + .../gmock/scripts/generator/cpp/utils.py | 41 + .../gmock/scripts/generator/gmock_gen.py | 31 + .../testing/gmock/scripts/gmock-config.in | 303 + .../testing/gmock/scripts/gmock_doctor.py | 617 + .../trunk/testing/gmock/scripts/upload.py | 1387 + .../testing/gmock/scripts/upload_gmock.py | 78 + .../trunk/testing/gmock/src/gmock-all.cc | 47 + .../testing/gmock/src/gmock-cardinalities.cc | 155 + .../testing/gmock/src/gmock-internal-utils.cc | 173 + .../trunk/testing/gmock/src/gmock-matchers.cc | 101 + .../testing/gmock/src/gmock-spec-builders.cc | 797 + media/webrtc/trunk/testing/gmock/src/gmock.cc | 182 + .../trunk/testing/gmock/src/gmock_main.cc | 54 + .../testing/gmock/test/gmock-actions_test.cc | 1305 + .../gmock/test/gmock-cardinalities_test.cc | 428 + .../test/gmock-generated-actions_test.cc | 1212 + .../gmock-generated-function-mockers_test.cc | 540 + .../gmock-generated-internal-utils_test.cc | 127 + .../test/gmock-generated-matchers_test.cc | 1127 + .../gmock/test/gmock-internal-utils_test.cc | 655 + .../testing/gmock/test/gmock-matchers_test.cc | 4040 ++ .../gmock/test/gmock-more-actions_test.cc | 704 + .../gmock/test/gmock-nice-strict_test.cc | 284 + .../testing/gmock/test/gmock-port_test.cc | 43 + .../gmock/test/gmock-spec-builders_test.cc | 2484 + .../testing/gmock/test/gmock_all_test.cc | 48 + .../testing/gmock/test/gmock_leak_test.py | 90 + .../testing/gmock/test/gmock_leak_test_.cc | 100 + .../testing/gmock/test/gmock_link2_test.cc | 40 + .../testing/gmock/test/gmock_link_test.cc | 40 + .../testing/gmock/test/gmock_link_test.h | 669 + .../testing/gmock/test/gmock_output_test.py | 180 + .../testing/gmock/test/gmock_output_test_.cc | 290 + .../gmock/test/gmock_output_test_golden.txt | 310 + .../trunk/testing/gmock/test/gmock_test.cc | 255 + .../testing/gmock/test/gmock_test_utils.py | 111 + .../webrtc/trunk/testing/gmock_main.target.mk | 154 + media/webrtc/trunk/testing/gmock_mutant.h | 4995 ++ media/webrtc/trunk/testing/gtest.gyp | 144 + media/webrtc/trunk/testing/gtest.target.mk | 162 + media/webrtc/trunk/testing/gtest/CHANGES | 130 + .../webrtc/trunk/testing/gtest/CMakeLists.txt | 240 + media/webrtc/trunk/testing/gtest/CONTRIBUTORS | 37 + media/webrtc/trunk/testing/gtest/COPYING | 28 + media/webrtc/trunk/testing/gtest/Makefile.am | 302 + media/webrtc/trunk/testing/gtest/README | 424 + .../trunk/testing/gtest/build-aux/.keep | 0 .../testing/gtest/cmake/internal_utils.cmake | 216 + .../trunk/testing/gtest/codegear/gtest.cbproj | 138 + .../testing/gtest/codegear/gtest.groupproj | 54 + .../trunk/testing/gtest/codegear/gtest_all.cc | 38 + .../testing/gtest/codegear/gtest_link.cc | 40 + .../testing/gtest/codegear/gtest_main.cbproj | 82 + .../gtest/codegear/gtest_unittest.cbproj | 88 + media/webrtc/trunk/testing/gtest/configure.ac | 68 + .../gtest/include/gtest/gtest-death-test.h | 283 + .../gtest/include/gtest/gtest-message.h | 230 + .../gtest/include/gtest/gtest-param-test.h | 1421 + .../include/gtest/gtest-param-test.h.pump | 487 + .../gtest/include/gtest/gtest-printers.h | 796 + .../testing/gtest/include/gtest/gtest-spi.h | 232 + .../gtest/include/gtest/gtest-test-part.h | 176 + .../gtest/include/gtest/gtest-typed-test.h | 259 + .../trunk/testing/gtest/include/gtest/gtest.h | 2155 + .../gtest/include/gtest/gtest_pred_impl.h | 358 + .../testing/gtest/include/gtest/gtest_prod.h | 58 + .../internal/gtest-death-test-internal.h | 308 + .../include/gtest/internal/gtest-filepath.h | 210 + .../include/gtest/internal/gtest-internal.h | 1226 + .../include/gtest/internal/gtest-linked_ptr.h | 233 + .../internal/gtest-param-util-generated.h | 4822 ++ .../gtest-param-util-generated.h.pump | 301 + .../include/gtest/internal/gtest-param-util.h | 619 + .../gtest/include/gtest/internal/gtest-port.h | 1775 + .../include/gtest/internal/gtest-string.h | 350 + .../include/gtest/internal/gtest-tuple.h | 968 + .../include/gtest/internal/gtest-tuple.h.pump | 336 + .../include/gtest/internal/gtest-type-util.h | 3330 ++ .../gtest/internal/gtest-type-util.h.pump | 296 + .../trunk/testing/gtest/m4/acx_pthread.m4 | 363 + media/webrtc/trunk/testing/gtest/m4/gtest.m4 | 74 + .../webrtc/trunk/testing/gtest/make/Makefile | 80 + .../trunk/testing/gtest/msvc/gtest-md.sln | 45 + .../trunk/testing/gtest/msvc/gtest-md.vcproj | 126 + .../webrtc/trunk/testing/gtest/msvc/gtest.sln | 45 + .../trunk/testing/gtest/msvc/gtest.vcproj | 126 + .../testing/gtest/msvc/gtest_main-md.vcproj | 129 + .../testing/gtest/msvc/gtest_main.vcproj | 129 + .../gtest/msvc/gtest_prod_test-md.vcproj | 164 + .../testing/gtest/msvc/gtest_prod_test.vcproj | 164 + .../gtest/msvc/gtest_unittest-md.vcproj | 147 + .../testing/gtest/msvc/gtest_unittest.vcproj | 147 + .../testing/gtest/samples/prime_tables.h | 123 + .../trunk/testing/gtest/samples/sample1.cc | 68 + .../trunk/testing/gtest/samples/sample1.h | 43 + .../gtest/samples/sample10_unittest.cc | 145 + .../testing/gtest/samples/sample1_unittest.cc | 153 + .../trunk/testing/gtest/samples/sample2.cc | 56 + .../trunk/testing/gtest/samples/sample2.h | 86 + .../testing/gtest/samples/sample2_unittest.cc | 109 + .../trunk/testing/gtest/samples/sample3-inl.h | 173 + .../testing/gtest/samples/sample3_unittest.cc | 151 + .../trunk/testing/gtest/samples/sample4.cc | 46 + .../trunk/testing/gtest/samples/sample4.h | 53 + .../testing/gtest/samples/sample4_unittest.cc | 45 + .../testing/gtest/samples/sample5_unittest.cc | 199 + .../testing/gtest/samples/sample6_unittest.cc | 224 + .../testing/gtest/samples/sample7_unittest.cc | 130 + .../testing/gtest/samples/sample8_unittest.cc | 173 + .../testing/gtest/samples/sample9_unittest.cc | 160 + .../testing/gtest/scripts/fuse_gtest_files.py | 250 + .../gtest/scripts/gen_gtest_pred_impl.py | 730 + .../testing/gtest/scripts/gtest-config.in | 274 + .../trunk/testing/gtest/scripts/pump.py | 847 + .../trunk/testing/gtest/scripts/test/Makefile | 59 + .../trunk/testing/gtest/scripts/upload.py | 1387 + .../testing/gtest/scripts/upload_gtest.py | 78 + .../trunk/testing/gtest/src/gtest-all.cc | 48 + .../testing/gtest/src/gtest-death-test.cc | 1234 + .../trunk/testing/gtest/src/gtest-filepath.cc | 380 + .../testing/gtest/src/gtest-internal-inl.h | 1038 + .../trunk/testing/gtest/src/gtest-port.cc | 746 + .../trunk/testing/gtest/src/gtest-printers.cc | 356 + .../testing/gtest/src/gtest-test-part.cc | 110 + .../testing/gtest/src/gtest-typed-test.cc | 110 + media/webrtc/trunk/testing/gtest/src/gtest.cc | 4898 ++ .../trunk/testing/gtest/src/gtest_main.cc | 39 + .../gtest/test/gtest-death-test_ex_test.cc | 93 + .../gtest/test/gtest-death-test_test.cc | 1296 + .../testing/gtest/test/gtest-filepath_test.cc | 696 + .../gtest/test/gtest-linked_ptr_test.cc | 155 + .../testing/gtest/test/gtest-listener_test.cc | 313 + .../testing/gtest/test/gtest-message_test.cc | 166 + .../testing/gtest/test/gtest-options_test.cc | 212 + .../gtest/test/gtest-param-test2_test.cc | 65 + .../gtest/test/gtest-param-test_test.cc | 895 + .../gtest/test/gtest-param-test_test.h | 55 + .../testing/gtest/test/gtest-port_test.cc | 1206 + .../testing/gtest/test/gtest-printers_test.cc | 1307 + .../gtest/test/gtest-test-part_test.cc | 208 + .../testing/gtest/test/gtest-tuple_test.cc | 320 + .../gtest/test/gtest-typed-test2_test.cc | 45 + .../gtest/test/gtest-typed-test_test.cc | 360 + .../gtest/test/gtest-typed-test_test.h | 66 + .../gtest/test/gtest-unittest-api_test.cc | 341 + .../testing/gtest/test/gtest_all_test.cc | 47 + .../test/gtest_break_on_failure_unittest.py | 218 + .../test/gtest_break_on_failure_unittest_.cc | 88 + .../gtest/test/gtest_catch_exceptions_test.py | 220 + .../test/gtest_catch_exceptions_test_.cc | 308 + .../testing/gtest/test/gtest_color_test.py | 130 + .../testing/gtest/test/gtest_color_test_.cc | 71 + .../testing/gtest/test/gtest_env_var_test.py | 103 + .../testing/gtest/test/gtest_env_var_test_.cc | 126 + .../gtest/test/gtest_environment_test.cc | 191 + .../gtest/test/gtest_filter_unittest.py | 633 + .../gtest/test/gtest_filter_unittest_.cc | 140 + .../testing/gtest/test/gtest_help_test.py | 172 + .../testing/gtest/test/gtest_help_test_.cc | 46 + .../gtest/test/gtest_list_tests_unittest.py | 177 + .../gtest/test/gtest_list_tests_unittest_.cc | 85 + .../testing/gtest/test/gtest_main_unittest.cc | 45 + .../gtest/test/gtest_no_test_unittest.cc | 57 + .../testing/gtest/test/gtest_output_test.py | 335 + .../testing/gtest/test/gtest_output_test_.cc | 1020 + .../test/gtest_output_test_golden_lin.txt | 711 + .../gtest/test/gtest_pred_impl_unittest.cc | 2427 + .../testing/gtest/test/gtest_prod_test.cc | 57 + .../testing/gtest/test/gtest_repeat_test.cc | 253 + .../testing/gtest/test/gtest_shuffle_test.py | 325 + .../testing/gtest/test/gtest_shuffle_test_.cc | 104 + .../gtest/test/gtest_sole_header_test.cc | 57 + .../testing/gtest/test/gtest_stress_test.cc | 257 + .../testing/gtest/test/gtest_test_utils.py | 305 + .../test/gtest_throw_on_failure_ex_test.cc | 92 + .../gtest/test/gtest_throw_on_failure_test.py | 171 + .../test/gtest_throw_on_failure_test_.cc | 56 + .../gtest/test/gtest_uninitialized_test.py | 70 + .../gtest/test/gtest_uninitialized_test_.cc | 43 + .../testing/gtest/test/gtest_unittest.cc | 7337 +++ .../gtest/test/gtest_xml_outfile1_test_.cc | 49 + .../gtest/test/gtest_xml_outfile2_test_.cc | 49 + .../gtest/test/gtest_xml_outfiles_test.py | 132 + .../gtest/test/gtest_xml_output_unittest.py | 242 + .../gtest/test/gtest_xml_output_unittest_.cc | 174 + .../gtest/test/gtest_xml_test_utils.py | 179 + .../trunk/testing/gtest/test/production.cc | 36 + .../trunk/testing/gtest/test/production.h | 55 + .../gtest/xcode/Config/DebugProject.xcconfig | 30 + .../xcode/Config/FrameworkTarget.xcconfig | 17 + .../gtest/xcode/Config/General.xcconfig | 41 + .../xcode/Config/ReleaseProject.xcconfig | 32 + .../xcode/Config/StaticLibraryTarget.xcconfig | 18 + .../gtest/xcode/Config/TestTarget.xcconfig | 8 + .../testing/gtest/xcode/Resources/Info.plist | 30 + .../xcode/Samples/FrameworkSample/Info.plist | 28 + .../WidgetFramework.xcodeproj/project.pbxproj | 457 + .../xcode/Samples/FrameworkSample/runtests.sh | 62 + .../xcode/Samples/FrameworkSample/widget.cc | 63 + .../xcode/Samples/FrameworkSample/widget.h | 59 + .../Samples/FrameworkSample/widget_test.cc | 68 + .../testing/gtest/xcode/Scripts/runtests.sh | 65 + .../gtest/xcode/Scripts/versiongenerate.py | 100 + .../xcode/gtest.xcodeproj/project.pbxproj | 1084 + media/webrtc/trunk/testing/gtest_mac.h | 48 + media/webrtc/trunk/testing/gtest_mac.mm | 53 + .../trunk/testing/gtest_mac_unittest.mm | 57 + .../webrtc/trunk/testing/gtest_main.target.mk | 152 + media/webrtc/trunk/testing/gtest_prod.host.mk | 112 + .../webrtc/trunk/testing/gtest_prod.target.mk | 112 + .../trunk/testing/multiprocess_func_list.cc | 43 + .../trunk/testing/multiprocess_func_list.h | 57 + media/webrtc/trunk/testing/platform_test.h | 34 + .../webrtc/trunk/testing/platform_test_mac.mm | 15 + media/webrtc/trunk/third_party/libyuv/AUTHORS | 4 + media/webrtc/trunk/third_party/libyuv/DEPS | 34 + media/webrtc/trunk/third_party/libyuv/LICENSE | 29 + media/webrtc/trunk/third_party/libyuv/PATENTS | 24 + .../trunk/third_party/libyuv/README.chromium | 9 + .../third_party/libyuv/codereview.settings | 10 + .../trunk/third_party/libyuv/include/libyuv.h | 24 + .../libyuv/include/libyuv/basic_types.h | 73 + .../libyuv/include/libyuv/compare.h | 61 + .../libyuv/include/libyuv/convert.h | 157 + .../libyuv/include/libyuv/cpu_id.h | 49 + .../libyuv/include/libyuv/format_conversion.h | 46 + .../libyuv/include/libyuv/planar_functions.h | 223 + .../libyuv/include/libyuv/rotate.h | 58 + .../third_party/libyuv/include/libyuv/scale.h | 70 + .../libyuv/include/libyuv/video_common.h | 96 + .../trunk/third_party/libyuv/libyuv.Makefile | 6 + .../trunk/third_party/libyuv/libyuv.gyp | 78 + .../trunk/third_party/libyuv/libyuv.target.mk | 164 + .../trunk/third_party/libyuv/libyuv_test.gyp | 46 + .../third_party/libyuv/source/compare.cc | 374 + .../libyuv/source/conversion_tables.h | 209 + .../third_party/libyuv/source/convert.cc | 1279 + .../third_party/libyuv/source/convertfrom.cc | 180 + .../trunk/third_party/libyuv/source/cpu_id.cc | 91 + .../libyuv/source/format_conversion.cc | 439 + .../libyuv/source/planar_functions.cc | 2155 + .../trunk/third_party/libyuv/source/rotate.cc | 1261 + .../third_party/libyuv/source/rotate_neon.cc | 565 + .../third_party/libyuv/source/rotate_priv.h | 70 + .../trunk/third_party/libyuv/source/row.h | 265 + .../third_party/libyuv/source/row_common.cc | 352 + .../third_party/libyuv/source/row_neon.cc | 166 + .../third_party/libyuv/source/row_posix.cc | 714 + .../third_party/libyuv/source/row_win.cc | 882 + .../trunk/third_party/libyuv/source/scale.cc | 3752 ++ .../third_party/libyuv/source/video_common.cc | 57 + .../third_party/libyuv/source/video_common.h | 0 .../libyuv/unit_test/compare_test.cc | 334 + .../libyuv/unit_test/planar_test.cc | 118 + .../libyuv/unit_test/rotate_test.cc | 1451 + .../libyuv/unit_test/scale_test.cc | 216 + .../third_party/libyuv/unit_test/unit_test.cc | 25 + .../third_party/libyuv/unit_test/unit_test.h | 65 + media/webrtc/trunk/tools/.gitignore | 63 + media/webrtc/trunk/tools/DEPS | 38 + media/webrtc/trunk/tools/OWNERS | 4 + media/webrtc/trunk/tools/PRESUBMIT.py | 58 + .../trunk/tools/add_webrtc_slave_utils.py | 49 + .../trunk/tools/clang/scripts/package.sh | 67 + .../trunk/tools/clang/scripts/plugin_flags.sh | 20 + .../trunk/tools/clang/scripts/update.py | 35 + .../trunk/tools/clang/scripts/update.sh | 231 + .../trunk/tools/clang/scripts/update_iwyu.sh | 33 + media/webrtc/trunk/tools/codereview.settings | 9 + .../trunk/tools/continuous_build/OWNERS | 3 + .../trunk/tools/continuous_build/README | 76 + .../build_internal/masters/master-common.mk | 123 + .../masters/master.tryserver.webrtc/Makefile | 5 + .../masters/master.tryserver.webrtc/buildbot | 4 + .../master.tryserver.webrtc/buildbot.tac | 11 + .../master.tryserver.webrtc/master.cfg | 265 + .../public_html/buildbot.css | 457 + .../public_html/favicon.ico | Bin 0 -> 1150 bytes .../master.tryserver.webrtc/slaves.cfg | 70 + .../masters/master.webrtc/Makefile | 5 + .../masters/master.webrtc/buildbot | 4 + .../masters/master.webrtc/buildbot.tac | 11 + .../masters/master.webrtc/master.cfg | 399 + .../master.webrtc/public_html/buildbot.css | 486 + .../master.webrtc/public_html/default.css | 504 + .../master.webrtc/public_html/favicon.ico | Bin 0 -> 1150 bytes .../masters/master.webrtc/slaves.cfg | 150 + .../build_internal/scripts/clean_old_files.py | 137 + .../scripts/clean_third_party_gcda.sh | 13 + .../scripts/generate_coverage_html.sh | 18 + .../scripts/webrtc_buildbot/__init__.py | 8 + .../scripts/webrtc_buildbot/utils.py | 902 + .../scripts/webrtc_buildbot/utils_test.py | 76 + .../site_config/config_private.py | 154 + .../build_internal/symsrc/cleanup_build.py | 50 + .../symsrc/webrtc_buildbot/__init__.py | 8 + .../symsrc/webrtc_buildbot/slave_utils.py | 66 + media/webrtc/trunk/tools/coverity/OWNERS | 3 + media/webrtc/trunk/tools/coverity/coverity.py | 324 + .../trunk/tools/create_supplement_gypi.py | 26 + media/webrtc/trunk/tools/gyp/.gitignore | 1 + media/webrtc/trunk/tools/gyp/AUTHORS | 6 + media/webrtc/trunk/tools/gyp/DEPS | 22 + media/webrtc/trunk/tools/gyp/LICENSE | 27 + media/webrtc/trunk/tools/gyp/MANIFEST | 21 + media/webrtc/trunk/tools/gyp/OWNERS | 1 + media/webrtc/trunk/tools/gyp/PRESUBMIT.py | 51 + .../trunk/tools/gyp/buildbot/buildbot_run.py | 97 + .../trunk/tools/gyp/codereview.settings | 10 + media/webrtc/trunk/tools/gyp/gyp | 18 + media/webrtc/trunk/tools/gyp/gyp.bat | 5 + media/webrtc/trunk/tools/gyp/gyp_dummy.c | 7 + media/webrtc/trunk/tools/gyp/gyptest.py | 256 + .../trunk/tools/gyp/pylib/gyp/MSVSNew.py | 338 + .../trunk/tools/gyp/pylib/gyp/MSVSProject.py | 208 + .../trunk/tools/gyp/pylib/gyp/MSVSSettings.py | 1032 + .../tools/gyp/pylib/gyp/MSVSSettings_test.py | 1481 + .../trunk/tools/gyp/pylib/gyp/MSVSToolFile.py | 58 + .../trunk/tools/gyp/pylib/gyp/MSVSUserFile.py | 146 + .../trunk/tools/gyp/pylib/gyp/MSVSVersion.py | 264 + .../webrtc/trunk/tools/gyp/pylib/gyp/SCons.py | 199 + .../trunk/tools/gyp/pylib/gyp/__init__.py | 487 + .../trunk/tools/gyp/pylib/gyp/common.py | 400 + .../trunk/tools/gyp/pylib/gyp/easy_xml.py | 148 + .../tools/gyp/pylib/gyp/easy_xml_test.py | 102 + .../tools/gyp/pylib/gyp/generator/__init__.py | 0 .../gyp/generator/dump_dependency_json.py | 64 + .../tools/gyp/pylib/gyp/generator/gypd.py | 87 + .../tools/gyp/pylib/gyp/generator/gypsh.py | 56 + .../tools/gyp/pylib/gyp/generator/make.py | 2165 + .../tools/gyp/pylib/gyp/generator/msvs.py | 2935 ++ .../gyp/pylib/gyp/generator/msvs_test.py | 35 + .../tools/gyp/pylib/gyp/generator/ninja.py | 1168 + .../tools/gyp/pylib/gyp/generator/scons.py | 1044 + .../tools/gyp/pylib/gyp/generator/xcode.py | 1205 + .../webrtc/trunk/tools/gyp/pylib/gyp/input.py | 2382 + .../trunk/tools/gyp/pylib/gyp/mac_tool.py | 192 + .../trunk/tools/gyp/pylib/gyp/ninja_syntax.py | 143 + .../trunk/tools/gyp/pylib/gyp/sun_tool.py | 51 + .../trunk/tools/gyp/pylib/gyp/system_test.py | 83 + .../tools/gyp/pylib/gyp/xcode_emulation.py | 949 + .../tools/gyp/pylib/gyp/xcodeproj_file.py | 2838 ++ .../trunk/tools/gyp/pylib/gyp/xml_fix.py | 69 + media/webrtc/trunk/tools/gyp/pylintrc | 307 + media/webrtc/trunk/tools/gyp/samples/samples | 81 + .../trunk/tools/gyp/samples/samples.bat | 5 + media/webrtc/trunk/tools/gyp/setup.py | 26 + .../gyp/test/actions-bare/gyptest-bare.py | 23 + .../tools/gyp/test/actions-bare/src/bare.gyp | 25 + .../tools/gyp/test/actions-bare/src/bare.py | 11 + .../gyp/test/actions-multiple/gyptest-all.py | 42 + .../gyp/test/actions-multiple/src/actions.gyp | 165 + .../gyp/test/actions-multiple/src/copy.py | 9 + .../gyp/test/actions-multiple/src/filter.py | 12 + .../tools/gyp/test/actions-multiple/src/foo.c | 11 + .../gyp/test/actions-multiple/src/input.txt | 1 + .../gyp/test/actions-multiple/src/main.c | 22 + .../gyp/test/actions-subdir/gyptest-action.py | 26 + .../gyp/test/actions-subdir/src/make-file.py | 11 + .../gyp/test/actions-subdir/src/none.gyp | 31 + .../src/subdir/make-subdir-file.py | 11 + .../test/actions-subdir/src/subdir/subdir.gyp | 28 + .../tools/gyp/test/actions/gyptest-all.py | 101 + .../tools/gyp/test/actions/gyptest-default.py | 68 + .../tools/gyp/test/actions/gyptest-errors.py | 24 + .../test/actions/src/action_missing_name.gyp | 24 + .../tools/gyp/test/actions/src/actions.gyp | 114 + .../gyp/test/actions/src/confirm-dep-files.py | 21 + .../gyp/test/actions/src/subdir1/counter.py | 46 + .../test/actions/src/subdir1/executable.gyp | 74 + .../test/actions/src/subdir1/make-prog1.py | 20 + .../test/actions/src/subdir1/make-prog2.py | 20 + .../gyp/test/actions/src/subdir1/program.c | 12 + .../gyp/test/actions/src/subdir2/make-file.py | 11 + .../gyp/test/actions/src/subdir2/none.gyp | 33 + .../test/actions/src/subdir3/generate_main.py | 21 + .../test/actions/src/subdir3/null_input.gyp | 29 + .../additional-targets/gyptest-additional.py | 55 + .../gyp/test/additional-targets/src/all.gyp | 13 + .../additional-targets/src/dir1/actions.gyp | 56 + .../test/additional-targets/src/dir1/emit.py | 11 + .../test/additional-targets/src/dir1/lib1.c | 6 + .../gyp/test/assembly/gyptest-assembly.py | 31 + .../trunk/tools/gyp/test/assembly/src/as.bat | 4 + .../tools/gyp/test/assembly/src/assembly.gyp | 59 + .../trunk/tools/gyp/test/assembly/src/lib1.S | 10 + .../trunk/tools/gyp/test/assembly/src/lib1.c | 3 + .../tools/gyp/test/assembly/src/program.c | 12 + .../tools/gyp/test/builddir/gyptest-all.py | 77 + .../gyp/test/builddir/gyptest-default.py | 77 + .../tools/gyp/test/builddir/src/builddir.gypi | 21 + .../trunk/tools/gyp/test/builddir/src/func1.c | 6 + .../trunk/tools/gyp/test/builddir/src/func2.c | 6 + .../trunk/tools/gyp/test/builddir/src/func3.c | 6 + .../trunk/tools/gyp/test/builddir/src/func4.c | 6 + .../trunk/tools/gyp/test/builddir/src/func5.c | 6 + .../trunk/tools/gyp/test/builddir/src/prog1.c | 10 + .../tools/gyp/test/builddir/src/prog1.gyp | 30 + .../gyp/test/builddir/src/subdir2/prog2.c | 10 + .../gyp/test/builddir/src/subdir2/prog2.gyp | 19 + .../test/builddir/src/subdir2/subdir3/prog3.c | 10 + .../builddir/src/subdir2/subdir3/prog3.gyp | 19 + .../src/subdir2/subdir3/subdir4/prog4.c | 10 + .../src/subdir2/subdir3/subdir4/prog4.gyp | 19 + .../subdir2/subdir3/subdir4/subdir5/prog5.c | 10 + .../subdir2/subdir3/subdir4/subdir5/prog5.gyp | 19 + .../trunk/tools/gyp/test/cflags/cflags.c | 15 + .../trunk/tools/gyp/test/cflags/cflags.gyp | 16 + .../tools/gyp/test/cflags/gyptest-cflags.py | 65 + .../gyp/test/compilable/gyptest-headers.py | 29 + .../tools/gyp/test/compilable/src/headers.gyp | 26 + .../tools/gyp/test/compilable/src/lib1.cpp | 7 + .../tools/gyp/test/compilable/src/lib1.hpp | 6 + .../tools/gyp/test/compilable/src/program.cpp | 9 + .../configurations/basics/configurations.c | 15 + .../configurations/basics/configurations.gyp | 32 + .../basics/gyptest-configurations.py | 29 + .../inheritance/configurations.c | 21 + .../inheritance/configurations.gyp | 40 + .../inheritance/gyptest-inheritance.py | 33 + .../test/configurations/invalid/actions.gyp | 18 + .../invalid/all_dependent_settings.gyp | 18 + .../configurations/invalid/configurations.gyp | 18 + .../configurations/invalid/dependencies.gyp | 18 + .../invalid/direct_dependent_settings.gyp | 18 + .../invalid/gyptest-configurations.py | 38 + .../test/configurations/invalid/libraries.gyp | 18 + .../configurations/invalid/link_settings.gyp | 18 + .../test/configurations/invalid/sources.gyp | 18 + .../configurations/invalid/target_name.gyp | 18 + .../gyp/test/configurations/invalid/type.gyp | 18 + .../target_platform/configurations.gyp | 58 + .../configurations/target_platform/front.c | 8 + .../gyptest-target_platform.py | 40 + .../configurations/target_platform/left.c | 3 + .../configurations/target_platform/right.c | 3 + .../test/configurations/x64/configurations.c | 12 + .../configurations/x64/configurations.gyp | 26 + .../test/configurations/x64/gyptest-x86.py | 29 + .../tools/gyp/test/copies/gyptest-all.py | 40 + .../tools/gyp/test/copies/gyptest-default.py | 40 + .../tools/gyp/test/copies/gyptest-slash.py | 38 + .../gyp/test/copies/src/copies-slash.gyp | 36 + .../tools/gyp/test/copies/src/copies.gyp | 70 + .../tools/gyp/test/copies/src/directory/file3 | 1 + .../tools/gyp/test/copies/src/directory/file4 | 1 + .../test/copies/src/directory/subdir/file5 | 1 + .../trunk/tools/gyp/test/copies/src/file1 | 1 + .../trunk/tools/gyp/test/copies/src/file2 | 1 + .../test/copies/src/parentdir/subdir/file6 | 1 + .../trunk/tools/gyp/test/cxxflags/cxxflags.cc | 15 + .../tools/gyp/test/cxxflags/cxxflags.gyp | 16 + .../gyp/test/cxxflags/gyptest-cxxflags.py | 65 + .../test/defines-escaping/defines-escaping.c | 11 + .../defines-escaping/defines-escaping.gyp | 19 + .../gyptest-defines-escaping.py | 184 + .../tools/gyp/test/defines/defines-env.gyp | 22 + .../trunk/tools/gyp/test/defines/defines.c | 18 + .../trunk/tools/gyp/test/defines/defines.gyp | 37 + .../test/defines/gyptest-define-override.py | 34 + .../test/defines/gyptest-defines-env-regyp.py | 50 + .../gyp/test/defines/gyptest-defines-env.py | 85 + .../tools/gyp/test/defines/gyptest-defines.py | 26 + .../trunk/tools/gyp/test/dependencies/a.c | 9 + .../trunk/tools/gyp/test/dependencies/b/b.c | 3 + .../trunk/tools/gyp/test/dependencies/b/b.gyp | 22 + .../trunk/tools/gyp/test/dependencies/b/b3.c | 9 + .../trunk/tools/gyp/test/dependencies/c/c.c | 4 + .../trunk/tools/gyp/test/dependencies/c/c.gyp | 22 + .../trunk/tools/gyp/test/dependencies/c/d.c | 3 + .../gyp/test/dependencies/extra_targets.gyp | 18 + .../dependencies/gyptest-extra-targets.py | 21 + .../gyp/test/dependencies/gyptest-lib-only.py | 39 + .../dependencies/gyptest-none-traversal.py | 25 + .../tools/gyp/test/dependencies/lib_only.gyp | 16 + .../trunk/tools/gyp/test/dependencies/main.c | 14 + .../gyp/test/dependencies/none_traversal.gyp | 46 + .../gyp/test/dependency-copy/gyptest-copy.py | 26 + .../gyp/test/dependency-copy/src/copies.gyp | 25 + .../gyp/test/dependency-copy/src/file1.c | 7 + .../gyp/test/dependency-copy/src/file2.c | 7 + .../tools/gyp/test/exclusion/exclusion.gyp | 23 + .../gyp/test/exclusion/gyptest-exclusion.py | 22 + .../trunk/tools/gyp/test/exclusion/hello.c | 15 + .../test/generator-output/actions/actions.gyp | 16 + .../generator-output/actions/build/README.txt | 4 + .../actions/subdir1/actions-out/README.txt | 4 + .../actions/subdir1/build/README.txt | 4 + .../actions/subdir1/executable.gyp | 44 + .../actions/subdir1/make-prog1.py | 20 + .../actions/subdir1/make-prog2.py | 20 + .../actions/subdir1/program.c | 12 + .../actions/subdir2/actions-out/README.txt | 4 + .../actions/subdir2/build/README.txt | 4 + .../actions/subdir2/make-file.py | 11 + .../generator-output/actions/subdir2/none.gyp | 31 + .../generator-output/copies/build/README.txt | 4 + .../copies/copies-out/README.txt | 4 + .../test/generator-output/copies/copies.gyp | 50 + .../gyp/test/generator-output/copies/file1 | 1 + .../gyp/test/generator-output/copies/file2 | 1 + .../copies/subdir/build/README.txt | 4 + .../copies/subdir/copies-out/README.txt | 4 + .../test/generator-output/copies/subdir/file3 | 1 + .../test/generator-output/copies/subdir/file4 | 1 + .../generator-output/copies/subdir/subdir.gyp | 32 + .../test/generator-output/gyptest-actions.py | 58 + .../test/generator-output/gyptest-copies.py | 59 + .../test/generator-output/gyptest-relocate.py | 60 + .../test/generator-output/gyptest-rules.py | 58 + .../generator-output/gyptest-subdir2-deep.py | 36 + .../test/generator-output/gyptest-top-all.py | 53 + .../generator-output/rules/build/README.txt | 4 + .../test/generator-output/rules/copy-file.py | 12 + .../gyp/test/generator-output/rules/rules.gyp | 16 + .../rules/subdir1/build/README.txt | 4 + .../rules/subdir1/define3.in0 | 1 + .../rules/subdir1/define4.in0 | 1 + .../rules/subdir1/executable.gyp | 59 + .../rules/subdir1/function1.in1 | 6 + .../rules/subdir1/function2.in1 | 6 + .../generator-output/rules/subdir1/program.c | 18 + .../rules/subdir2/build/README.txt | 4 + .../generator-output/rules/subdir2/file1.in0 | 1 + .../generator-output/rules/subdir2/file2.in0 | 1 + .../generator-output/rules/subdir2/file3.in1 | 1 + .../generator-output/rules/subdir2/file4.in1 | 1 + .../generator-output/rules/subdir2/none.gyp | 49 + .../rules/subdir2/rules-out/README.txt | 4 + .../generator-output/src/build/README.txt | 4 + .../tools/gyp/test/generator-output/src/inc.h | 1 + .../test/generator-output/src/inc1/include1.h | 1 + .../gyp/test/generator-output/src/prog1.c | 18 + .../gyp/test/generator-output/src/prog1.gyp | 28 + .../src/subdir2/build/README.txt | 4 + .../src/subdir2/deeper/build/README.txt | 4 + .../src/subdir2/deeper/deeper.c | 7 + .../src/subdir2/deeper/deeper.gyp | 18 + .../src/subdir2/deeper/deeper.h | 1 + .../src/subdir2/inc2/include2.h | 1 + .../test/generator-output/src/subdir2/prog2.c | 18 + .../generator-output/src/subdir2/prog2.gyp | 28 + .../src/subdir3/build/README.txt | 4 + .../src/subdir3/inc3/include3.h | 1 + .../test/generator-output/src/subdir3/prog3.c | 18 + .../generator-output/src/subdir3/prog3.gyp | 25 + .../test/generator-output/src/symroot.gypi | 16 + .../gyptest-exported-hard-dependency.py | 37 + .../gyptest-no-exported-hard-dependency.py | 36 + .../tools/gyp/test/hard_dependency/src/a.c | 9 + .../tools/gyp/test/hard_dependency/src/a.h | 12 + .../tools/gyp/test/hard_dependency/src/b.c | 9 + .../tools/gyp/test/hard_dependency/src/b.h | 12 + .../tools/gyp/test/hard_dependency/src/c.c | 9 + .../tools/gyp/test/hard_dependency/src/c.h | 10 + .../tools/gyp/test/hard_dependency/src/d.c | 9 + .../gyp/test/hard_dependency/src/emit.py | 11 + .../hard_dependency/src/hard_dependency.gyp | 78 + .../trunk/tools/gyp/test/hello/gyptest-all.py | 24 + .../tools/gyp/test/hello/gyptest-default.py | 24 + .../gyp/test/hello/gyptest-disable-regyp.py | 32 + .../tools/gyp/test/hello/gyptest-regyp.py | 32 + .../tools/gyp/test/hello/gyptest-target.py | 24 + .../webrtc/trunk/tools/gyp/test/hello/hello.c | 11 + .../trunk/tools/gyp/test/hello/hello.gyp | 15 + .../trunk/tools/gyp/test/hello/hello2.c | 11 + .../trunk/tools/gyp/test/hello/hello2.gyp | 15 + .../gyptest-home-includes-regyp.py | 44 + .../home_dot_gyp/gyptest-home-includes.py | 30 + .../test/home_dot_gyp/home/.gyp/include.gypi | 5 + .../test/home_dot_gyp/home2/.gyp/include.gypi | 5 + .../tools/gyp/test/home_dot_gyp/src/all.gyp | 22 + .../gyp/test/home_dot_gyp/src/printfoo.c | 7 + .../gyp/test/include_dirs/gyptest-all.py | 46 + .../gyp/test/include_dirs/gyptest-default.py | 46 + .../tools/gyp/test/include_dirs/src/inc.h | 1 + .../gyp/test/include_dirs/src/inc1/include1.h | 1 + .../gyp/test/include_dirs/src/includes.c | 19 + .../gyp/test/include_dirs/src/includes.gyp | 27 + .../test/include_dirs/src/shadow1/shadow.h | 1 + .../test/include_dirs/src/shadow2/shadow.h | 1 + .../gyp/test/include_dirs/src/subdir/inc.h | 1 + .../include_dirs/src/subdir/inc2/include2.h | 1 + .../include_dirs/src/subdir/subdir_includes.c | 14 + .../src/subdir/subdir_includes.gyp | 20 + .../gyptest-intermediate-dir.py | 45 + .../gyp/test/intermediate_dir/src/script.py | 24 + .../gyp/test/intermediate_dir/src/test.gyp | 40 + .../gyp/test/intermediate_dir/src/test2.gyp | 40 + .../trunk/tools/gyp/test/lib/README.txt | 17 + .../trunk/tools/gyp/test/lib/TestCmd.py | 1594 + .../trunk/tools/gyp/test/lib/TestCommon.py | 581 + .../trunk/tools/gyp/test/lib/TestGyp.py | 808 + .../gyptest-shared-obj-install-path.py | 37 + .../tools/gyp/test/library/gyptest-shared.py | 84 + .../tools/gyp/test/library/gyptest-static.py | 84 + .../trunk/tools/gyp/test/library/src/lib1.c | 10 + .../gyp/test/library/src/lib1_moveable.c | 10 + .../trunk/tools/gyp/test/library/src/lib2.c | 10 + .../gyp/test/library/src/lib2_moveable.c | 10 + .../tools/gyp/test/library/src/library.gyp | 58 + .../tools/gyp/test/library/src/program.c | 15 + .../test/library/src/shared_dependency.gyp | 33 + .../trunk/tools/gyp/test/link-objects/base.c | 6 + .../trunk/tools/gyp/test/link-objects/extra.c | 5 + .../gyp/test/link-objects/gyptest-all.py | 28 + .../gyp/test/link-objects/link-objects.gyp | 24 + .../test/mac/action-envvars/action/action.gyp | 34 + .../test/mac/action-envvars/action/action.sh | 8 + .../TestApp/English.lproj/InfoPlist.strings | 3 + .../TestApp/English.lproj/MainMenu.xib | 4119 ++ .../mac/app-bundle/TestApp/TestApp-Info.plist | 32 + .../app-bundle/TestApp/TestAppAppDelegate.h | 13 + .../app-bundle/TestApp/TestAppAppDelegate.m | 15 + .../gyp/test/mac/app-bundle/TestApp/main.m | 10 + .../tools/gyp/test/mac/app-bundle/empty.c | 0 .../tools/gyp/test/mac/app-bundle/test.gyp | 39 + .../tools/gyp/test/mac/copy-dylib/empty.c | 1 + .../tools/gyp/test/mac/copy-dylib/test.gyp | 31 + .../trunk/tools/gyp/test/mac/debuginfo/file.c | 6 + .../tools/gyp/test/mac/debuginfo/test.gyp | 82 + .../English.lproj/InfoPlist.strings | 1 + .../gyp/test/mac/depend-on-bundle/Info.plist | 28 + .../gyp/test/mac/depend-on-bundle/bundle.c | 1 + .../test/mac/depend-on-bundle/executable.c | 4 + .../gyp/test/mac/depend-on-bundle/test.gyp | 28 + .../English.lproj/InfoPlist.strings | 2 + .../mac/framework/TestFramework/Info.plist | 28 + .../mac/framework/TestFramework/ObjCVector.h | 28 + .../mac/framework/TestFramework/ObjCVector.mm | 63 + .../TestFramework/ObjCVectorInternal.h | 9 + .../TestFramework/TestFramework_Prefix.pch | 7 + .../tools/gyp/test/mac/framework/empty.c | 0 .../gyp/test/mac/framework/framework.gyp | 74 + .../mac/global-settings/src/dir1/dir1.gyp | 11 + .../mac/global-settings/src/dir2/dir2.gyp | 22 + .../mac/global-settings/src/dir2/file.txt | 1 + .../gyp/test/mac/gyptest-action-envvars.py | 30 + .../trunk/tools/gyp/test/mac/gyptest-app.py | 44 + .../tools/gyp/test/mac/gyptest-copies.py | 49 + .../tools/gyp/test/mac/gyptest-copy-dylib.py | 25 + .../tools/gyp/test/mac/gyptest-debuginfo.py | 36 + .../gyp/test/mac/gyptest-depend-on-bundle.py | 40 + .../tools/gyp/test/mac/gyptest-framework.py | 50 + .../gyp/test/mac/gyptest-global-settings.py | 26 + .../gyp/test/mac/gyptest-infoplist-process.py | 51 + .../tools/gyp/test/mac/gyptest-libraries.py | 22 + .../gyp/test/mac/gyptest-loadable-module.py | 45 + .../mac/gyptest-non-strs-flattened-to-env.py | 33 + .../test/mac/gyptest-postbuild-copy-bundle.py | 62 + .../test/mac/gyptest-postbuild-defaults.py | 29 + .../gyp/test/mac/gyptest-postbuild-fail.py | 55 + ...ptest-postbuild-multiple-configurations.py | 26 + .../mac/gyptest-postbuild-static-library.gyp | 28 + .../tools/gyp/test/mac/gyptest-postbuild.py | 51 + .../gyp/test/mac/gyptest-prefixheader.py | 19 + .../tools/gyp/test/mac/gyptest-rebuild.py | 42 + .../test/mac/gyptest-sourceless-module.gyp | 46 + .../trunk/tools/gyp/test/mac/gyptest-strip.py | 54 + .../gyp/test/mac/gyptest-type-envvars.py | 24 + .../gyp/test/mac/gyptest-xcode-env-order.py | 77 + .../gyp/test/mac/infoplist-process/Info.plist | 36 + .../gyp/test/mac/infoplist-process/main.c | 7 + .../gyp/test/mac/infoplist-process/test1.gyp | 25 + .../gyp/test/mac/infoplist-process/test2.gyp | 25 + .../gyp/test/mac/infoplist-process/test3.gyp | 25 + .../gyp/test/mac/libraries/subdir/README.txt | 1 + .../gyp/test/mac/libraries/subdir/hello.cc | 10 + .../gyp/test/mac/libraries/subdir/mylib.c | 7 + .../gyp/test/mac/libraries/subdir/test.gyp | 66 + .../gyp/test/mac/loadable-module/Info.plist | 26 + .../gyp/test/mac/loadable-module/module.c | 11 + .../gyp/test/mac/loadable-module/test.gyp | 18 + .../mac/non-strs-flattened-to-env/Info.plist | 15 + .../test/mac/non-strs-flattened-to-env/main.c | 7 + .../mac/non-strs-flattened-to-env/test.gyp | 24 + .../Framework-Info.plist | 30 + .../postbuild-copy-bundle/TestApp-Info.plist | 32 + .../test/mac/postbuild-copy-bundle/empty.c | 0 .../gyp/test/mac/postbuild-copy-bundle/main.c | 4 + .../postbuild-copy-framework.sh | 9 + .../postbuild-copy-bundle/resource_file.sb | 1 + .../test/mac/postbuild-copy-bundle/test.gyp | 43 + .../test/mac/postbuild-defaults/Info.plist | 13 + .../gyp/test/mac/postbuild-defaults/main.c | 7 + .../postbuild-defaults/postbuild-defaults.sh | 15 + .../gyp/test/mac/postbuild-defaults/test.gyp | 26 + .../tools/gyp/test/mac/postbuild-fail/file.c | 6 + .../test/mac/postbuild-fail/postbuild-fail.sh | 6 + .../gyp/test/mac/postbuild-fail/test.gyp | 38 + .../test/mac/postbuild-fail/touch-dynamic.sh | 7 + .../test/mac/postbuild-fail/touch-static.sh | 7 + .../postbuild-multiple-configurations/main.c | 4 + .../postbuild-touch-file.sh | 7 + .../test.gyp | 26 + .../test/mac/postbuild-static-library/empty.c | 4 + .../postbuild-touch-file.sh | 7 + .../mac/postbuild-static-library/test.gyp | 34 + .../tools/gyp/test/mac/postbuilds/file.c | 4 + .../script/shared_library_postbuild.sh | 23 + .../script/static_library_postbuild.sh | 23 + .../postbuilds/subdirectory/nested_target.gyp | 45 + .../tools/gyp/test/mac/postbuilds/test.gyp | 79 + .../tools/gyp/test/mac/prefixheader/file.c | 1 + .../tools/gyp/test/mac/prefixheader/file.cc | 1 + .../tools/gyp/test/mac/prefixheader/file.m | 1 + .../tools/gyp/test/mac/prefixheader/file.mm | 1 + .../tools/gyp/test/mac/prefixheader/header.h | 1 + .../tools/gyp/test/mac/prefixheader/test.gyp | 82 + .../gyp/test/mac/rebuild/TestApp-Info.plist | 32 + .../tools/gyp/test/mac/rebuild/delay-touch.sh | 6 + .../trunk/tools/gyp/test/mac/rebuild/empty.c | 0 .../trunk/tools/gyp/test/mac/rebuild/main.c | 1 + .../trunk/tools/gyp/test/mac/rebuild/test.gyp | 56 + .../gyp/test/mac/sourceless-module/empty.c | 1 + .../gyp/test/mac/sourceless-module/test.gyp | 39 + .../trunk/tools/gyp/test/mac/strip/file.c | 9 + .../tools/gyp/test/mac/strip/strip.saves | 5 + .../trunk/tools/gyp/test/mac/strip/test.gyp | 115 + .../tools/gyp/test/mac/type_envvars/file.c | 6 + .../tools/gyp/test/mac/type_envvars/test.gyp | 100 + .../type_envvars/test_bundle_executable.sh | 15 + .../test_bundle_loadable_module.sh | 16 + .../test_bundle_shared_library.sh | 16 + .../type_envvars/test_nonbundle_executable.sh | 16 + .../test_nonbundle_loadable_module.sh | 15 + .../mac/type_envvars/test_nonbundle_none.sh | 16 + .../test_nonbundle_shared_library.sh | 15 + .../test_nonbundle_static_library.sh | 15 + .../gyp/test/mac/xcode-env-order/Info.plist | 56 + .../tools/gyp/test/mac/xcode-env-order/main.c | 7 + .../gyp/test/mac/xcode-env-order/test.gyp | 83 + .../tools/gyp/test/make/dependencies.gyp | 15 + .../gyp/test/make/gyptest-dependencies.py | 31 + .../tools/gyp/test/make/gyptest-noload.py | 57 + .../webrtc/trunk/tools/gyp/test/make/main.cc | 12 + media/webrtc/trunk/tools/gyp/test/make/main.h | 0 .../trunk/tools/gyp/test/make/noload/all.gyp | 18 + .../tools/gyp/test/make/noload/lib/shared.c | 3 + .../tools/gyp/test/make/noload/lib/shared.gyp | 16 + .../tools/gyp/test/make/noload/lib/shared.h | 1 + .../trunk/tools/gyp/test/make/noload/main.c | 9 + .../tools/gyp/test/module/gyptest-default.py | 28 + .../trunk/tools/gyp/test/module/src/lib1.c | 10 + .../trunk/tools/gyp/test/module/src/lib2.c | 10 + .../tools/gyp/test/module/src/module.gyp | 55 + .../trunk/tools/gyp/test/module/src/program.c | 111 + .../tools/gyp/test/msvs/express/base/base.gyp | 22 + .../tools/gyp/test/msvs/express/express.gyp | 19 + .../gyp/test/msvs/express/gyptest-express.py | 29 + .../test/msvs/list_excluded/gyptest-all.py | 51 + .../gyp/test/msvs/list_excluded/hello.cpp | 10 + .../test/msvs/list_excluded/hello_exclude.gyp | 19 + .../gyp/test/msvs/list_excluded/hello_mac.cpp | 10 + .../gyp/test/msvs/precompiled/gyptest-all.py | 23 + .../tools/gyp/test/msvs/precompiled/hello.c | 14 + .../tools/gyp/test/msvs/precompiled/hello.gyp | 19 + .../tools/gyp/test/msvs/precompiled/hello2.c | 13 + .../tools/gyp/test/msvs/precompiled/precomp.c | 8 + .../gyp/test/msvs/uldi2010/gyptest-all.py | 20 + .../tools/gyp/test/msvs/uldi2010/hello.c | 13 + .../tools/gyp/test/msvs/uldi2010/hello.gyp | 26 + .../tools/gyp/test/msvs/uldi2010/hello2.c | 10 + .../gyp/test/multiple-targets/gyptest-all.py | 35 + .../test/multiple-targets/gyptest-default.py | 35 + .../gyp/test/multiple-targets/src/common.c | 7 + .../test/multiple-targets/src/multiple.gyp | 24 + .../gyp/test/multiple-targets/src/prog1.c | 10 + .../gyp/test/multiple-targets/src/prog2.c | 10 + .../gyptest-action-dependencies.py | 45 + .../test/ninja/action_dependencies/src/a.c | 10 + .../test/ninja/action_dependencies/src/a.h | 13 + .../src/action_dependencies.gyp | 88 + .../test/ninja/action_dependencies/src/b.c | 17 + .../test/ninja/action_dependencies/src/b.h | 13 + .../test/ninja/action_dependencies/src/c.c | 10 + .../test/ninja/action_dependencies/src/c.h | 13 + .../ninja/action_dependencies/src/emit.py | 11 + .../gyp/test/no-output/gyptest-no-output.py | 21 + .../tools/gyp/test/no-output/src/nooutput.gyp | 17 + .../tools/gyp/test/product/gyptest-product.py | 43 + .../trunk/tools/gyp/test/product/hello.c | 15 + .../trunk/tools/gyp/test/product/product.gyp | 128 + .../trunk/tools/gyp/test/relative/foo/a/a.cc | 9 + .../trunk/tools/gyp/test/relative/foo/a/a.gyp | 13 + .../tools/gyp/test/relative/foo/a/c/c.cc | 9 + .../tools/gyp/test/relative/foo/a/c/c.gyp | 12 + .../trunk/tools/gyp/test/relative/foo/b/b.cc | 9 + .../trunk/tools/gyp/test/relative/foo/b/b.gyp | 9 + .../gyp/test/relative/gyptest-default.py | 25 + .../tools/gyp/test/restat/gyptest-restat.py | 31 + .../test/restat/src/create_intermediate.py | 17 + .../tools/gyp/test/restat/src/restat.gyp | 48 + .../gyp/test/rules-dirname/gyptest-dirname.py | 38 + .../gyp/test/rules-dirname/src/actions.gyp | 15 + .../gyp/test/rules-dirname/src/copy-file.py | 11 + .../test/rules-dirname/src/subdir/a/b/c.gencc | 11 + .../rules-dirname/src/subdir/a/b/c.printvars | 1 + .../src/subdir/foo/bar/baz.gencc | 11 + .../src/subdir/foo/bar/baz.printvars | 1 + .../src/subdir/input-rule-dirname.gyp | 92 + .../gyp/test/rules-dirname/src/subdir/main.cc | 12 + .../rules-dirname/src/subdir/printvars.py | 14 + .../gyp/test/rules-rebuild/gyptest-all.py | 70 + .../gyp/test/rules-rebuild/gyptest-default.py | 70 + .../tools/gyp/test/rules-rebuild/src/main.c | 12 + .../test/rules-rebuild/src/make-sources.py | 19 + .../tools/gyp/test/rules-rebuild/src/prog1.in | 7 + .../tools/gyp/test/rules-rebuild/src/prog2.in | 7 + .../test/rules-rebuild/src/same_target.gyp | 31 + .../gyptest-rules-variables.py | 26 + .../gyp/test/rules-variables/src/input_ext.c | 9 + .../rules-variables/src/input_name/test.c | 9 + .../src/input_path/subdir/test.c | 9 + .../src/subdir/input_dirname.c | 9 + .../test/rules-variables/src/subdir/test.c | 18 + .../rules-variables/src/test.input_root.c | 9 + .../test/rules-variables/src/variables.gyp | 30 + .../trunk/tools/gyp/test/rules/gyptest-all.py | 66 + .../tools/gyp/test/rules/gyptest-default.py | 55 + .../gyp/test/rules/gyptest-input-root.py | 26 + .../tools/gyp/test/rules/src/actions.gyp | 21 + .../tools/gyp/test/rules/src/copy-file.py | 11 + .../gyp/test/rules/src/external/external.gyp | 66 + .../gyp/test/rules/src/external/file1.in | 1 + .../gyp/test/rules/src/external/file2.in | 1 + .../tools/gyp/test/rules/src/input-root.gyp | 24 + .../trunk/tools/gyp/test/rules/src/rule.py | 17 + .../tools/gyp/test/rules/src/somefile.ext | 0 .../gyp/test/rules/src/subdir1/executable.gyp | 37 + .../gyp/test/rules/src/subdir1/function1.in | 6 + .../gyp/test/rules/src/subdir1/function2.in | 6 + .../gyp/test/rules/src/subdir1/program.c | 12 + .../tools/gyp/test/rules/src/subdir2/file1.in | 1 + .../tools/gyp/test/rules/src/subdir2/file2.in | 1 + .../gyp/test/rules/src/subdir2/never_used.gyp | 31 + .../gyp/test/rules/src/subdir2/no_inputs.gyp | 32 + .../tools/gyp/test/rules/src/subdir2/none.gyp | 33 + .../test/rules/src/subdir3/executable2.gyp | 37 + .../gyp/test/rules/src/subdir3/function3.in | 6 + .../gyp/test/rules/src/subdir3/program.c | 10 + .../test/rules/src/subdir4/asm-function.asm | 10 + .../gyp/test/rules/src/subdir4/build-asm.gyp | 49 + .../gyp/test/rules/src/subdir4/program.c | 19 + .../gyp/test/same-gyp-name/gyptest-all.py | 34 + .../gyp/test/same-gyp-name/gyptest-default.py | 34 + .../tools/gyp/test/same-gyp-name/src/all.gyp | 16 + .../same-gyp-name/src/subdir1/executable.gyp | 15 + .../test/same-gyp-name/src/subdir1/main1.cc | 6 + .../same-gyp-name/src/subdir2/executable.gyp | 15 + .../test/same-gyp-name/src/subdir2/main2.cc | 6 + .../tools/gyp/test/same-name/gyptest-all.py | 34 + .../gyp/test/same-name/gyptest-default.py | 34 + .../tools/gyp/test/same-name/src/all.gyp | 38 + .../trunk/tools/gyp/test/same-name/src/func.c | 6 + .../tools/gyp/test/same-name/src/prog1.c | 16 + .../tools/gyp/test/same-name/src/prog2.c | 16 + .../gyp/test/same-name/src/subdir1/func.c | 6 + .../gyp/test/same-name/src/subdir2/func.c | 6 + .../gyptest-same-target-name.py | 18 + .../gyp/test/same-target-name/src/all.gyp | 16 + .../test/same-target-name/src/executable1.gyp | 15 + .../test/same-target-name/src/executable2.gyp | 15 + .../gyp/test/scons_tools/gyptest-tools.py | 26 + .../site_scons/site_tools/this_tool.py | 10 + .../trunk/tools/gyp/test/scons_tools/tools.c | 13 + .../tools/gyp/test/scons_tools/tools.gyp | 18 + .../tools/gyp/test/sibling/gyptest-all.py | 39 + .../gyp/test/sibling/gyptest-relocate.py | 41 + .../tools/gyp/test/sibling/src/build/all.gyp | 17 + .../tools/gyp/test/sibling/src/prog1/prog1.c | 7 + .../gyp/test/sibling/src/prog1/prog1.gyp | 15 + .../tools/gyp/test/sibling/src/prog2/prog2.c | 7 + .../gyp/test/sibling/src/prog2/prog2.gyp | 15 + .../tools/gyp/test/small/gyptest-small.py | 51 + .../test/subdirectory/gyptest-SYMROOT-all.py | 36 + .../subdirectory/gyptest-SYMROOT-default.py | 37 + .../test/subdirectory/gyptest-subdir-all.py | 34 + .../subdirectory/gyptest-subdir-default.py | 33 + .../test/subdirectory/gyptest-subdir2-deep.py | 25 + .../gyp/test/subdirectory/gyptest-top-all.py | 43 + .../test/subdirectory/gyptest-top-default.py | 43 + .../tools/gyp/test/subdirectory/src/prog1.c | 7 + .../tools/gyp/test/subdirectory/src/prog1.gyp | 21 + .../gyp/test/subdirectory/src/subdir/prog2.c | 7 + .../test/subdirectory/src/subdir/prog2.gyp | 18 + .../subdirectory/src/subdir/subdir2/prog3.c | 7 + .../subdirectory/src/subdir/subdir2/prog3.gyp | 18 + .../gyp/test/subdirectory/src/symroot.gypi | 16 + .../gyp/test/toolsets/gyptest-toolsets.py | 23 + .../trunk/tools/gyp/test/toolsets/main.cc | 11 + .../trunk/tools/gyp/test/toolsets/toolsets.cc | 11 + .../tools/gyp/test/toolsets/toolsets.gyp | 38 + .../test/toplevel-dir/gyptest-toplevel-dir.py | 31 + .../gyp/test/toplevel-dir/src/sub1/main.gyp | 18 + .../gyp/test/toplevel-dir/src/sub1/prog1.c | 7 + .../gyp/test/toplevel-dir/src/sub2/prog2.c | 7 + .../gyp/test/toplevel-dir/src/sub2/prog2.gyp | 15 + .../variables/commands/commands-repeated.gyp | 128 + .../commands/commands-repeated.gyp.stdout | 405 + .../commands/commands-repeated.gypd.golden | 72 + .../gyp/test/variables/commands/commands.gyp | 86 + .../commands/commands.gyp.ignore-env.stdout | 268 + .../variables/commands/commands.gyp.stdout | 268 + .../variables/commands/commands.gypd.golden | 56 + .../gyp/test/variables/commands/commands.gypi | 16 + .../commands/gyptest-commands-ignore-env.py | 46 + .../commands/gyptest-commands-repeated.py | 40 + .../variables/commands/gyptest-commands.py | 39 + .../tools/gyp/test/variables/commands/test.py | 1 + .../gyp/test/variables/commands/update_golden | 11 + .../variables/filelist/filelist.gyp.stdout | 174 + .../variables/filelist/filelist.gypd.golden | 43 + .../variables/filelist/gyptest-filelist.py | 50 + .../test/variables/filelist/src/filelist.gyp | 93 + .../gyp/test/variables/filelist/update_golden | 8 + .../gyp/test/variants/gyptest-variants.py | 45 + .../tools/gyp/test/variants/src/variants.c | 13 + .../tools/gyp/test/variants/src/variants.gyp | 27 + media/webrtc/trunk/tools/gyp/tools/README | 15 + .../webrtc/trunk/tools/gyp/tools/Xcode/README | 5 + .../tools/Xcode/Specifications/gyp.pbfilespec | 27 + .../tools/Xcode/Specifications/gyp.xclangspec | 226 + .../webrtc/trunk/tools/gyp/tools/graphviz.py | 100 + .../trunk/tools/gyp/tools/pretty_gyp.py | 154 + .../trunk/tools/gyp/tools/pretty_sln.py | 168 + .../trunk/tools/gyp/tools/pretty_vcproj.py | 330 + media/webrtc/trunk/tools/matlab/maxUnwrap.m | 25 + media/webrtc/trunk/tools/matlab/parseLog.m | 54 + .../trunk/tools/python/google/__init__.py | 1 + .../tools/python/google/gethash_timer.py | 149 + .../python/google/httpd_config/httpd.conf | 734 + .../python/google/httpd_config/httpd2.conf | 280 + .../python/google/httpd_config/httpd2.pem | 41 + .../google/httpd_config/httpd2_linux.conf | 144 + .../google/httpd_config/httpd2_mac.conf | 229 + .../python/google/httpd_config/mime.types | 599 + .../google/httpd_config/root_ca_cert.crt | 35 + .../trunk/tools/python/google/httpd_utils.py | 200 + .../tools/python/google/logging_utils.py | 82 + .../trunk/tools/python/google/path_utils.py | 84 + .../tools/python/google/platform_utils.py | 23 + .../python/google/platform_utils_linux.py | 148 + .../tools/python/google/platform_utils_mac.py | 143 + .../tools/python/google/platform_utils_win.py | 194 + .../tools/python/google/process_utils.py | 221 + media/webrtc/trunk/tools/python_charts/OWNERS | 1 + media/webrtc/trunk/tools/python_charts/README | 41 + .../webrtc/trunk/tools/python_charts/app.yaml | 9 + .../trunk/tools/python_charts/data/vp8_hw.py | 49 + .../trunk/tools/python_charts/data/vp8_sw.py | 49 + .../trunk/tools/python_charts/gviz_api.py | 1 + .../templates/chart_page_template.html | 90 + .../tools/python_charts/webrtc/__init__.py | 8 + .../tools/python_charts/webrtc/data_helper.py | 183 + .../python_charts/webrtc/data_helper_test.py | 115 + .../trunk/tools/python_charts/webrtc/main.py | 157 + .../trunk/tools/quality_tracking/OWNERS | 2 + .../trunk/tools/quality_tracking/README | 31 + .../trunk/tools/quality_tracking/constants.py | 37 + .../dashboard/add_build_status_data.py | 171 + .../dashboard/add_coverage_data.py | 90 + .../tools/quality_tracking/dashboard/app.yaml | 24 + .../quality_tracking/dashboard/dashboard.py | 51 + .../quality_tracking/dashboard/gaeunit.py | 1 + .../quality_tracking/dashboard/gviz_api.py | 1 + .../quality_tracking/dashboard/index.yaml | 16 + .../quality_tracking/dashboard/lkgr_page.py | 31 + .../dashboard/load_build_status.py | 130 + .../dashboard/load_coverage.py | 47 + .../tools/quality_tracking/dashboard/main.py | 29 + .../dashboard/oauth_post_request_handler.py | 68 + .../static/google403c95edcde16425.html | 1 + .../dashboard/stylesheets/stylesheet.css | 45 + .../templates/dashboard_template.html | 100 + .../dashboard/test/load_build_status_test.py | 114 + .../quality_tracking/dashboard_connection.py | 134 + .../trunk/tools/quality_tracking/oauth2 | 1 + .../request_oauth_permission.py | 142 + .../tools/quality_tracking/tgrid_parser.py | 94 + .../quality_tracking/tgrid_parser_test.py | 593 + .../quality_tracking/track_build_status.py | 75 + .../track_build_status_test.py | 46 + .../tools/quality_tracking/track_coverage.py | 160 + .../trunk/tools/refactoring/addfileheader.py | 163 + .../trunk/tools/refactoring/filemanagement.py | 72 + .../tools/refactoring/fixincludeguards.py | 145 + .../trunk/tools/refactoring/fixnames.py | 387 + .../trunk/tools/refactoring/integratefiles.py | 100 + .../trunk/tools/refactoring/p4commands.py | 31 + .../trunk/tools/refactoring/removetrace.py | 161 + .../tools/refactoring/stringmanipulation.py | 303 + media/webrtc/trunk/tools/refactoring/trim.py | 29 + .../webrtc/trunk/tools/refactoring/trimall.py | 59 + media/webrtc/trunk/tools/resources/OWNERS | 2 + media/webrtc/trunk/tools/resources/update.py | 176 + .../valgrind-webrtc/memcheck/suppressions.txt | 30 + .../memcheck/suppressions_mac.txt | 323 + .../tools/valgrind-webrtc/webrtc_tests.py | 156 + .../tools/valgrind-webrtc/webrtc_tests.sh | 102 + media/webrtc/trunk/tools/valgrind/OWNERS | 5 + .../trunk/tools/valgrind/asan/asan_test.py | 57 + .../trunk/tools/valgrind/asan/asan_wrapper.sh | 16 + .../trunk/tools/valgrind/asan/chrome_tests.py | 463 + .../trunk/tools/valgrind/asan/chrome_tests.sh | 8 + .../tools/valgrind/browser_wrapper_win.py | 49 + .../trunk/tools/valgrind/chrome_tests.bat | 69 + .../trunk/tools/valgrind/chrome_tests.py | 534 + .../trunk/tools/valgrind/chrome_tests.sh | 84 + media/webrtc/trunk/tools/valgrind/common.py | 238 + .../webrtc/trunk/tools/valgrind/drmemory.bat | 5 + .../tools/valgrind/drmemory/PRESUBMIT.py | 32 + .../tools/valgrind/drmemory/suppressions.txt | 287 + .../valgrind/drmemory/suppressions_full.txt | 924 + .../trunk/tools/valgrind/drmemory_analyze.py | 196 + .../webrtc/trunk/tools/valgrind/gdb_helper.py | 87 + .../trunk/tools/valgrind/gtest_exclude/OWNERS | 1 + .../base_unittests.gtest-asan.txt | 3 + .../base_unittests.gtest-drmemory_win32.txt | 13 + .../base_unittests.gtest-tsan.txt | 10 + .../base_unittests.gtest-tsan_mac.txt | 2 + .../base_unittests.gtest-tsan_win32.txt | 20 + .../gtest_exclude/base_unittests.gtest.txt | 22 + .../base_unittests.gtest_mac.txt | 12 + .../base_unittests.gtest_win32.txt | 12 + .../content_unittests.gtest_mac.txt | 3 + .../crypto_unittests.gtest-tsan_win32.txt | 2 + .../gfx_unittests.gtest-tsan.txt | 2 + .../interactive_ui_tests.gtest.txt | 21 + .../ipc_tests.gtest-drmemory_win32.txt | 2 + .../ipc_tests.gtest-tsan_win32.txt | 2 + .../gtest_exclude/ipc_tests.gtest.txt | 6 + .../media_unittests.gtest-drmemory_win32.txt | 0 .../media_unittests.gtest-tsan_mac.txt | 3 + .../media_unittests.gtest-tsan_win32.txt | 3 + .../gtest_exclude/media_unittests.gtest.txt | 6 + .../media_unittests.gtest_mac.txt | 0 .../net_unittests.gtest-drmemory_win32.txt | 29 + .../net_unittests.gtest-memcheck.txt | 19 + .../net_unittests.gtest-tsan.txt | 24 + .../net_unittests.gtest-tsan_mac.txt | 11 + .../net_unittests.gtest-tsan_win32.txt | 43 + .../gtest_exclude/net_unittests.gtest.txt | 10 + .../net_unittests.gtest_linux.txt | 3 + .../gtest_exclude/net_unittests.gtest_mac.txt | 6 + ...rinting_unittests.gtest-drmemory_win32.txt | 3 + ...emoting_unittests.gtest-drmemory_win32.txt | 3 + .../remoting_unittests.gtest-tsan.txt | 7 + .../remoting_unittests.gtest-tsan_win32.txt | 6 + .../remoting_unittests.gtest.txt | 2 + .../safe_browsing_tests.gtest_mac.txt | 2 + .../valgrind/gtest_exclude/suppressions.txt | 39 + .../gtest_exclude/test_shell_tests.gtest.txt | 8 + .../gtest_exclude/ui_tests.gtest-tsan.txt | 34 + .../gtest_exclude/ui_tests.gtest-tsan_mac.txt | 2 + .../valgrind/gtest_exclude/ui_tests.gtest.txt | 151 + .../gtest_exclude/ui_tests.gtest_linux.txt | 22 + .../gtest_exclude/ui_tests.gtest_mac.txt | 276 + .../unit_tests.gtest-drmemory_win32.txt | 27 + .../gtest_exclude/unit_tests.gtest-tsan.txt | 6 + .../unit_tests.gtest-tsan_mac.txt | 5 + .../gtest_exclude/unit_tests.gtest.txt | 25 + .../gtest_exclude/unit_tests.gtest_linux.txt | 8 + .../gtest_exclude/unit_tests.gtest_mac.txt | 39 + .../trunk/tools/valgrind/locate_valgrind.sh | 76 + .../trunk/tools/valgrind/memcheck/OWNERS | 1 + .../tools/valgrind/memcheck/PRESUBMIT.py | 81 + .../tools/valgrind/memcheck/suppressions.txt | 5823 +++ .../valgrind/memcheck/suppressions_mac.txt | 2360 + .../trunk/tools/valgrind/memcheck_analyze.py | 634 + media/webrtc/trunk/tools/valgrind/regrind.sh | 139 + .../tools/valgrind/reliability/url_list.txt | 11 + .../trunk/tools/valgrind/shard-all-tests.sh | 129 + .../trunk/tools/valgrind/suppressions.py | 916 + .../trunk/tools/valgrind/test_suppressions.py | 132 + media/webrtc/trunk/tools/valgrind/tsan/OWNERS | 1 + .../trunk/tools/valgrind/tsan/PRESUBMIT.py | 32 + .../trunk/tools/valgrind/tsan/ignores.txt | 161 + .../trunk/tools/valgrind/tsan/ignores_mac.txt | 38 + .../tools/valgrind/tsan/ignores_win32.txt | 36 + .../tools/valgrind/tsan/suppressions.txt | 797 + .../tools/valgrind/tsan/suppressions_mac.txt | 233 + .../valgrind/tsan/suppressions_win32.txt | 141 + .../trunk/tools/valgrind/tsan_analyze.py | 278 + media/webrtc/trunk/tools/valgrind/valgrind.sh | 116 + .../trunk/tools/valgrind/valgrind_test.py | 1206 + .../webrtc/trunk/tools/valgrind/waterfall.sh | 173 + media/webrtc/trunk/tools/win/supalink/README | 17 + .../tools/win/supalink/check_installed.py | 32 + .../tools/win/supalink/install_supalink.py | 108 + .../trunk/tools/win/supalink/supalink.cpp | 196 + media/webrtc/webrtc_version.h | 2 + 3166 files changed, 782367 insertions(+) create mode 100644 media/webrtc/.gclient create mode 100644 media/webrtc/.gclient_entries create mode 100644 media/webrtc/trunk/DEPS create mode 100644 media/webrtc/trunk/Makefile create mode 100644 media/webrtc/trunk/OWNERS create mode 100644 media/webrtc/trunk/README create mode 100644 media/webrtc/trunk/build/README.chromium create mode 100644 media/webrtc/trunk/build/all.gyp create mode 100644 media/webrtc/trunk/build/all_android.gyp create mode 100755 media/webrtc/trunk/build/android/android_commands.py create mode 100644 media/webrtc/trunk/build/android/base_test_runner.py create mode 100755 media/webrtc/trunk/build/android/buildbot.sh create mode 100755 media/webrtc/trunk/build/android/buildbot_functions.sh create mode 100755 media/webrtc/trunk/build/android/buildbot_fyi.sh create mode 100755 media/webrtc/trunk/build/android/buildbot_main.sh create mode 100755 media/webrtc/trunk/build/android/buildbot_try_compile.sh create mode 100755 media/webrtc/trunk/build/android/buildbot_try_compile_test.sh create mode 100644 media/webrtc/trunk/build/android/chrome_test_server_spawner.py create mode 100644 media/webrtc/trunk/build/android/cmd_helper.py create mode 100644 media/webrtc/trunk/build/android/debug_info.py create mode 100755 media/webrtc/trunk/build/android/emulator.py create mode 100755 media/webrtc/trunk/build/android/envsetup.sh create mode 100644 media/webrtc/trunk/build/android/flag_changer.py create mode 100644 media/webrtc/trunk/build/android/gtest_filter/base_unittests_disabled create mode 100644 media/webrtc/trunk/build/android/gtest_filter/base_unittests_emulator_additional_disabled create mode 100644 media/webrtc/trunk/build/android/gtest_filter/ipc_tests_disabled create mode 100644 media/webrtc/trunk/build/android/gtest_filter/net_unittests_disabled create mode 100755 media/webrtc/trunk/build/android/lighttpd_server.py create mode 100644 media/webrtc/trunk/build/android/perf_tests_helper.py create mode 100755 media/webrtc/trunk/build/android/run_tests.py create mode 100644 media/webrtc/trunk/build/android/run_tests_helper.py create mode 100644 media/webrtc/trunk/build/android/single_test_runner.py create mode 100644 media/webrtc/trunk/build/android/system.gyp create mode 100644 media/webrtc/trunk/build/android/test_package.py create mode 100644 media/webrtc/trunk/build/android/test_package_executable.py create mode 100644 media/webrtc/trunk/build/android/test_result.py create mode 100644 media/webrtc/trunk/build/android/valgrind_tools.py create mode 100755 media/webrtc/trunk/build/apply_locales.py create mode 100644 media/webrtc/trunk/build/asan.saves create mode 100755 media/webrtc/trunk/build/branding_value.sh create mode 100644 media/webrtc/trunk/build/build_config.h create mode 100644 media/webrtc/trunk/build/common.croc create mode 100644 media/webrtc/trunk/build/common.gypi create mode 100755 media/webrtc/trunk/build/compiler_version.py create mode 100644 media/webrtc/trunk/build/cp.py create mode 100755 media/webrtc/trunk/build/dir_exists.py create mode 100755 media/webrtc/trunk/build/download_nacl_toolchains.py create mode 100755 media/webrtc/trunk/build/escape_unicode.py create mode 100755 media/webrtc/trunk/build/extract_from_cab.py create mode 100644 media/webrtc/trunk/build/filename_rules.gypi create mode 100644 media/webrtc/trunk/build/grit_action.gypi create mode 100644 media/webrtc/trunk/build/grit_target.gypi create mode 100755 media/webrtc/trunk/build/gyp_chromium create mode 100755 media/webrtc/trunk/build/install-build-deps-android.sh create mode 100755 media/webrtc/trunk/build/install-build-deps.sh create mode 100755 media/webrtc/trunk/build/install-chroot.sh create mode 100644 media/webrtc/trunk/build/internal/README.chromium create mode 100644 media/webrtc/trunk/build/internal/release_defaults.gypi create mode 100644 media/webrtc/trunk/build/internal/release_impl.gypi create mode 100644 media/webrtc/trunk/build/internal/release_impl_official.gypi create mode 100644 media/webrtc/trunk/build/json_schema_compile.gypi create mode 100644 media/webrtc/trunk/build/linux/chrome_linux.croc create mode 100755 media/webrtc/trunk/build/linux/dump_app_syms create mode 100755 media/webrtc/trunk/build/linux/pkg-config-wrapper create mode 100755 media/webrtc/trunk/build/linux/python_arch.sh create mode 100755 media/webrtc/trunk/build/linux/rewrite_dirs.py create mode 100644 media/webrtc/trunk/build/linux/system.gyp create mode 100644 media/webrtc/trunk/build/mac/OWNERS create mode 100755 media/webrtc/trunk/build/mac/change_mach_o_flags.py create mode 100755 media/webrtc/trunk/build/mac/change_mach_o_flags_from_xcode.sh create mode 100644 media/webrtc/trunk/build/mac/chrome_mac.croc create mode 100755 media/webrtc/trunk/build/mac/strip_from_xcode create mode 100755 media/webrtc/trunk/build/mac/strip_save_dsym create mode 100644 media/webrtc/trunk/build/nocompile.gypi create mode 100644 media/webrtc/trunk/build/output_dll_copy.rules create mode 100644 media/webrtc/trunk/build/precompile.cc create mode 100644 media/webrtc/trunk/build/precompile.h create mode 100644 media/webrtc/trunk/build/protoc.gypi create mode 100644 media/webrtc/trunk/build/release.gypi create mode 100644 media/webrtc/trunk/build/sanitize-mac-build-log.sed create mode 100755 media/webrtc/trunk/build/sanitize-mac-build-log.sh create mode 100644 media/webrtc/trunk/build/sanitize-win-build-log.sed create mode 100755 media/webrtc/trunk/build/sanitize-win-build-log.sh create mode 100644 media/webrtc/trunk/build/some.gyp create mode 100644 media/webrtc/trunk/build/temp_gyp/README.chromium create mode 100644 media/webrtc/trunk/build/temp_gyp/googleurl.gyp create mode 100644 media/webrtc/trunk/build/temp_gyp/pdfsqueeze.gyp create mode 100644 media/webrtc/trunk/build/use_skia_on_mac.gypi create mode 100644 media/webrtc/trunk/build/util/build_util.gyp create mode 100755 media/webrtc/trunk/build/util/lastchange.py create mode 100644 media/webrtc/trunk/build/whitespace_file.txt create mode 100644 media/webrtc/trunk/build/win/chrome_win.croc create mode 100644 media/webrtc/trunk/build/win/install-build-deps.py create mode 100644 media/webrtc/trunk/build/win/setup_cygwin_mount.py create mode 100644 media/webrtc/trunk/build/win_precompile.gypi create mode 100644 media/webrtc/trunk/peerconnection.Makefile create mode 100644 media/webrtc/trunk/peerconnection.gyp create mode 100644 media/webrtc/trunk/peerconnection_client.target.mk create mode 100644 media/webrtc/trunk/peerconnection_server.target.mk create mode 100644 media/webrtc/trunk/src/LICENSE create mode 100644 media/webrtc/trunk/src/LICENSE_THIRD_PARTY create mode 100644 media/webrtc/trunk/src/PATENTS create mode 100644 media/webrtc/trunk/src/README.chromium create mode 100644 media/webrtc/trunk/src/build/common.gypi create mode 100644 media/webrtc/trunk/src/build/merge_libs.gyp create mode 100644 media/webrtc/trunk/src/build/merge_libs.py create mode 100644 media/webrtc/trunk/src/build/no_op.cc create mode 100644 media/webrtc/trunk/src/build/protoc.gypi create mode 100644 media/webrtc/trunk/src/common_audio/OWNERS create mode 100644 media/webrtc/trunk/src/common_audio/common_audio.Makefile create mode 100644 media/webrtc/trunk/src/common_audio/common_audio.gyp create mode 100644 media/webrtc/trunk/src/common_audio/resampler.target.mk create mode 100644 media/webrtc/trunk/src/common_audio/resampler/Android.mk create mode 100644 media/webrtc/trunk/src/common_audio/resampler/include/resampler.h create mode 100644 media/webrtc/trunk/src/common_audio/resampler/resampler.cc create mode 100644 media/webrtc/trunk/src/common_audio/resampler/resampler.gypi create mode 100644 media/webrtc/trunk/src/common_audio/resampler/resampler_unittest.cc create mode 100644 media/webrtc/trunk/src/common_audio/resampler_unittests.target.mk create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing.target.mk create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/Android.mk create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/auto_corr_to_refl_coef.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/auto_correlation.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/complex_bit_reverse.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/complex_bit_reverse_arm.s create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/complex_fft.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/copy_set_operations.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/cross_correlation.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/cross_correlation_neon.s create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/division_operations.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/dot_product_with_scale.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/downsample_fast.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/downsample_fast_neon.s create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/energy.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/filter_ar.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/filter_ar_fast_q12.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/filter_ar_fast_q12_armv7.s create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/filter_ma_fast_q12.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/get_hanning_window.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/get_scaling_square.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/ilbc_specific_functions.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/include/signal_processing_library.h create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/include/spl_inl.h create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/include/spl_inl_armv7.h create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/levinson_durbin.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/lpc_to_refl_coef.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/min_max_operations.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/min_max_operations_neon.s create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/randomization_functions.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/refl_coef_to_lpc.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/resample.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/resample_48khz.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/resample_by_2.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/resample_by_2_internal.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/resample_by_2_internal.h create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/resample_fractional.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/signal_processing.gypi create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/signal_processing_unittest.cc create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/spl_sqrt.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/spl_sqrt_floor.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/spl_sqrt_floor.s create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/spl_version.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/splitting_filter.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/sqrt_of_one_minus_x_squared.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/vector_scaling_operations.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/vector_scaling_operations_neon.s create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/webrtc_fft_t_1024_8.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing/webrtc_fft_t_rad.c create mode 100644 media/webrtc/trunk/src/common_audio/signal_processing_unittests.target.mk create mode 100644 media/webrtc/trunk/src/common_audio/vad.target.mk create mode 100644 media/webrtc/trunk/src/common_audio/vad/Android.mk create mode 100644 media/webrtc/trunk/src/common_audio/vad/include/webrtc_vad.h create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad.gypi create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_core.c create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_core.h create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_core_unittest.cc create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_filterbank.c create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_filterbank.h create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_filterbank_unittest.cc create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_gmm.c create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_gmm.h create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_gmm_unittest.cc create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_sp.c create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_sp.h create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_sp_unittest.cc create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_unittest.cc create mode 100644 media/webrtc/trunk/src/common_audio/vad/vad_unittest.h create mode 100644 media/webrtc/trunk/src/common_audio/vad/webrtc_vad.c create mode 100644 media/webrtc/trunk/src/common_audio/vad_unittests.target.mk create mode 100644 media/webrtc/trunk/src/common_types.h create mode 100644 media/webrtc/trunk/src/common_video/OWNERS create mode 100644 media/webrtc/trunk/src/common_video/common_video.Makefile create mode 100644 media/webrtc/trunk/src/common_video/common_video.gyp create mode 100644 media/webrtc/trunk/src/common_video/interface/video_image.h create mode 100644 media/webrtc/trunk/src/common_video/jpeg/Android.mk create mode 100644 media/webrtc/trunk/src/common_video/jpeg/data_manager.cc create mode 100644 media/webrtc/trunk/src/common_video/jpeg/data_manager.h create mode 100644 media/webrtc/trunk/src/common_video/jpeg/include/jpeg.h create mode 100644 media/webrtc/trunk/src/common_video/jpeg/jpeg.cc create mode 100644 media/webrtc/trunk/src/common_video/jpeg/jpeg.gypi create mode 100644 media/webrtc/trunk/src/common_video/jpeg/jpeg_unittest.cc create mode 100644 media/webrtc/trunk/src/common_video/jpeg_test.target.mk create mode 100644 media/webrtc/trunk/src/common_video/libyuv/Android.mk create mode 100644 media/webrtc/trunk/src/common_video/libyuv/include/libyuv.h create mode 100644 media/webrtc/trunk/src/common_video/libyuv/include/scaler.h create mode 100644 media/webrtc/trunk/src/common_video/libyuv/libyuv.cc create mode 100644 media/webrtc/trunk/src/common_video/libyuv/libyuv.gypi create mode 100644 media/webrtc/trunk/src/common_video/libyuv/libyuv_unittest.cc create mode 100644 media/webrtc/trunk/src/common_video/libyuv/scaler.cc create mode 100644 media/webrtc/trunk/src/common_video/libyuv/scaler_unittest.cc create mode 100644 media/webrtc/trunk/src/common_video/libyuv_unittests.target.mk create mode 100644 media/webrtc/trunk/src/common_video/webrtc_jpeg.target.mk create mode 100644 media/webrtc/trunk/src/common_video/webrtc_libyuv.target.mk create mode 100644 media/webrtc/trunk/src/engine_configurations.h create mode 100644 media/webrtc/trunk/src/modules/CNG.target.mk create mode 100644 media/webrtc/trunk/src/modules/G711.target.mk create mode 100644 media/webrtc/trunk/src/modules/G722.target.mk create mode 100644 media/webrtc/trunk/src/modules/G722Test.target.mk create mode 100644 media/webrtc/trunk/src/modules/NetEq.target.mk create mode 100644 media/webrtc/trunk/src/modules/NetEqRTPplay.target.mk create mode 100644 media/webrtc/trunk/src/modules/NetEqTestTools.target.mk create mode 100644 media/webrtc/trunk/src/modules/PCM16B.target.mk create mode 100644 media/webrtc/trunk/src/modules/RTPanalyze.target.mk create mode 100644 media/webrtc/trunk/src/modules/RTPcat.target.mk create mode 100644 media/webrtc/trunk/src/modules/RTPchange.target.mk create mode 100644 media/webrtc/trunk/src/modules/RTPencode.target.mk create mode 100644 media/webrtc/trunk/src/modules/RTPjitter.target.mk create mode 100644 media/webrtc/trunk/src/modules/RTPtimeshift.target.mk create mode 100644 media/webrtc/trunk/src/modules/aec.target.mk create mode 100644 media/webrtc/trunk/src/modules/aec_sse2.target.mk create mode 100644 media/webrtc/trunk/src/modules/aecm.target.mk create mode 100644 media/webrtc/trunk/src/modules/agc.target.mk create mode 100644 media/webrtc/trunk/src/modules/apm_util.target.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/OWNERS create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/cng/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/cng/cng.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/cng/cng_helpfuns.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/cng/cng_helpfuns.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/cng/cng_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/cng/include/webrtc_cng.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/cng/test/CNG.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/cng/test/StdAfx.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/cng/test/StdAfx.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/cng/webrtc_cng.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g711/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g711/g711.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g711/g711.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g711/g711.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g711/g711_interface.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g711/g711_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g711/include/g711_interface.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g711/test/testG711.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g722/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g722/g722.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g722/g722_decode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g722/g722_enc_dec.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g722/g722_encode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g722/g722_interface.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g722/g722_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g722/include/g722_interface.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/g722/test/testG722.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/interface/isacfix.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/arith_routines.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/arith_routines_hist.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/arith_routines_logist.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/arith_routins.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/bandwidth_estimator.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/bandwidth_estimator.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/codec.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/decode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/decode_bwe.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/decode_plc.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/encode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/entropy_coding.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/entropy_coding.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/fft.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/fft.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/filterbank_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/filterbank_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/filterbanks.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/filters.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/filters_neon.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/initialize.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/isacfix.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/isacfix.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/lattice.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/lattice_armv7.S create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/lattice_c.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/lattice_neon.S create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/lpc_masking_model.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/lpc_masking_model.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/lpc_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/lpc_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/pitch_estimator.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/pitch_estimator.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/pitch_filter.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/pitch_gain_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/pitch_gain_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/pitch_lag_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/pitch_lag_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/settings.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/spectrum_ar_model_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/spectrum_ar_model_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/structs.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/source/transform.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/ISACHist.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/Isac_test.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/ChannelFiles.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/InputFiles.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/InputFilesFew.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/ListOfTestCases.xls create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/diffiSAC.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/diffiSACPLC.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/runiSACLongtest.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/runiSACNB.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/runiSACPLC.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/runiSACRate.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/runiSACfault.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/QA/runiSACfixfloat.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/kenny.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/fix/test/test_iSACfixfloat.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/isac_test.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/isacfix_test.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/interface/isac.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/arith_routines.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/arith_routines.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/arith_routines_hist.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/arith_routines_logist.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/bandwidth_estimator.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/bandwidth_estimator.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/codec.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/crc.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/crc.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/decode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/decode_bwe.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/encode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/encode_lpc_swb.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/encode_lpc_swb.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/entropy_coding.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/entropy_coding.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/fft.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/fft.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/filter_functions.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/filterbank_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/filterbank_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/filterbanks.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/intialize.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/isac.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/isac.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/lattice.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/lpc_analysis.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/lpc_analysis.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/lpc_gain_swb_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/lpc_gain_swb_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/lpc_shape_swb12_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/lpc_shape_swb12_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/lpc_shape_swb16_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/lpc_shape_swb16_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/lpc_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/lpc_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/os_specific_inline.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/pitch_estimator.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/pitch_estimator.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/pitch_filter.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/pitch_gain_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/pitch_gain_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/pitch_lag_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/pitch_lag_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/settings.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/spectrum_ar_model_tables.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/spectrum_ar_model_tables.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/structs.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/source/transform.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/test/QA/runiSACLongtest.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/test/QA/runiSACfault.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/test/QA/runiSACfixfloat.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/test/ReleaseTest-API/ReleaseTest-API.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/test/SwitchingSampRate/SwitchingSampRate.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/test/debugUtility.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/test/simpleKenny.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/util/utility.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/iSAC/main/util/utility.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/abs_quant.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/abs_quant.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/abs_quant_loop.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/abs_quant_loop.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/augmented_cb_corr.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/augmented_cb_corr.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/bw_expand.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/bw_expand.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_construct.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_construct.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_mem_energy.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_mem_energy.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_mem_energy_augmentation.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_mem_energy_augmentation.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_mem_energy_calc.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_mem_energy_calc.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_search.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_search.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_search_core.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_search_core.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_update_best_index.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/cb_update_best_index.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/chebyshev.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/chebyshev.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/comp_corr.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/comp_corr.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/complexityMeasures.m create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/constants.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/constants.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/create_augmented_vec.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/create_augmented_vec.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/decode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/decode.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/decode_residual.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/decode_residual.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/decoder_interpolate_lsf.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/decoder_interpolate_lsf.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/defines.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/do_plc.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/do_plc.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/documentation/rfc3951.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/documentation/rfc3952.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/encode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/encode.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/energy_inverse.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/energy_inverse.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/enh_upsample.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/enh_upsample.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/enhancer.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/enhancer.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/enhancer_interface.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/enhancer_interface.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/filtered_cb_vecs.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/filtered_cb_vecs.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/frame_classify.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/frame_classify.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/gain_dequant.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/gain_dequant.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/gain_quant.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/gain_quant.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/get_cd_vec.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/get_cd_vec.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/get_lsp_poly.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/get_lsp_poly.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/get_sync_seq.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/get_sync_seq.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/hp_input.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/hp_input.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/hp_output.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/hp_output.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/ilbc.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/ilbc.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/index_conv_dec.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/index_conv_dec.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/index_conv_enc.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/index_conv_enc.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/init_decode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/init_decode.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/init_encode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/init_encode.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/interface/ilbc.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/interpolate.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/interpolate.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/interpolate_samples.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/interpolate_samples.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lpc_encode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lpc_encode.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsf_check.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsf_check.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsf_interpolate_to_poly_dec.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsf_interpolate_to_poly_dec.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsf_interpolate_to_poly_enc.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsf_interpolate_to_poly_enc.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsf_to_lsp.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsf_to_lsp.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsf_to_poly.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsf_to_poly.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsp_to_lsf.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/lsp_to_lsf.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/my_corr.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/my_corr.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/nearest_neighbor.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/nearest_neighbor.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/pack_bits.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/pack_bits.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/poly_to_lsf.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/poly_to_lsf.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/poly_to_lsp.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/poly_to_lsp.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/refiner.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/refiner.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/simple_interpolate_lsf.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/simple_interpolate_lsf.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/simple_lpc_analysis.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/simple_lpc_analysis.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/simple_lsf_dequant.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/simple_lsf_dequant.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/simple_lsf_quant.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/simple_lsf_quant.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/smooth.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/smooth.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/smooth_out_data.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/smooth_out_data.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/sort_sq.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/sort_sq.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/split_vq.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/split_vq.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/state_construct.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/state_construct.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/state_search.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/state_search.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/swap_bytes.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/swap_bytes.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/test/iLBC_test.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/test/iLBC_testLib.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/test/iLBC_testprogram.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/test/iLBCtestscript.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/unpack_bits.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/unpack_bits.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/vq3.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/vq3.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/vq4.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/vq4.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/window32_w32.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/window32_w32.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/xcorr_coef.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/ilbc/xcorr_coef.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/pcm16b/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/pcm16b/include/pcm16b.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/pcm16b/pcm16b.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/pcm16b/pcm16b.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_coding/codecs/pcm16b/pcm16b_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/OWNERS create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/interface/audio_coding_module.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/interface/audio_coding_module_typedefs.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_amr.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_amr.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_amrwb.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_amrwb.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_celt.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_celt.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_cng.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_cng.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_codec_database.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_codec_database.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_common_defs.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_dtmf_detection.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_dtmf_detection.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_dtmf_playout.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_dtmf_playout.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_g722.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_g722.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_g7221.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_g7221.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_g7221c.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_g7221c.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_g729.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_g729.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_g7291.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_g7291.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_generic_codec.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_generic_codec.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_gsmfr.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_gsmfr.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_ilbc.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_ilbc.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_isac.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_isac.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_isac_macros.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_neteq.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_neteq.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_neteq_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_opus.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_opus.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_pcm16b.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_pcm16b.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_pcma.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_pcma.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_pcmu.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_pcmu.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_red.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_red.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_resampler.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_resampler.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_speex.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/acm_speex.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/audio_coding_module.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/audio_coding_module.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/audio_coding_module_impl.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/source/audio_coding_module_impl.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/ACMTest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/ACMTest.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/APITest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/APITest.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/Channel.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/Channel.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/EncodeDecodeTest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/EncodeDecodeTest.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/PCMFile.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/PCMFile.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/RTPFile.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/RTPFile.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/SpatialAudio.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/SpatialAudio.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TestAllCodecs.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TestAllCodecs.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TestFEC.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TestFEC.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TestStereo.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TestStereo.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TestVADDTX.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TestVADDTX.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/Tester.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TimedTrace.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TimedTrace.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TwoWayCommunication.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/TwoWayCommunication.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/iSACTest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/iSACTest.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/utility.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/main/test/utility.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/OWNERS create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/accelerate.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/automode.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/automode.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/bgn_update.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/buffer_stats.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/bufstats_decision.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/cng_internal.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/codec_db.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/codec_db.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/codec_db_defines.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/correlator.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/delay_logging.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/dsp.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/dsp.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/dsp_helpfunctions.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/dsp_helpfunctions.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/dtmf_buffer.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/dtmf_buffer.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/dtmf_tonegen.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/dtmf_tonegen.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/expand.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/interface/webrtc_neteq.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/interface/webrtc_neteq_help_macros.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/interface/webrtc_neteq_internal.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/mcu.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/mcu_address_init.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/mcu_dsp_common.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/mcu_dsp_common.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/mcu_reset.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/merge.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/min_distortion.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/mix_voice_unvoice.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/mute_signal.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/neteq.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/neteq_defines.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/neteq_error_codes.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/neteq_statistics.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/normal.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/packet_buffer.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/packet_buffer.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/peak_detection.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/preemptive_expand.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/random_vector.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/recin.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/recout.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/rtcp.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/rtcp.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/rtp.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/rtp.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/set_fs.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/signal_mcu.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/split_and_insert.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/NETEQTEST_CodecClass.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/NETEQTEST_CodecClass.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/NETEQTEST_DummyRTPpacket.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/NETEQTEST_DummyRTPpacket.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/NETEQTEST_NetEQClass.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/NETEQTEST_NetEQClass.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/NETEQTEST_RTPpacket.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/NETEQTEST_RTPpacket.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/NetEqRTPplay.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/PayloadTypes.h create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/RTPanalyze.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/RTPcat.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/RTPchange.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/RTPencode.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/RTPjitter.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/RTPtimeshift.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/delay_tool/parse_delay_file.m create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/delay_tool/plot_neteq_delay.m create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/ptypes.txt create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/test/rtp_to_text.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/unmute_signal.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/webrtc_neteq.c create mode 100644 media/webrtc/trunk/src/modules/audio_coding/neteq/webrtc_neteq_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_coding_module.target.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding_module_test.target.mk create mode 100644 media/webrtc/trunk/src/modules/audio_coding_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer.target.mk create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/OWNERS create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/interface/audio_conference_mixer.h create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/interface/audio_conference_mixer_defines.h create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/audio_conference_mixer.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/audio_conference_mixer_impl.h create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/audio_conference_mixer_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/audio_frame_manipulator.cc create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/audio_frame_manipulator.h create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/level_indicator.cc create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/level_indicator.h create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/memory_pool.h create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/memory_pool_posix.h create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/memory_pool_win.h create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/time_scheduler.cc create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/source/time_scheduler.h create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/test/FunctionTest/functionTest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer/test/FunctionTest/functionTest.h create mode 100644 media/webrtc/trunk/src/modules/audio_conference_mixer_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/audio_device.target.mk create mode 100644 media/webrtc/trunk/src/modules/audio_device/OWNERS create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/interface/audio_device.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/interface/audio_device_defines.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/android/audio_device_android_jni.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/android/audio_device_android_jni.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/android/audio_device_android_opensles.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/android/audio_device_android_opensles.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/android/audio_device_utility_android.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/android/audio_device_utility_android.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/android/org/webrtc/voiceengine/AudioDeviceAndroid.java create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/audio_device.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/audio_device_buffer.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/audio_device_buffer.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/audio_device_config.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/audio_device_generic.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/audio_device_generic.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/audio_device_impl.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/audio_device_impl.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/audio_device_utility.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/audio_device_utility.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/dummy/audio_device_dummy.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/dummy/audio_device_dummy.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/dummy/audio_device_utility_dummy.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/dummy/audio_device_utility_dummy.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/alsasymboltable_linux.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/alsasymboltable_linux.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/audio_device_alsa_linux.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/audio_device_alsa_linux.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/audio_device_pulse_linux.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/audio_device_pulse_linux.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/audio_device_utility_linux.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/audio_device_utility_linux.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/audio_mixer_manager_alsa_linux.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/audio_mixer_manager_alsa_linux.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/audio_mixer_manager_pulse_linux.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/audio_mixer_manager_pulse_linux.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/latebindingsymboltable_linux.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/latebindingsymboltable_linux.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/pulseaudiosymboltable_linux.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/linux/pulseaudiosymboltable_linux.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/mac/audio_device_mac.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/mac/audio_device_mac.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/mac/audio_device_utility_mac.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/mac/audio_device_utility_mac.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/mac/audio_mixer_manager_mac.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/mac/audio_mixer_manager_mac.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/mac/portaudio/pa_memorybarrier.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/mac/portaudio/pa_ringbuffer.c create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/mac/portaudio/pa_ringbuffer.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/win/audio_device_core_win.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/win/audio_device_core_win.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/win/audio_device_utility_win.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/win/audio_device_utility_win.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/win/audio_device_wave_win.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/win/audio_device_wave_win.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/win/audio_mixer_manager_win.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/source/win/audio_mixer_manager_win.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/README.txt create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/.classpath create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/.project create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/AndroidManifest.xml create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/default.properties create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/gen/org/webrtc/voiceengine/test/R.java create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/jni/audio_device_android_test.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/jni/org_webrtc_voiceengine_test_AudioDeviceAndroidTest.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/res/drawable/icon.png create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/res/layout/main.xml create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/res/values/strings.xml create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/src/org/webrtc/voiceengine/AudioDeviceAndroid.java create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/android/audio_device_android_test/src/org/webrtc/voiceengine/test/AudioDeviceAndroidTest.java create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/audio_device_test_api.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/audio_device_test_defines.h create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/audio_device_test_func.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/func_test_manager.cc create mode 100644 media/webrtc/trunk/src/modules/audio_device/main/test/func_test_manager.h create mode 100644 media/webrtc/trunk/src/modules/audio_device_test_api.target.mk create mode 100644 media/webrtc/trunk/src/modules/audio_device_test_func.target.mk create mode 100644 media/webrtc/trunk/src/modules/audio_processing.target.mk create mode 100644 media/webrtc/trunk/src/modules/audio_processing/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_processing/OWNERS create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/aec.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/aec_core.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/aec_core.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/aec_core_sse2.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/aec_rdft.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/aec_rdft.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/aec_rdft_sse2.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/aec_resampler.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/aec_resampler.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/echo_cancellation.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/echo_cancellation_internal.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/include/echo_cancellation.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aec/system_delay_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aecm/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aecm/aecm.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aecm/aecm_core.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aecm/aecm_core.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aecm/aecm_core_neon.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aecm/echo_control_mobile.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/aecm/include/echo_control_mobile.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/agc/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_processing/agc/agc.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_processing/agc/analog_agc.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/agc/analog_agc.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/agc/digital_agc.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/agc/digital_agc.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/agc/include/gain_control.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/apm_tests.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_processing/audio_buffer.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/audio_buffer.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/audio_processing.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_processing/audio_processing_impl.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/audio_processing_impl.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/debug.proto create mode 100644 media/webrtc/trunk/src/modules/audio_processing/echo_cancellation_impl.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/echo_cancellation_impl.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/echo_control_mobile_impl.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/echo_control_mobile_impl.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/gain_control_impl.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/gain_control_impl.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/high_pass_filter_impl.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/high_pass_filter_impl.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/include/audio_processing.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/level_estimator_impl.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/level_estimator_impl.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/noise_suppression_impl.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/noise_suppression_impl.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/defines.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/include/noise_suppression.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/include/noise_suppression_x.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/noise_suppression.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/noise_suppression_x.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/ns.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/ns_core.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/ns_core.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/nsx_core.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/nsx_core.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/nsx_core_neon.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/nsx_defines.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/ns/windows_private.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/processing_component.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/processing_component.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/splitting_filter.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/splitting_filter.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/test/android/apmtest/AndroidManifest.xml create mode 100644 media/webrtc/trunk/src/modules/audio_processing/test/android/apmtest/default.properties create mode 100644 media/webrtc/trunk/src/modules/audio_processing/test/android/apmtest/jni/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_processing/test/android/apmtest/jni/Application.mk create mode 100644 media/webrtc/trunk/src/modules/audio_processing/test/android/apmtest/jni/main.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/test/android/apmtest/res/values/strings.xml create mode 100644 media/webrtc/trunk/src/modules/audio_processing/test/apmtest.m create mode 100644 media/webrtc/trunk/src/modules/audio_processing/test/process_test.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/test/unit_test.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/test/unittest.proto create mode 100644 media/webrtc/trunk/src/modules/audio_processing/test/unpack.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/utility/Android.mk create mode 100644 media/webrtc/trunk/src/modules/audio_processing/utility/delay_estimator.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/utility/delay_estimator.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/utility/delay_estimator_wrapper.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/utility/delay_estimator_wrapper.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/utility/fft4g.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/utility/fft4g.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/utility/ring_buffer.c create mode 100644 media/webrtc/trunk/src/modules/audio_processing/utility/ring_buffer.h create mode 100644 media/webrtc/trunk/src/modules/audio_processing/utility/util.gypi create mode 100644 media/webrtc/trunk/src/modules/audio_processing/voice_detection_impl.cc create mode 100644 media/webrtc/trunk/src/modules/audio_processing/voice_detection_impl.h create mode 100644 media/webrtc/trunk/src/modules/audioproc.target.mk create mode 100644 media/webrtc/trunk/src/modules/audioproc_debug_proto.target.mk create mode 100644 media/webrtc/trunk/src/modules/audioproc_unittest.target.mk create mode 100644 media/webrtc/trunk/src/modules/audioproc_unittest_proto.target.mk create mode 100644 media/webrtc/trunk/src/modules/cng_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/g711_test.target.mk create mode 100644 media/webrtc/trunk/src/modules/g711_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/g722_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/iLBC.target.mk create mode 100644 media/webrtc/trunk/src/modules/iLBCtest.target.mk create mode 100644 media/webrtc/trunk/src/modules/iSAC.target.mk create mode 100644 media/webrtc/trunk/src/modules/iSACAPITest.target.mk create mode 100644 media/webrtc/trunk/src/modules/iSACFix.target.mk create mode 100644 media/webrtc/trunk/src/modules/iSACFixtest.target.mk create mode 100644 media/webrtc/trunk/src/modules/iSACSwitchSampRateTest.target.mk create mode 100644 media/webrtc/trunk/src/modules/iSACtest.target.mk create mode 100644 media/webrtc/trunk/src/modules/interface/module.h create mode 100644 media/webrtc/trunk/src/modules/interface/module_common_types.h create mode 100644 media/webrtc/trunk/src/modules/media_file.target.mk create mode 100644 media/webrtc/trunk/src/modules/media_file/OWNERS create mode 100644 media/webrtc/trunk/src/modules/media_file/interface/media_file.h create mode 100644 media/webrtc/trunk/src/modules/media_file/interface/media_file_defines.h create mode 100644 media/webrtc/trunk/src/modules/media_file/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/media_file/source/avi_file.cc create mode 100644 media/webrtc/trunk/src/modules/media_file/source/avi_file.h create mode 100644 media/webrtc/trunk/src/modules/media_file/source/media_file.gypi create mode 100644 media/webrtc/trunk/src/modules/media_file/source/media_file_impl.cc create mode 100644 media/webrtc/trunk/src/modules/media_file/source/media_file_impl.h create mode 100644 media/webrtc/trunk/src/modules/media_file/source/media_file_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/media_file/source/media_file_utility.cc create mode 100644 media/webrtc/trunk/src/modules/media_file/source/media_file_utility.h create mode 100644 media/webrtc/trunk/src/modules/media_file_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/modules.Makefile create mode 100644 media/webrtc/trunk/src/modules/modules.gyp create mode 100644 media/webrtc/trunk/src/modules/neteq_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/ns.target.mk create mode 100644 media/webrtc/trunk/src/modules/ns_fix.target.mk create mode 100644 media/webrtc/trunk/src/modules/pcm16b_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp.target.mk create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/OWNERS create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/interface/rtp_rtcp.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/interface/rtp_rtcp_defines.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/Bitrate.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/H264/bitstream_builder.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/H264/bitstream_builder.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/H264/bitstream_parser.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/H264/bitstream_parser.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/H264/h264_information.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/H264/h264_information.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/H264/rtp_sender_h264.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/H264/rtp_sender_h264.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/bandwidth_management.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/bandwidth_management.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/bitrate.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/bwe_defines.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/dtmf_queue.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/dtmf_queue.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/fec_private_tables.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/fec_test_helper.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/fec_test_helper.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/forward_error_correction.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/forward_error_correction.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/forward_error_correction_internal.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/forward_error_correction_internal.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/mock/mock_rtp_receiver_video.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/overuse_detector.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/overuse_detector.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/producer_fec.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/producer_fec.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/producer_fec_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/receiver_fec.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/receiver_fec.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/receiver_fec_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/remote_rate_control.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/remote_rate_control.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtcp_format_remb_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtcp_receiver.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtcp_receiver.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtcp_receiver_help.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtcp_receiver_help.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtcp_sender.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtcp_sender.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtcp_sender_test.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtcp_utility.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtcp_utility.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_fec_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_format_vp8.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_format_vp8.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_format_vp8_test_helper.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_format_vp8_test_helper.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_format_vp8_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_header_extension.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_header_extension.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_header_extension_test.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_packet_history.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_packet_history.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_packet_history_test.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_receiver.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_receiver.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_receiver_audio.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_receiver_audio.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_receiver_video.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_receiver_video.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_rtcp.gypi create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_rtcp_config.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_rtcp_impl.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_rtcp_impl.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_rtcp_tests.gypi create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_sender.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_sender.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_sender_audio.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_sender_audio.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_sender_test.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_sender_video.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_sender_video.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_utility.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_utility.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/rtp_utility_test.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/ssrc_database.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/ssrc_database.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/tmmbr_help.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/tmmbr_help.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/transmission_bucket.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/transmission_bucket.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/transmission_bucket_test.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/video_codec_information.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/vp8_partition_aggregator.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/vp8_partition_aggregator.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/source/vp8_partition_aggregator_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/BWEConvergenceTest.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/BWEConvergenceTest.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/BWEStabilityTest.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/BWEStabilityTest.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/BWEStandAlone.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/BWETestBase.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/BWETestBase.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/BWETester.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/BWETwoWayLimitFinding.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/BWETwoWayLimitFinding.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/MatlabPlot.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/MatlabPlot.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/TestLoadGenerator.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/TestLoadGenerator.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/TestSenderReceiver.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/BWEStandAlone/TestSenderReceiver.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/bitstreamTest/bitstreamTest.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/bwe_standalone.gypi create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testAPI/test_api.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testAPI/test_api.gypi create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testAPI/test_api.h create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testAPI/test_api_audio.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testAPI/test_api_nack.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testAPI/test_api_rtcp.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testAPI/test_api_video.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testFec/test_fec.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testFec/test_fec.gypi create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testH263Parser/testH263Parser.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testRateControl/testRateControl.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/testTMMBR/testTMMBR.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/test_bwe/test_bwe.gypi create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp/test/test_bwe/unit_test.cc create mode 100644 media/webrtc/trunk/src/modules/rtp_rtcp_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/test_bwe.target.mk create mode 100644 media/webrtc/trunk/src/modules/test_fec.target.mk create mode 100644 media/webrtc/trunk/src/modules/test_framework.target.mk create mode 100644 media/webrtc/trunk/src/modules/test_rtp_rtcp_api.target.mk create mode 100644 media/webrtc/trunk/src/modules/udp_transport.target.mk create mode 100644 media/webrtc/trunk/src/modules/udp_transport/OWNERS create mode 100644 media/webrtc/trunk/src/modules/udp_transport/interface/udp_transport.h create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/traffic_control_windows.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/traffic_control_windows.h create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket2_manager_windows.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket2_manager_windows.h create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket2_windows.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket2_windows.h create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_manager_posix.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_manager_posix.h create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_manager_windows.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_manager_windows.h create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_manager_wrapper.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_manager_wrapper.h create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_posix.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_posix.h create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_windows.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_windows.h create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_wrapper.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_socket_wrapper.h create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_transport.gypi create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_transport_impl.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_transport_impl.h create mode 100644 media/webrtc/trunk/src/modules/udp_transport/source/udp_transport_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport/test/SocketManagerTest.cc create mode 100644 media/webrtc/trunk/src/modules/udp_transport_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/unpack_aecdump.target.mk create mode 100644 media/webrtc/trunk/src/modules/utility/OWNERS create mode 100644 media/webrtc/trunk/src/modules/utility/interface/file_player.h create mode 100644 media/webrtc/trunk/src/modules/utility/interface/file_recorder.h create mode 100644 media/webrtc/trunk/src/modules/utility/interface/process_thread.h create mode 100644 media/webrtc/trunk/src/modules/utility/interface/rtp_dump.h create mode 100644 media/webrtc/trunk/src/modules/utility/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/utility/source/coder.cc create mode 100644 media/webrtc/trunk/src/modules/utility/source/coder.h create mode 100644 media/webrtc/trunk/src/modules/utility/source/file_player_impl.cc create mode 100644 media/webrtc/trunk/src/modules/utility/source/file_player_impl.h create mode 100644 media/webrtc/trunk/src/modules/utility/source/file_player_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/utility/source/file_recorder_impl.cc create mode 100644 media/webrtc/trunk/src/modules/utility/source/file_recorder_impl.h create mode 100644 media/webrtc/trunk/src/modules/utility/source/frame_scaler.cc create mode 100644 media/webrtc/trunk/src/modules/utility/source/frame_scaler.h create mode 100644 media/webrtc/trunk/src/modules/utility/source/process_thread_impl.cc create mode 100644 media/webrtc/trunk/src/modules/utility/source/process_thread_impl.h create mode 100644 media/webrtc/trunk/src/modules/utility/source/rtp_dump_impl.cc create mode 100644 media/webrtc/trunk/src/modules/utility/source/rtp_dump_impl.h create mode 100644 media/webrtc/trunk/src/modules/utility/source/utility.gypi create mode 100644 media/webrtc/trunk/src/modules/utility/source/video_coder.cc create mode 100644 media/webrtc/trunk/src/modules/utility/source/video_coder.h create mode 100644 media/webrtc/trunk/src/modules/utility/source/video_frames_queue.cc create mode 100644 media/webrtc/trunk/src/modules/utility/source/video_frames_queue.h create mode 100644 media/webrtc/trunk/src/modules/utility/test/testAPI.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/OWNERS create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/interface/video_capture.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/interface/video_capture_defines.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/interface/video_capture_factory.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/External/device_info_external.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/External/video_capture_external.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Linux/device_info_linux.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Linux/device_info_linux.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Linux/video_capture_linux.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Linux/video_capture_linux.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.mm create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info.mm create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info_objc.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info_objc.mm create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_objc.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_objc.mm create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_utility.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QTKit/video_capture_recursive_lock.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QTKit/video_capture_recursive_lock.mm create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QuickTime/video_capture_quick_time.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QuickTime/video_capture_quick_time.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QuickTime/video_capture_quick_time_info.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/QuickTime/video_capture_quick_time_info.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/video_capture_mac.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Mac/video_capture_mac.mm create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Windows/capture_delay_values_windows.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Windows/device_info_windows.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Windows/device_info_windows.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Windows/direct_show_base_classes.gyp create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Windows/help_functions_windows.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Windows/help_functions_windows.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Windows/sink_filter_windows.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Windows/sink_filter_windows.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Windows/video_capture_factory_windows.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Windows/video_capture_windows.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/Windows/video_capture_windows.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/android/device_info_android.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/android/device_info_android.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/android/java/org/webrtc/videoengine/CaptureCapabilityAndroid.java create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/android/java/org/webrtc/videoengine/VideoCaptureAndroid.java create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/android/java/org/webrtc/videoengine/VideoCaptureDeviceInfoAndroid.java create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/android/video_capture_android.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/android/video_capture_android.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/device_info_impl.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/device_info_impl.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/video_capture.gypi create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/video_capture_config.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/video_capture_delay.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/video_capture_factory.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/video_capture_impl.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/source/video_capture_impl.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/.classpath create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/.project create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/AndroidManifest.xml create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/default.properties create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/gen/org/webrtc/capturemoduleandroidtest/R.java create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/jni/Android.mk create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/jni/org_webrtc_capturemoduleandroidtest_VideoCaptureModuleTest.h create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/jni/video_capture_module_android_test_jni.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/res/drawable-hdpi/icon.png create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/res/drawable-ldpi/icon.png create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/res/drawable-mdpi/icon.png create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/res/layout/main.xml create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/res/values/strings.xml create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/src/org/webrtc/capturemoduleandroidtest/VideoCaptureJavaTest.java create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/android/src/org/webrtc/capturemoduleandroidtest/VideoCaptureModuleTest.java create mode 100644 media/webrtc/trunk/src/modules/video_capture/main/test/video_capture_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/video_capture_module.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_capture_module_test.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_codecs_test_framework.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_codecs_test_framework_integrationtests.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_codecs_test_framework_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/OWNERS create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/i420/main/interface/i420.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/i420/main/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/i420/main/source/i420.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/i420/main/source/i420.gypi create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/interface/mock/mock_video_codec_interface.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/interface/video_codec_interface.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/interface/video_error_codes.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/mock/mock_packet_manipulator.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/packet_manipulator.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/packet_manipulator.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/packet_manipulator_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/predictive_packet_manipulator.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/predictive_packet_manipulator.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/stats.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/stats.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/stats_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/video_codecs_test_framework.gypi create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/videoprocessor.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/videoprocessor.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test/videoprocessor_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/benchmark.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/benchmark.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/exportfig.m create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/normal_async_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/normal_async_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/normal_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/normal_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/packet_loss_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/packet_loss_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/performance_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/performance_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/plotBenchmark.m create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/test_framework.gypi create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/unit_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/unit_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/video_buffer.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/video_buffer.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/video_source.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/test_framework/video_source.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/tools/video_codecs_tools.gypi create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/tools/video_quality_measurement.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/interface/vp8.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/interface/vp8_common_types.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/source/reference_picture_selection.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/source/reference_picture_selection.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/source/reference_picture_selection_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/source/temporal_layers.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/source/temporal_layers.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/source/temporal_layers_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/source/vp8.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/source/vp8.gypi create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/benchmark.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/benchmark.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/dual_decoder_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/dual_decoder_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/normal_async_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/normal_async_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/packet_loss_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/packet_loss_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/rps_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/rps_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/tester.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/unit_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/codecs/vp8/main/test/unit_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/OWNERS create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/interface/mock/mock_vcm_callbacks.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/interface/video_coding.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/interface/video_coding_defines.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/codec_database.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/codec_database.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/codec_timer.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/codec_timer.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/content_metrics_processing.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/content_metrics_processing.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/decoding_state.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/decoding_state.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/decoding_state_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/encoded_frame.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/encoded_frame.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/er_tables_xor.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/event.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/exp_filter.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/exp_filter.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/fec_tables_xor.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/frame_buffer.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/frame_buffer.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/frame_dropper.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/frame_dropper.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/generic_decoder.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/generic_decoder.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/generic_encoder.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/generic_encoder.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/inter_frame_delay.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/inter_frame_delay.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/internal_defines.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/jitter_buffer.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/jitter_buffer.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/jitter_buffer_common.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/jitter_buffer_common.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/jitter_buffer_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/jitter_estimator.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/jitter_estimator.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/media_opt_util.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/media_opt_util.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/media_optimization.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/media_optimization.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/mock/fake_tick_time.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/nack_fec_tables.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/packet.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/packet.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/qm_select.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/qm_select.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/qm_select_data.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/qm_select_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/receiver.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/receiver.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/rtt_filter.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/rtt_filter.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/session_info.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/session_info.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/session_info_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/tick_time_base.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/timestamp_extrapolator.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/timestamp_extrapolator.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/timestamp_map.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/timestamp_map.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/timing.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/timing.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/video_coding.gypi create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/video_coding_impl.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/video_coding_impl.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/video_coding_robustness_unittest.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/source/video_coding_test.gypi create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/codec_database_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/codec_database_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/decode_from_storage_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/generic_codec_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/generic_codec_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/jitter_buffer_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/jitter_estimate_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/jitter_estimate_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/media_opt_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/media_opt_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/mt_rx_tx_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/mt_test_common.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/mt_test_common.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/normal_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/normal_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/plotJitterEstimate.m create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/plotReceiveTrace.m create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/plotTimingTest.m create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/quality_modes_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/quality_modes_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/receiver_tests.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/receiver_timing_tests.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/release_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/release_test.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/release_test_pt2.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/rtp_player.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/rtp_player.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/subfigure.m create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/test_callbacks.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/test_callbacks.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/test_macros.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/test_util.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/test_util.h create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/tester_main.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/video_rtp_play.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/video_rtp_play_mt.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/video_source.cc create mode 100644 media/webrtc/trunk/src/modules/video_coding/main/test/video_source.h create mode 100644 media/webrtc/trunk/src/modules/video_coding_test.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_coding_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_processing.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/OWNERS create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/interface/video_processing.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/interface/video_processing_defines.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/brighten.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/brighten.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/brightness_detection.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/brightness_detection.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/color_enhancement.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/color_enhancement.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/color_enhancement_private.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/content_analysis.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/content_analysis.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/content_analysis_sse2.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/deflickering.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/deflickering.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/denoising.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/denoising.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/frame_preprocessor.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/frame_preprocessor.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/spatial_resampler.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/spatial_resampler.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/video_decimator.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/video_decimator.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/video_processing.gypi create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/video_processing_impl.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/source/video_processing_impl.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/test/unit_test/brightness_detection_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/test/unit_test/color_enhancement_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/test/unit_test/content_metrics_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/test/unit_test/createTable.m create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/test/unit_test/deflickering_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/test/unit_test/denoising_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/test/unit_test/readYUV420file.m create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/test/unit_test/unit_test.cc create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/test/unit_test/unit_test.h create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/test/unit_test/writeYUV420file.m create mode 100644 media/webrtc/trunk/src/modules/video_processing/main/test/vpm_tests.gypi create mode 100644 media/webrtc/trunk/src/modules/video_processing_sse2.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_processing_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_quality_measurement.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_render/OWNERS create mode 100644 media/webrtc/trunk/src/modules/video_render/main/interface/video_render.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/interface/video_render_defines.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/Android.mk create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/android/java/org/webrtc/videoengine/ViEAndroidGLES20.java create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/android/java/org/webrtc/videoengine/ViERenderer.java create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/android/java/org/webrtc/videoengine/ViESurfaceRenderer.java create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/android/video_render_android_impl.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/android/video_render_android_impl.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/android/video_render_android_native_opengl2.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/android/video_render_android_native_opengl2.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/android/video_render_android_surface_view.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/android/video_render_android_surface_view.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/android/video_render_opengles20.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/android/video_render_opengles20.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/external/video_render_external_impl.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/external/video_render_external_impl.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/i_video_render.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/incoming_video_stream.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/incoming_video_stream.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/linux/video_render_linux_impl.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/linux/video_render_linux_impl.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/linux/video_x11_channel.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/linux/video_x11_channel.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/linux/video_x11_render.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/linux/video_x11_render.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/cocoa_full_screen_window.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/cocoa_full_screen_window.mm create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/cocoa_render_view.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/cocoa_render_view.mm create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/video_render_agl.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/video_render_agl.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/video_render_mac_carbon_impl.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/video_render_mac_carbon_impl.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/video_render_mac_cocoa_impl.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/video_render_mac_cocoa_impl.mm create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/video_render_nsopengl.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/mac/video_render_nsopengl.mm create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/video_render.gypi create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/video_render_frames.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/video_render_frames.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/video_render_impl.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/video_render_impl.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/windows/i_video_render_win.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/windows/video_render_direct3d9.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/windows/video_render_direct3d9.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/windows/video_render_directdraw.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/windows/video_render_directdraw.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/windows/video_render_windows_impl.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/source/windows/video_render_windows_impl.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/test/testAPI/renderStartImage.bmp create mode 100644 media/webrtc/trunk/src/modules/video_render/main/test/testAPI/testAPI.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/test/testAPI/testAPI.h create mode 100644 media/webrtc/trunk/src/modules/video_render/main/test/testAPI/testAPI_android.cc create mode 100644 media/webrtc/trunk/src/modules/video_render/main/test/testAPI/testAPI_mac.mm create mode 100644 media/webrtc/trunk/src/modules/video_render_module.target.mk create mode 100644 media/webrtc/trunk/src/modules/video_render_module_test.target.mk create mode 100644 media/webrtc/trunk/src/modules/vp8_test.target.mk create mode 100644 media/webrtc/trunk/src/modules/vp8_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/webrtc_i420.target.mk create mode 100644 media/webrtc/trunk/src/modules/webrtc_utility.target.mk create mode 100644 media/webrtc/trunk/src/modules/webrtc_utility_unittests.target.mk create mode 100644 media/webrtc/trunk/src/modules/webrtc_video_coding.target.mk create mode 100644 media/webrtc/trunk/src/modules/webrtc_vp8.target.mk create mode 100644 media/webrtc/trunk/src/supplement.gypi create mode 100644 media/webrtc/trunk/src/system_wrappers/OWNERS create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/aligned_malloc.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/atomic32_wrapper.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/compile_assert.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/condition_variable_wrapper.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/constructor_magic.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/cpu_features_wrapper.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/cpu_info.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/cpu_wrapper.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/critical_section_wrapper.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/data_log.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/data_log_c.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/data_log_impl.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/event_wrapper.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/file_wrapper.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/fix_interlocked_exchange_pointer_win.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/list_wrapper.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/map_wrapper.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/ref_count.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/rw_lock_wrapper.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/scoped_ptr.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/scoped_refptr.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/sort.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/static_instance.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/thread_wrapper.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/tick_util.h create mode 100644 media/webrtc/trunk/src/system_wrappers/interface/trace.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/Android.mk create mode 100644 media/webrtc/trunk/src/system_wrappers/source/aligned_malloc.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/atomic32.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/atomic32_linux.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/atomic32_mac.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/atomic32_win.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/condition_variable.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/condition_variable_posix.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/condition_variable_posix.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/condition_variable_win.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/condition_variable_win.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_features.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_features_arm.c create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_info.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_linux.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_linux.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_mac.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_mac.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_measurement_harness.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_measurement_harness.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_no_op.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_win.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_win.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/cpu_wrapper_unittest.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/critical_section.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/critical_section_posix.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/critical_section_posix.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/critical_section_win.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/critical_section_win.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/data_log.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/data_log_c.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/data_log_c_helpers_unittest.c create mode 100644 media/webrtc/trunk/src/system_wrappers/source/data_log_c_helpers_unittest.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/data_log_helpers_unittest.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/data_log_no_op.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/data_log_unittest.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/data_log_unittest_disabled.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/event.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/event_posix.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/event_posix.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/event_win.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/event_win.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/file_impl.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/file_impl.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/list_no_stl.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/list_no_stl.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/list_stl.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/list_stl.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/list_unittest.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/map.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/map_no_stl.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/map_no_stl.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/map_unittest.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/rw_lock.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/rw_lock_generic.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/rw_lock_generic.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/rw_lock_posix.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/rw_lock_posix.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/rw_lock_win.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/rw_lock_win.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/set_thread_name_win.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/sort.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/spreadsortlib/constants.hpp create mode 100644 media/webrtc/trunk/src/system_wrappers/source/spreadsortlib/spreadsort.hpp create mode 100644 media/webrtc/trunk/src/system_wrappers/source/system_wrappers.Makefile create mode 100644 media/webrtc/trunk/src/system_wrappers/source/system_wrappers.gyp create mode 100644 media/webrtc/trunk/src/system_wrappers/source/system_wrappers.target.mk create mode 100644 media/webrtc/trunk/src/system_wrappers/source/system_wrappers_unittests.target.mk create mode 100644 media/webrtc/trunk/src/system_wrappers/source/thread.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/thread_posix.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/thread_posix.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/thread_win.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/thread_win.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/trace_impl.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/trace_impl.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/trace_impl_no_op.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/trace_posix.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/trace_posix.h create mode 100644 media/webrtc/trunk/src/system_wrappers/source/trace_unittest.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/trace_win.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/source/trace_win.h create mode 100644 media/webrtc/trunk/src/system_wrappers/test/TestSort/TestSort.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/test/list/list.cc create mode 100644 media/webrtc/trunk/src/system_wrappers/test/map/map.cc create mode 100644 media/webrtc/trunk/src/typedefs.h create mode 100644 media/webrtc/trunk/src/video_engine/Android.mk create mode 100644 media/webrtc/trunk/src/video_engine/OWNERS create mode 100644 media/webrtc/trunk/src/video_engine/include/vie_base.h create mode 100644 media/webrtc/trunk/src/video_engine/include/vie_capture.h create mode 100644 media/webrtc/trunk/src/video_engine/include/vie_codec.h create mode 100644 media/webrtc/trunk/src/video_engine/include/vie_encryption.h create mode 100644 media/webrtc/trunk/src/video_engine/include/vie_errors.h create mode 100644 media/webrtc/trunk/src/video_engine/include/vie_external_codec.h create mode 100644 media/webrtc/trunk/src/video_engine/include/vie_file.h create mode 100644 media/webrtc/trunk/src/video_engine/include/vie_image_process.h create mode 100644 media/webrtc/trunk/src/video_engine/include/vie_network.h create mode 100644 media/webrtc/trunk/src/video_engine/include/vie_render.h create mode 100644 media/webrtc/trunk/src/video_engine/include/vie_rtp_rtcp.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/SimpleCocoaGUI/GUI_Defines.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/SimpleCocoaGUI/SimpleCocoaGUI-Info.plist create mode 100644 media/webrtc/trunk/src/video_engine/main/test/SimpleCocoaGUI/SimpleCocoaGUIAppDelegate.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/SimpleCocoaGUI/SimpleCocoaGUIAppDelegate.mm create mode 100644 media/webrtc/trunk/src/video_engine/main/test/SimpleCocoaGUI/SimpleCocoaGUI_Prefix.pch create mode 100644 media/webrtc/trunk/src/video_engine/main/test/SimpleCocoaGUI/main.m create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/Capture.rc create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/CaptureDevicePool.cc create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/CaptureDevicePool.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/ChannelDlg.cc create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/ChannelDlg.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/ChannelPool.cc create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/ChannelPool.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/StdAfx.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/VideoSize.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/WindowsTest.cc create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/WindowsTest.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/WindowsTestMainDlg.cc create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/WindowsTestMainDlg.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/WindowsTestResouce.rc create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/WindowsTestResource.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/captureDeviceImage.jpg create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/renderStartImage.jpg create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/renderTimeoutImage.jpg create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/res/Capture.rc2 create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/resource.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/tbExternalTransport.cc create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/tbExternalTransport.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/videosize.cc create mode 100644 media/webrtc/trunk/src/video_engine/main/test/WindowsTest/windowstest.gypi create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/.classpath create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/.project create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/Android.mk create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/AndroidManifest.xml create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/build.xml create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/default.properties create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/jni/Android.mk create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/jni/Application.mk create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/jni/org_webrtc_videoengineapp_vie_android_java_api.h create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/jni/vie_android_java_api.cc create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/project.properties create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/res/drawable/logo.png create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/res/layout/aconfig.xml create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/res/layout/both.xml create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/res/layout/main.xml create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/res/layout/send.xml create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/res/layout/stats.xml create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/res/layout/tabhost.xml create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/res/layout/vconfig.xml create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/res/values/arrays.xml create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/res/values/strings.xml create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/src/org/webrtc/videoengineapp/IViEAndroidCallback.java create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/src/org/webrtc/videoengineapp/ViEAndroidDemo.java create mode 100644 media/webrtc/trunk/src/video_engine/main/test/android_test/src/org/webrtc/videoengineapp/ViEAndroidJavaAPI.java create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/.classpath create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/.project create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/Android.mk create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/AndroidManifest.xml create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/default.properties create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/gen/org/webrtc/vieautotest/R.java create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/jni/Android.mk create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/jni/org_webrtc_vieautotest_vie_autotest.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/jni/vie_autotest_jni.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/res/drawable/logo.png create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/res/layout/main.xml create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/res/values/strings.xml create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/android/src/org/webrtc/vieautotest/ViEAutotest.java create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/automated/legacy_fixture.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/automated/legacy_fixture.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/automated/two_windows_fixture.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/automated/two_windows_fixture.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/automated/vie_api_integration_test.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/automated/vie_extended_integration_test.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/automated/vie_rtp_fuzz_test.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/automated/vie_standard_integration_test.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/automated/vie_video_verification_test.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_autotest.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_autotest_android.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_autotest_defines.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_autotest_linux.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_autotest_mac_carbon.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_autotest_mac_cocoa.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_autotest_main.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_autotest_window_manager_interface.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_autotest_windows.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_file_based_comparison_tests.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_window_creator.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/interface/vie_window_manager_factory.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/media/captureDeviceImage.bmp create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/media/captureDeviceImage.jpg create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/media/renderStartImage.bmp create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/media/renderStartImage.jpg create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/media/renderTimeoutImage.bmp create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/media/renderTimeoutImage.jpg create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/primitives/base_primitives.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/primitives/base_primitives.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/primitives/codec_primitives.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/primitives/codec_primitives.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/primitives/framedrop_primitives.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/primitives/framedrop_primitives.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/primitives/framedrop_primitives_unittest.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/primitives/general_primitives.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/primitives/general_primitives.h create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/Android.mk create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_android.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_base.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_capture.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_carbon_mac.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_cocoa_mac.mm create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_codec.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_custom_call.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_encryption.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_file.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_image_process.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_linux.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_loopback.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_main.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_network.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_render.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_rtp_rtcp.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_simulcast.cc create mode 100755 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_autotest_win.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_file_based_comparison_tests.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_window_creator.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_window_manager_factory_linux.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_window_manager_factory_mac.mm create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/source/vie_window_manager_factory_win.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/auto_test/vie_auto_test.gypi create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/helpers/bit_flip_encryption.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/helpers/random_encryption.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/helpers/vie_fake_camera.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/helpers/vie_file_capture_device.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/helpers/vie_to_file_renderer.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/include/bit_flip_encryption.h create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/include/random_encryption.h create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/include/tb_I420_codec.h create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/include/tb_capture_device.h create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/include/tb_external_transport.h create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/include/tb_interfaces.h create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/include/tb_video_channel.h create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/include/vie_fake_camera.h create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/include/vie_file_capture_device.h create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/include/vie_to_file_renderer.h create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/libvietest.gypi create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/testbed/tb_I420_codec.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/testbed/tb_capture_device.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/testbed/tb_external_transport.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/testbed/tb_interfaces.cc create mode 100644 media/webrtc/trunk/src/video_engine/test/libvietest/testbed/tb_video_channel.cc create mode 100644 media/webrtc/trunk/src/video_engine/video_engine.Makefile create mode 100644 media/webrtc/trunk/src/video_engine/video_engine.gyp create mode 100644 media/webrtc/trunk/src/video_engine/video_engine_core.gypi create mode 100644 media/webrtc/trunk/src/video_engine/video_engine_core.target.mk create mode 100644 media/webrtc/trunk/src/video_engine/video_engine_core_unittests.target.mk create mode 100644 media/webrtc/trunk/src/video_engine/vie_auto_test.target.mk create mode 100644 media/webrtc/trunk/src/video_engine/vie_base_impl.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_base_impl.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_capture_impl.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_capture_impl.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_capturer.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_capturer.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_channel.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_channel.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_channel_group.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_channel_group.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_channel_manager.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_channel_manager.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_codec_impl.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_codec_impl.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_defines.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_encoder.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_encoder.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_encryption_impl.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_encryption_impl.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_external_codec_impl.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_external_codec_impl.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_file_image.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_file_image.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_file_impl.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_file_impl.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_file_player.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_file_player.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_file_recorder.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_file_recorder.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_frame_provider_base.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_frame_provider_base.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_image_process_impl.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_image_process_impl.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_impl.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_impl.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_input_manager.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_input_manager.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_manager_base.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_manager_base.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_network_impl.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_network_impl.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_performance_monitor.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_performance_monitor.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_receiver.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_receiver.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_ref_count.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_ref_count.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_remb.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_remb.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_remb_unittest.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_render_impl.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_render_impl.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_render_manager.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_render_manager.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_renderer.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_renderer.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_rtp_rtcp_impl.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_rtp_rtcp_impl.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_sender.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_sender.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_shared_data.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_shared_data.h create mode 100644 media/webrtc/trunk/src/video_engine/vie_sync_module.cc create mode 100644 media/webrtc/trunk/src/video_engine/vie_sync_module.h create mode 100644 media/webrtc/trunk/src/voice_engine/OWNERS create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/mock/mock_voe_connection_observer.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/mock/mock_voe_observer.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_audio_processing.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_base.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_call_report.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_codec.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_dtmf.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_encryption.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_errors.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_external_media.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_file.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_hardware.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_neteq_stats.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_network.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_rtp_rtcp.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_video_sync.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/interface/voe_volume_control.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/Android.mk create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/audio_frame_operations.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/audio_frame_operations.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/channel.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/channel.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/channel_manager.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/channel_manager.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/channel_manager_base.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/channel_manager_base.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/channel_unittest.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/dtmf_inband.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/dtmf_inband.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/dtmf_inband_queue.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/dtmf_inband_queue.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/level_indicator.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/level_indicator.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/monitor_module.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/monitor_module.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/output_mixer.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/output_mixer.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/ref_count.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/ref_count.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/shared_data.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/shared_data.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/statistics.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/statistics.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/transmit_mixer.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/transmit_mixer.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/utility.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/utility.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_audio_processing_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_audio_processing_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_base_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_base_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_call_report_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_call_report_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_codec_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_codec_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_dtmf_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_dtmf_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_encryption_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_encryption_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_external_media_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_external_media_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_file_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_file_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_hardware_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_hardware_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_neteq_stats_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_neteq_stats_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_network_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_network_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_rtp_rtcp_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_rtp_rtcp_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_video_sync_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_video_sync_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_volume_control_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voe_volume_control_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voice_engine_core.gypi create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voice_engine_defines.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voice_engine_impl.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/source/voice_engine_impl.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/.classpath create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/.project create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/Android.mk create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/AndroidManifest.xml create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/default.properties create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/gen/org/webrtc/voiceengine/test/R.java create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/jni/Android.mk create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/jni/Application.mk create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/jni/android_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/jni/org_webrtc_voiceengine_test_AndroidTest.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/res/drawable/icon.png create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/res/layout/main.xml create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/res/values/strings.xml create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/android/android_test/src/org/webrtc/voiceengine/test/AndroidTest.java create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/Android.mk create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/automated_mode.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/automated_mode.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/fakes/fake_media_process.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/fixtures/after_initialization_fixture.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/fixtures/after_initialization_fixture.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/fixtures/after_streaming_fixture.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/fixtures/after_streaming_fixture.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/fixtures/before_initialization_fixture.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/fixtures/before_initialization_fixture.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/resource_manager.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/resource_manager.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/audio_processing_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/call_report_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/codec_before_streaming_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/codec_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/dtmf_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/encryption_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/external_media_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/file_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/hardware_before_initializing_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/hardware_before_streaming_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/hardware_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/manual_hold_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/neteq_stats_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/neteq_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/network_before_streaming_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/network_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/rtp_rtcp_before_streaming_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/rtp_rtcp_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/video_sync_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/voe_base_misc_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/standard/volume_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_cpu_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_cpu_test.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_extended_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_extended_test.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_standard_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_standard_test.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_stress_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_stress_test.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_test_defines.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_test_interface.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_unit_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/auto_test/voe_unit_test.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/cmd_test/Android.mk create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/cmd_test/voe_cmd_test.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/voice_engine_tests.gypi create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/win_test/Resource.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/win_test/WinTest.aps create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/win_test/WinTest.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/win_test/WinTest.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/win_test/WinTest.rc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/win_test/WinTestDlg.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/win_test/WinTestDlg.h create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/win_test/res/WinTest.ico create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/win_test/res/WinTest.rc2 create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/win_test/stdafx.cc create mode 100644 media/webrtc/trunk/src/voice_engine/main/test/win_test/stdafx.h create mode 100644 media/webrtc/trunk/src/voice_engine/voe_auto_test.target.mk create mode 100644 media/webrtc/trunk/src/voice_engine/voe_cmd_test.target.mk create mode 100644 media/webrtc/trunk/src/voice_engine/voice_engine.Makefile create mode 100644 media/webrtc/trunk/src/voice_engine/voice_engine.gyp create mode 100644 media/webrtc/trunk/src/voice_engine/voice_engine_core.target.mk create mode 100644 media/webrtc/trunk/src/voice_engine/voice_engine_unittests.target.mk create mode 100644 media/webrtc/trunk/test/OWNERS create mode 100644 media/webrtc/trunk/test/linux/v4l2_file_player/Makefile create mode 100644 media/webrtc/trunk/test/linux/v4l2_file_player/README create mode 100644 media/webrtc/trunk/test/linux/v4l2_file_player/v4l2_file_player.c create mode 100644 media/webrtc/trunk/test/metrics.gyp create mode 100644 media/webrtc/trunk/test/metrics.target.mk create mode 100644 media/webrtc/trunk/test/metrics_unittests.target.mk create mode 100644 media/webrtc/trunk/test/run_all_unittests.cc create mode 100644 media/webrtc/trunk/test/sanity_check/README create mode 100644 media/webrtc/trunk/test/sanity_check/lighttpd.conf create mode 100755 media/webrtc/trunk/test/sanity_check/run_sanity_check create mode 100644 media/webrtc/trunk/test/sanity_check/www/html/README create mode 100644 media/webrtc/trunk/test/sanity_check/www/html/webrtc_test.html create mode 100644 media/webrtc/trunk/test/test.gyp create mode 100644 media/webrtc/trunk/test/test_suite.cc create mode 100644 media/webrtc/trunk/test/test_suite.h create mode 100644 media/webrtc/trunk/test/test_support.target.mk create mode 100644 media/webrtc/trunk/test/test_support_main.target.mk create mode 100644 media/webrtc/trunk/test/test_support_unittests.target.mk create mode 100644 media/webrtc/trunk/test/testsupport/fileutils.cc create mode 100644 media/webrtc/trunk/test/testsupport/fileutils.h create mode 100644 media/webrtc/trunk/test/testsupport/fileutils_unittest.cc create mode 100644 media/webrtc/trunk/test/testsupport/frame_reader.cc create mode 100644 media/webrtc/trunk/test/testsupport/frame_reader.h create mode 100644 media/webrtc/trunk/test/testsupport/frame_reader_unittest.cc create mode 100644 media/webrtc/trunk/test/testsupport/frame_writer.cc create mode 100644 media/webrtc/trunk/test/testsupport/frame_writer.h create mode 100644 media/webrtc/trunk/test/testsupport/frame_writer_unittest.cc create mode 100644 media/webrtc/trunk/test/testsupport/gtest_prod_util.h create mode 100644 media/webrtc/trunk/test/testsupport/metrics/video_metrics.cc create mode 100644 media/webrtc/trunk/test/testsupport/metrics/video_metrics.h create mode 100644 media/webrtc/trunk/test/testsupport/metrics/video_metrics_unittest.cc create mode 100644 media/webrtc/trunk/test/testsupport/mock/mock_frame_reader.h create mode 100644 media/webrtc/trunk/test/testsupport/mock/mock_frame_writer.h create mode 100644 media/webrtc/trunk/test/testsupport/packet_reader.cc create mode 100644 media/webrtc/trunk/test/testsupport/packet_reader.h create mode 100644 media/webrtc/trunk/test/testsupport/packet_reader_unittest.cc create mode 100644 media/webrtc/trunk/test/testsupport/unittest_utils.h create mode 100755 media/webrtc/trunk/testing/generate_gmock_mutant.py create mode 100644 media/webrtc/trunk/testing/gmock.gyp create mode 100644 media/webrtc/trunk/testing/gmock.target.mk create mode 100644 media/webrtc/trunk/testing/gmock/CHANGES create mode 100644 media/webrtc/trunk/testing/gmock/CMakeLists.txt create mode 100644 media/webrtc/trunk/testing/gmock/CONTRIBUTORS create mode 100644 media/webrtc/trunk/testing/gmock/COPYING create mode 100644 media/webrtc/trunk/testing/gmock/Makefile.am create mode 100644 media/webrtc/trunk/testing/gmock/README create mode 100644 media/webrtc/trunk/testing/gmock/build-aux/.keep create mode 100644 media/webrtc/trunk/testing/gmock/configure.ac create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-actions.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-cardinalities.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-generated-actions.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-generated-actions.h.pump create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-generated-function-mockers.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-generated-function-mockers.h.pump create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-generated-matchers.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-generated-matchers.h.pump create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-generated-nice-strict.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-generated-nice-strict.h.pump create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-matchers.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-more-actions.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock-spec-builders.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/gmock.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/internal/gmock-generated-internal-utils.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/internal/gmock-generated-internal-utils.h.pump create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/internal/gmock-internal-utils.h create mode 100644 media/webrtc/trunk/testing/gmock/include/gmock/internal/gmock-port.h create mode 100644 media/webrtc/trunk/testing/gmock/make/Makefile create mode 100644 media/webrtc/trunk/testing/gmock/msvc/2005/gmock.sln create mode 100644 media/webrtc/trunk/testing/gmock/msvc/2005/gmock.vcproj create mode 100644 media/webrtc/trunk/testing/gmock/msvc/2005/gmock_config.vsprops create mode 100644 media/webrtc/trunk/testing/gmock/msvc/2005/gmock_main.vcproj create mode 100644 media/webrtc/trunk/testing/gmock/msvc/2005/gmock_test.vcproj create mode 100644 media/webrtc/trunk/testing/gmock/msvc/2010/gmock.sln create mode 100644 media/webrtc/trunk/testing/gmock/msvc/2010/gmock.vcxproj create mode 100644 media/webrtc/trunk/testing/gmock/msvc/2010/gmock_config.props create mode 100644 media/webrtc/trunk/testing/gmock/msvc/2010/gmock_main.vcxproj create mode 100644 media/webrtc/trunk/testing/gmock/msvc/2010/gmock_test.vcxproj create mode 100755 media/webrtc/trunk/testing/gmock/scripts/fuse_gmock_files.py create mode 100644 media/webrtc/trunk/testing/gmock/scripts/generator/COPYING create mode 100644 media/webrtc/trunk/testing/gmock/scripts/generator/README create mode 100644 media/webrtc/trunk/testing/gmock/scripts/generator/README.cppclean create mode 100755 media/webrtc/trunk/testing/gmock/scripts/generator/cpp/__init__.py create mode 100755 media/webrtc/trunk/testing/gmock/scripts/generator/cpp/ast.py create mode 100755 media/webrtc/trunk/testing/gmock/scripts/generator/cpp/gmock_class.py create mode 100755 media/webrtc/trunk/testing/gmock/scripts/generator/cpp/gmock_class_test.py create mode 100755 media/webrtc/trunk/testing/gmock/scripts/generator/cpp/keywords.py create mode 100755 media/webrtc/trunk/testing/gmock/scripts/generator/cpp/tokenize.py create mode 100755 media/webrtc/trunk/testing/gmock/scripts/generator/cpp/utils.py create mode 100755 media/webrtc/trunk/testing/gmock/scripts/generator/gmock_gen.py create mode 100755 media/webrtc/trunk/testing/gmock/scripts/gmock-config.in create mode 100755 media/webrtc/trunk/testing/gmock/scripts/gmock_doctor.py create mode 100755 media/webrtc/trunk/testing/gmock/scripts/upload.py create mode 100755 media/webrtc/trunk/testing/gmock/scripts/upload_gmock.py create mode 100644 media/webrtc/trunk/testing/gmock/src/gmock-all.cc create mode 100644 media/webrtc/trunk/testing/gmock/src/gmock-cardinalities.cc create mode 100644 media/webrtc/trunk/testing/gmock/src/gmock-internal-utils.cc create mode 100644 media/webrtc/trunk/testing/gmock/src/gmock-matchers.cc create mode 100644 media/webrtc/trunk/testing/gmock/src/gmock-spec-builders.cc create mode 100644 media/webrtc/trunk/testing/gmock/src/gmock.cc create mode 100644 media/webrtc/trunk/testing/gmock/src/gmock_main.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-actions_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-cardinalities_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-generated-actions_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-generated-function-mockers_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-generated-internal-utils_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-generated-matchers_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-internal-utils_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-matchers_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-more-actions_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-nice-strict_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-port_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock-spec-builders_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock_all_test.cc create mode 100755 media/webrtc/trunk/testing/gmock/test/gmock_leak_test.py create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock_leak_test_.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock_link2_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock_link_test.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock_link_test.h create mode 100755 media/webrtc/trunk/testing/gmock/test/gmock_output_test.py create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock_output_test_.cc create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock_output_test_golden.txt create mode 100644 media/webrtc/trunk/testing/gmock/test/gmock_test.cc create mode 100755 media/webrtc/trunk/testing/gmock/test/gmock_test_utils.py create mode 100644 media/webrtc/trunk/testing/gmock_main.target.mk create mode 100644 media/webrtc/trunk/testing/gmock_mutant.h create mode 100644 media/webrtc/trunk/testing/gtest.gyp create mode 100644 media/webrtc/trunk/testing/gtest.target.mk create mode 100644 media/webrtc/trunk/testing/gtest/CHANGES create mode 100644 media/webrtc/trunk/testing/gtest/CMakeLists.txt create mode 100644 media/webrtc/trunk/testing/gtest/CONTRIBUTORS create mode 100644 media/webrtc/trunk/testing/gtest/COPYING create mode 100644 media/webrtc/trunk/testing/gtest/Makefile.am create mode 100644 media/webrtc/trunk/testing/gtest/README create mode 100644 media/webrtc/trunk/testing/gtest/build-aux/.keep create mode 100644 media/webrtc/trunk/testing/gtest/cmake/internal_utils.cmake create mode 100644 media/webrtc/trunk/testing/gtest/codegear/gtest.cbproj create mode 100644 media/webrtc/trunk/testing/gtest/codegear/gtest.groupproj create mode 100644 media/webrtc/trunk/testing/gtest/codegear/gtest_all.cc create mode 100644 media/webrtc/trunk/testing/gtest/codegear/gtest_link.cc create mode 100644 media/webrtc/trunk/testing/gtest/codegear/gtest_main.cbproj create mode 100644 media/webrtc/trunk/testing/gtest/codegear/gtest_unittest.cbproj create mode 100644 media/webrtc/trunk/testing/gtest/configure.ac create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/gtest-death-test.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/gtest-message.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/gtest-param-test.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/gtest-param-test.h.pump create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/gtest-printers.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/gtest-spi.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/gtest-test-part.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/gtest-typed-test.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/gtest.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/gtest_pred_impl.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/gtest_prod.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-death-test-internal.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-filepath.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-internal.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-linked_ptr.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-param-util-generated.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-param-util-generated.h.pump create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-param-util.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-port.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-string.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-tuple.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-tuple.h.pump create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-type-util.h create mode 100644 media/webrtc/trunk/testing/gtest/include/gtest/internal/gtest-type-util.h.pump create mode 100644 media/webrtc/trunk/testing/gtest/m4/acx_pthread.m4 create mode 100644 media/webrtc/trunk/testing/gtest/m4/gtest.m4 create mode 100644 media/webrtc/trunk/testing/gtest/make/Makefile create mode 100644 media/webrtc/trunk/testing/gtest/msvc/gtest-md.sln create mode 100644 media/webrtc/trunk/testing/gtest/msvc/gtest-md.vcproj create mode 100644 media/webrtc/trunk/testing/gtest/msvc/gtest.sln create mode 100644 media/webrtc/trunk/testing/gtest/msvc/gtest.vcproj create mode 100644 media/webrtc/trunk/testing/gtest/msvc/gtest_main-md.vcproj create mode 100644 media/webrtc/trunk/testing/gtest/msvc/gtest_main.vcproj create mode 100644 media/webrtc/trunk/testing/gtest/msvc/gtest_prod_test-md.vcproj create mode 100644 media/webrtc/trunk/testing/gtest/msvc/gtest_prod_test.vcproj create mode 100644 media/webrtc/trunk/testing/gtest/msvc/gtest_unittest-md.vcproj create mode 100644 media/webrtc/trunk/testing/gtest/msvc/gtest_unittest.vcproj create mode 100644 media/webrtc/trunk/testing/gtest/samples/prime_tables.h create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample1.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample1.h create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample10_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample1_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample2.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample2.h create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample2_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample3-inl.h create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample3_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample4.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample4.h create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample4_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample5_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample6_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample7_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample8_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/samples/sample9_unittest.cc create mode 100755 media/webrtc/trunk/testing/gtest/scripts/fuse_gtest_files.py create mode 100755 media/webrtc/trunk/testing/gtest/scripts/gen_gtest_pred_impl.py create mode 100755 media/webrtc/trunk/testing/gtest/scripts/gtest-config.in create mode 100755 media/webrtc/trunk/testing/gtest/scripts/pump.py create mode 100644 media/webrtc/trunk/testing/gtest/scripts/test/Makefile create mode 100755 media/webrtc/trunk/testing/gtest/scripts/upload.py create mode 100755 media/webrtc/trunk/testing/gtest/scripts/upload_gtest.py create mode 100644 media/webrtc/trunk/testing/gtest/src/gtest-all.cc create mode 100644 media/webrtc/trunk/testing/gtest/src/gtest-death-test.cc create mode 100644 media/webrtc/trunk/testing/gtest/src/gtest-filepath.cc create mode 100644 media/webrtc/trunk/testing/gtest/src/gtest-internal-inl.h create mode 100644 media/webrtc/trunk/testing/gtest/src/gtest-port.cc create mode 100644 media/webrtc/trunk/testing/gtest/src/gtest-printers.cc create mode 100644 media/webrtc/trunk/testing/gtest/src/gtest-test-part.cc create mode 100644 media/webrtc/trunk/testing/gtest/src/gtest-typed-test.cc create mode 100644 media/webrtc/trunk/testing/gtest/src/gtest.cc create mode 100644 media/webrtc/trunk/testing/gtest/src/gtest_main.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-death-test_ex_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-death-test_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-filepath_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-linked_ptr_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-listener_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-message_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-options_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-param-test2_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-param-test_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-param-test_test.h create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-port_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-printers_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-test-part_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-tuple_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-typed-test2_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-typed-test_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-typed-test_test.h create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest-unittest-api_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_all_test.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_break_on_failure_unittest.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_break_on_failure_unittest_.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_catch_exceptions_test.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_catch_exceptions_test_.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_color_test.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_color_test_.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_env_var_test.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_env_var_test_.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_environment_test.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_filter_unittest.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_filter_unittest_.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_help_test.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_help_test_.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_list_tests_unittest.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_list_tests_unittest_.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_main_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_no_test_unittest.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_output_test.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_output_test_.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_output_test_golden_lin.txt create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_pred_impl_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_prod_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_repeat_test.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_shuffle_test.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_shuffle_test_.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_sole_header_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_stress_test.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_test_utils.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_throw_on_failure_ex_test.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_throw_on_failure_test.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_throw_on_failure_test_.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_uninitialized_test.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_uninitialized_test_.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_unittest.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_xml_outfile1_test_.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_xml_outfile2_test_.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_xml_outfiles_test.py create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_xml_output_unittest.py create mode 100644 media/webrtc/trunk/testing/gtest/test/gtest_xml_output_unittest_.cc create mode 100755 media/webrtc/trunk/testing/gtest/test/gtest_xml_test_utils.py create mode 100644 media/webrtc/trunk/testing/gtest/test/production.cc create mode 100644 media/webrtc/trunk/testing/gtest/test/production.h create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Config/DebugProject.xcconfig create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Config/FrameworkTarget.xcconfig create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Config/General.xcconfig create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Config/ReleaseProject.xcconfig create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Config/StaticLibraryTarget.xcconfig create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Config/TestTarget.xcconfig create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Resources/Info.plist create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Samples/FrameworkSample/Info.plist create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Samples/FrameworkSample/runtests.sh create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Samples/FrameworkSample/widget.cc create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Samples/FrameworkSample/widget.h create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Samples/FrameworkSample/widget_test.cc create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Scripts/runtests.sh create mode 100644 media/webrtc/trunk/testing/gtest/xcode/Scripts/versiongenerate.py create mode 100644 media/webrtc/trunk/testing/gtest/xcode/gtest.xcodeproj/project.pbxproj create mode 100644 media/webrtc/trunk/testing/gtest_mac.h create mode 100644 media/webrtc/trunk/testing/gtest_mac.mm create mode 100644 media/webrtc/trunk/testing/gtest_mac_unittest.mm create mode 100644 media/webrtc/trunk/testing/gtest_main.target.mk create mode 100644 media/webrtc/trunk/testing/gtest_prod.host.mk create mode 100644 media/webrtc/trunk/testing/gtest_prod.target.mk create mode 100644 media/webrtc/trunk/testing/multiprocess_func_list.cc create mode 100644 media/webrtc/trunk/testing/multiprocess_func_list.h create mode 100644 media/webrtc/trunk/testing/platform_test.h create mode 100644 media/webrtc/trunk/testing/platform_test_mac.mm create mode 100644 media/webrtc/trunk/third_party/libyuv/AUTHORS create mode 100644 media/webrtc/trunk/third_party/libyuv/DEPS create mode 100644 media/webrtc/trunk/third_party/libyuv/LICENSE create mode 100644 media/webrtc/trunk/third_party/libyuv/PATENTS create mode 100644 media/webrtc/trunk/third_party/libyuv/README.chromium create mode 100644 media/webrtc/trunk/third_party/libyuv/codereview.settings create mode 100644 media/webrtc/trunk/third_party/libyuv/include/libyuv.h create mode 100644 media/webrtc/trunk/third_party/libyuv/include/libyuv/basic_types.h create mode 100644 media/webrtc/trunk/third_party/libyuv/include/libyuv/compare.h create mode 100644 media/webrtc/trunk/third_party/libyuv/include/libyuv/convert.h create mode 100644 media/webrtc/trunk/third_party/libyuv/include/libyuv/cpu_id.h create mode 100644 media/webrtc/trunk/third_party/libyuv/include/libyuv/format_conversion.h create mode 100644 media/webrtc/trunk/third_party/libyuv/include/libyuv/planar_functions.h create mode 100644 media/webrtc/trunk/third_party/libyuv/include/libyuv/rotate.h create mode 100644 media/webrtc/trunk/third_party/libyuv/include/libyuv/scale.h create mode 100644 media/webrtc/trunk/third_party/libyuv/include/libyuv/video_common.h create mode 100644 media/webrtc/trunk/third_party/libyuv/libyuv.Makefile create mode 100644 media/webrtc/trunk/third_party/libyuv/libyuv.gyp create mode 100644 media/webrtc/trunk/third_party/libyuv/libyuv.target.mk create mode 100644 media/webrtc/trunk/third_party/libyuv/libyuv_test.gyp create mode 100644 media/webrtc/trunk/third_party/libyuv/source/compare.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/conversion_tables.h create mode 100644 media/webrtc/trunk/third_party/libyuv/source/convert.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/convertfrom.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/cpu_id.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/format_conversion.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/planar_functions.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/rotate.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/rotate_neon.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/rotate_priv.h create mode 100644 media/webrtc/trunk/third_party/libyuv/source/row.h create mode 100644 media/webrtc/trunk/third_party/libyuv/source/row_common.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/row_neon.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/row_posix.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/row_win.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/scale.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/video_common.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/source/video_common.h create mode 100644 media/webrtc/trunk/third_party/libyuv/unit_test/compare_test.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/unit_test/planar_test.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/unit_test/rotate_test.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/unit_test/scale_test.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/unit_test/unit_test.cc create mode 100644 media/webrtc/trunk/third_party/libyuv/unit_test/unit_test.h create mode 100644 media/webrtc/trunk/tools/.gitignore create mode 100644 media/webrtc/trunk/tools/DEPS create mode 100644 media/webrtc/trunk/tools/OWNERS create mode 100644 media/webrtc/trunk/tools/PRESUBMIT.py create mode 100755 media/webrtc/trunk/tools/add_webrtc_slave_utils.py create mode 100755 media/webrtc/trunk/tools/clang/scripts/package.sh create mode 100755 media/webrtc/trunk/tools/clang/scripts/plugin_flags.sh create mode 100755 media/webrtc/trunk/tools/clang/scripts/update.py create mode 100755 media/webrtc/trunk/tools/clang/scripts/update.sh create mode 100755 media/webrtc/trunk/tools/clang/scripts/update_iwyu.sh create mode 100644 media/webrtc/trunk/tools/codereview.settings create mode 100644 media/webrtc/trunk/tools/continuous_build/OWNERS create mode 100644 media/webrtc/trunk/tools/continuous_build/README create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master-common.mk create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.tryserver.webrtc/Makefile create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.tryserver.webrtc/buildbot create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.tryserver.webrtc/buildbot.tac create mode 100755 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.tryserver.webrtc/master.cfg create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.tryserver.webrtc/public_html/buildbot.css create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.tryserver.webrtc/public_html/favicon.ico create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.tryserver.webrtc/slaves.cfg create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.webrtc/Makefile create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.webrtc/buildbot create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.webrtc/buildbot.tac create mode 100755 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.webrtc/master.cfg create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.webrtc/public_html/buildbot.css create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.webrtc/public_html/default.css create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.webrtc/public_html/favicon.ico create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/masters/master.webrtc/slaves.cfg create mode 100755 media/webrtc/trunk/tools/continuous_build/build_internal/scripts/clean_old_files.py create mode 100755 media/webrtc/trunk/tools/continuous_build/build_internal/scripts/clean_third_party_gcda.sh create mode 100755 media/webrtc/trunk/tools/continuous_build/build_internal/scripts/generate_coverage_html.sh create mode 100755 media/webrtc/trunk/tools/continuous_build/build_internal/scripts/webrtc_buildbot/__init__.py create mode 100755 media/webrtc/trunk/tools/continuous_build/build_internal/scripts/webrtc_buildbot/utils.py create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/scripts/webrtc_buildbot/utils_test.py create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/site_config/config_private.py create mode 100755 media/webrtc/trunk/tools/continuous_build/build_internal/symsrc/cleanup_build.py create mode 100755 media/webrtc/trunk/tools/continuous_build/build_internal/symsrc/webrtc_buildbot/__init__.py create mode 100644 media/webrtc/trunk/tools/continuous_build/build_internal/symsrc/webrtc_buildbot/slave_utils.py create mode 100644 media/webrtc/trunk/tools/coverity/OWNERS create mode 100755 media/webrtc/trunk/tools/coverity/coverity.py create mode 100644 media/webrtc/trunk/tools/create_supplement_gypi.py create mode 100644 media/webrtc/trunk/tools/gyp/.gitignore create mode 100644 media/webrtc/trunk/tools/gyp/AUTHORS create mode 100644 media/webrtc/trunk/tools/gyp/DEPS create mode 100644 media/webrtc/trunk/tools/gyp/LICENSE create mode 100644 media/webrtc/trunk/tools/gyp/MANIFEST create mode 100644 media/webrtc/trunk/tools/gyp/OWNERS create mode 100644 media/webrtc/trunk/tools/gyp/PRESUBMIT.py create mode 100755 media/webrtc/trunk/tools/gyp/buildbot/buildbot_run.py create mode 100644 media/webrtc/trunk/tools/gyp/codereview.settings create mode 100755 media/webrtc/trunk/tools/gyp/gyp create mode 100755 media/webrtc/trunk/tools/gyp/gyp.bat create mode 100644 media/webrtc/trunk/tools/gyp/gyp_dummy.c create mode 100755 media/webrtc/trunk/tools/gyp/gyptest.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/MSVSNew.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/MSVSProject.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/MSVSSettings.py create mode 100755 media/webrtc/trunk/tools/gyp/pylib/gyp/MSVSSettings_test.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/MSVSToolFile.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/MSVSUserFile.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/MSVSVersion.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/SCons.py create mode 100755 media/webrtc/trunk/tools/gyp/pylib/gyp/__init__.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/common.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/easy_xml.py create mode 100755 media/webrtc/trunk/tools/gyp/pylib/gyp/easy_xml_test.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/generator/__init__.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/generator/dump_dependency_json.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/generator/gypd.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/generator/gypsh.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/generator/make.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/generator/msvs.py create mode 100755 media/webrtc/trunk/tools/gyp/pylib/gyp/generator/msvs_test.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/generator/ninja.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/generator/scons.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/generator/xcode.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/input.py create mode 100755 media/webrtc/trunk/tools/gyp/pylib/gyp/mac_tool.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/ninja_syntax.py create mode 100755 media/webrtc/trunk/tools/gyp/pylib/gyp/sun_tool.py create mode 100755 media/webrtc/trunk/tools/gyp/pylib/gyp/system_test.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/xcode_emulation.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/xcodeproj_file.py create mode 100644 media/webrtc/trunk/tools/gyp/pylib/gyp/xml_fix.py create mode 100644 media/webrtc/trunk/tools/gyp/pylintrc create mode 100755 media/webrtc/trunk/tools/gyp/samples/samples create mode 100644 media/webrtc/trunk/tools/gyp/samples/samples.bat create mode 100755 media/webrtc/trunk/tools/gyp/setup.py create mode 100755 media/webrtc/trunk/tools/gyp/test/actions-bare/gyptest-bare.py create mode 100644 media/webrtc/trunk/tools/gyp/test/actions-bare/src/bare.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/actions-bare/src/bare.py create mode 100755 media/webrtc/trunk/tools/gyp/test/actions-multiple/gyptest-all.py create mode 100644 media/webrtc/trunk/tools/gyp/test/actions-multiple/src/actions.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/actions-multiple/src/copy.py create mode 100755 media/webrtc/trunk/tools/gyp/test/actions-multiple/src/filter.py create mode 100644 media/webrtc/trunk/tools/gyp/test/actions-multiple/src/foo.c create mode 100644 media/webrtc/trunk/tools/gyp/test/actions-multiple/src/input.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/actions-multiple/src/main.c create mode 100755 media/webrtc/trunk/tools/gyp/test/actions-subdir/gyptest-action.py create mode 100755 media/webrtc/trunk/tools/gyp/test/actions-subdir/src/make-file.py create mode 100644 media/webrtc/trunk/tools/gyp/test/actions-subdir/src/none.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/actions-subdir/src/subdir/make-subdir-file.py create mode 100644 media/webrtc/trunk/tools/gyp/test/actions-subdir/src/subdir/subdir.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/actions/gyptest-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/actions/gyptest-default.py create mode 100755 media/webrtc/trunk/tools/gyp/test/actions/gyptest-errors.py create mode 100644 media/webrtc/trunk/tools/gyp/test/actions/src/action_missing_name.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/actions/src/actions.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/actions/src/confirm-dep-files.py create mode 100755 media/webrtc/trunk/tools/gyp/test/actions/src/subdir1/counter.py create mode 100644 media/webrtc/trunk/tools/gyp/test/actions/src/subdir1/executable.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/actions/src/subdir1/make-prog1.py create mode 100755 media/webrtc/trunk/tools/gyp/test/actions/src/subdir1/make-prog2.py create mode 100644 media/webrtc/trunk/tools/gyp/test/actions/src/subdir1/program.c create mode 100755 media/webrtc/trunk/tools/gyp/test/actions/src/subdir2/make-file.py create mode 100644 media/webrtc/trunk/tools/gyp/test/actions/src/subdir2/none.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/actions/src/subdir3/generate_main.py create mode 100644 media/webrtc/trunk/tools/gyp/test/actions/src/subdir3/null_input.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/additional-targets/gyptest-additional.py create mode 100644 media/webrtc/trunk/tools/gyp/test/additional-targets/src/all.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/additional-targets/src/dir1/actions.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/additional-targets/src/dir1/emit.py create mode 100644 media/webrtc/trunk/tools/gyp/test/additional-targets/src/dir1/lib1.c create mode 100755 media/webrtc/trunk/tools/gyp/test/assembly/gyptest-assembly.py create mode 100644 media/webrtc/trunk/tools/gyp/test/assembly/src/as.bat create mode 100644 media/webrtc/trunk/tools/gyp/test/assembly/src/assembly.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/assembly/src/lib1.S create mode 100644 media/webrtc/trunk/tools/gyp/test/assembly/src/lib1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/assembly/src/program.c create mode 100755 media/webrtc/trunk/tools/gyp/test/builddir/gyptest-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/builddir/gyptest-default.py create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/builddir.gypi create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/func1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/func2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/func3.c create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/func4.c create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/func5.c create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/prog1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/prog1.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/subdir2/prog2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/subdir2/prog2.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/subdir2/subdir3/prog3.c create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/subdir2/subdir3/prog3.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/subdir2/subdir3/subdir4/prog4.c create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/subdir2/subdir3/subdir4/prog4.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/subdir2/subdir3/subdir4/subdir5/prog5.c create mode 100644 media/webrtc/trunk/tools/gyp/test/builddir/src/subdir2/subdir3/subdir4/subdir5/prog5.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/cflags/cflags.c create mode 100644 media/webrtc/trunk/tools/gyp/test/cflags/cflags.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/cflags/gyptest-cflags.py create mode 100755 media/webrtc/trunk/tools/gyp/test/compilable/gyptest-headers.py create mode 100644 media/webrtc/trunk/tools/gyp/test/compilable/src/headers.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/compilable/src/lib1.cpp create mode 100644 media/webrtc/trunk/tools/gyp/test/compilable/src/lib1.hpp create mode 100644 media/webrtc/trunk/tools/gyp/test/compilable/src/program.cpp create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/basics/configurations.c create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/basics/configurations.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/configurations/basics/gyptest-configurations.py create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/inheritance/configurations.c create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/inheritance/configurations.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/configurations/inheritance/gyptest-inheritance.py create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/invalid/actions.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/invalid/all_dependent_settings.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/invalid/configurations.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/invalid/dependencies.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/invalid/direct_dependent_settings.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/configurations/invalid/gyptest-configurations.py create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/invalid/libraries.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/invalid/link_settings.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/invalid/sources.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/invalid/target_name.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/invalid/type.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/target_platform/configurations.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/target_platform/front.c create mode 100755 media/webrtc/trunk/tools/gyp/test/configurations/target_platform/gyptest-target_platform.py create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/target_platform/left.c create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/target_platform/right.c create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/x64/configurations.c create mode 100644 media/webrtc/trunk/tools/gyp/test/configurations/x64/configurations.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/configurations/x64/gyptest-x86.py create mode 100755 media/webrtc/trunk/tools/gyp/test/copies/gyptest-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/copies/gyptest-default.py create mode 100755 media/webrtc/trunk/tools/gyp/test/copies/gyptest-slash.py create mode 100644 media/webrtc/trunk/tools/gyp/test/copies/src/copies-slash.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/copies/src/copies.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/copies/src/directory/file3 create mode 100644 media/webrtc/trunk/tools/gyp/test/copies/src/directory/file4 create mode 100644 media/webrtc/trunk/tools/gyp/test/copies/src/directory/subdir/file5 create mode 100644 media/webrtc/trunk/tools/gyp/test/copies/src/file1 create mode 100644 media/webrtc/trunk/tools/gyp/test/copies/src/file2 create mode 100644 media/webrtc/trunk/tools/gyp/test/copies/src/parentdir/subdir/file6 create mode 100644 media/webrtc/trunk/tools/gyp/test/cxxflags/cxxflags.cc create mode 100644 media/webrtc/trunk/tools/gyp/test/cxxflags/cxxflags.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/cxxflags/gyptest-cxxflags.py create mode 100644 media/webrtc/trunk/tools/gyp/test/defines-escaping/defines-escaping.c create mode 100644 media/webrtc/trunk/tools/gyp/test/defines-escaping/defines-escaping.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/defines-escaping/gyptest-defines-escaping.py create mode 100644 media/webrtc/trunk/tools/gyp/test/defines/defines-env.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/defines/defines.c create mode 100644 media/webrtc/trunk/tools/gyp/test/defines/defines.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/defines/gyptest-define-override.py create mode 100755 media/webrtc/trunk/tools/gyp/test/defines/gyptest-defines-env-regyp.py create mode 100755 media/webrtc/trunk/tools/gyp/test/defines/gyptest-defines-env.py create mode 100755 media/webrtc/trunk/tools/gyp/test/defines/gyptest-defines.py create mode 100755 media/webrtc/trunk/tools/gyp/test/dependencies/a.c create mode 100755 media/webrtc/trunk/tools/gyp/test/dependencies/b/b.c create mode 100755 media/webrtc/trunk/tools/gyp/test/dependencies/b/b.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/dependencies/b/b3.c create mode 100644 media/webrtc/trunk/tools/gyp/test/dependencies/c/c.c create mode 100644 media/webrtc/trunk/tools/gyp/test/dependencies/c/c.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/dependencies/c/d.c create mode 100644 media/webrtc/trunk/tools/gyp/test/dependencies/extra_targets.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/dependencies/gyptest-extra-targets.py create mode 100755 media/webrtc/trunk/tools/gyp/test/dependencies/gyptest-lib-only.py create mode 100755 media/webrtc/trunk/tools/gyp/test/dependencies/gyptest-none-traversal.py create mode 100755 media/webrtc/trunk/tools/gyp/test/dependencies/lib_only.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/dependencies/main.c create mode 100755 media/webrtc/trunk/tools/gyp/test/dependencies/none_traversal.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/dependency-copy/gyptest-copy.py create mode 100644 media/webrtc/trunk/tools/gyp/test/dependency-copy/src/copies.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/dependency-copy/src/file1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/dependency-copy/src/file2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/exclusion/exclusion.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/exclusion/gyptest-exclusion.py create mode 100644 media/webrtc/trunk/tools/gyp/test/exclusion/hello.c create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/actions/actions.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/actions/build/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/actions/subdir1/actions-out/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/actions/subdir1/build/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/actions/subdir1/executable.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/generator-output/actions/subdir1/make-prog1.py create mode 100755 media/webrtc/trunk/tools/gyp/test/generator-output/actions/subdir1/make-prog2.py create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/actions/subdir1/program.c create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/actions/subdir2/actions-out/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/actions/subdir2/build/README.txt create mode 100755 media/webrtc/trunk/tools/gyp/test/generator-output/actions/subdir2/make-file.py create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/actions/subdir2/none.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/copies/build/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/copies/copies-out/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/copies/copies.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/copies/file1 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/copies/file2 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/copies/subdir/build/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/copies/subdir/copies-out/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/copies/subdir/file3 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/copies/subdir/file4 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/copies/subdir/subdir.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/generator-output/gyptest-actions.py create mode 100755 media/webrtc/trunk/tools/gyp/test/generator-output/gyptest-copies.py create mode 100755 media/webrtc/trunk/tools/gyp/test/generator-output/gyptest-relocate.py create mode 100755 media/webrtc/trunk/tools/gyp/test/generator-output/gyptest-rules.py create mode 100755 media/webrtc/trunk/tools/gyp/test/generator-output/gyptest-subdir2-deep.py create mode 100755 media/webrtc/trunk/tools/gyp/test/generator-output/gyptest-top-all.py create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/build/README.txt create mode 100755 media/webrtc/trunk/tools/gyp/test/generator-output/rules/copy-file.py create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/rules.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir1/build/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir1/define3.in0 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir1/define4.in0 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir1/executable.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir1/function1.in1 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir1/function2.in1 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir1/program.c create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir2/build/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir2/file1.in0 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir2/file2.in0 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir2/file3.in1 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir2/file4.in1 create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir2/none.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/rules/subdir2/rules-out/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/build/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/inc.h create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/inc1/include1.h create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/prog1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/prog1.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir2/build/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir2/deeper/build/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir2/deeper/deeper.c create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir2/deeper/deeper.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir2/deeper/deeper.h create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir2/inc2/include2.h create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir2/prog2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir2/prog2.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir3/build/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir3/inc3/include3.h create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir3/prog3.c create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/subdir3/prog3.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/generator-output/src/symroot.gypi create mode 100755 media/webrtc/trunk/tools/gyp/test/hard_dependency/gyptest-exported-hard-dependency.py create mode 100755 media/webrtc/trunk/tools/gyp/test/hard_dependency/gyptest-no-exported-hard-dependency.py create mode 100644 media/webrtc/trunk/tools/gyp/test/hard_dependency/src/a.c create mode 100644 media/webrtc/trunk/tools/gyp/test/hard_dependency/src/a.h create mode 100644 media/webrtc/trunk/tools/gyp/test/hard_dependency/src/b.c create mode 100644 media/webrtc/trunk/tools/gyp/test/hard_dependency/src/b.h create mode 100644 media/webrtc/trunk/tools/gyp/test/hard_dependency/src/c.c create mode 100644 media/webrtc/trunk/tools/gyp/test/hard_dependency/src/c.h create mode 100644 media/webrtc/trunk/tools/gyp/test/hard_dependency/src/d.c create mode 100755 media/webrtc/trunk/tools/gyp/test/hard_dependency/src/emit.py create mode 100644 media/webrtc/trunk/tools/gyp/test/hard_dependency/src/hard_dependency.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/hello/gyptest-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/hello/gyptest-default.py create mode 100755 media/webrtc/trunk/tools/gyp/test/hello/gyptest-disable-regyp.py create mode 100755 media/webrtc/trunk/tools/gyp/test/hello/gyptest-regyp.py create mode 100755 media/webrtc/trunk/tools/gyp/test/hello/gyptest-target.py create mode 100644 media/webrtc/trunk/tools/gyp/test/hello/hello.c create mode 100644 media/webrtc/trunk/tools/gyp/test/hello/hello.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/hello/hello2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/hello/hello2.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/home_dot_gyp/gyptest-home-includes-regyp.py create mode 100755 media/webrtc/trunk/tools/gyp/test/home_dot_gyp/gyptest-home-includes.py create mode 100644 media/webrtc/trunk/tools/gyp/test/home_dot_gyp/home/.gyp/include.gypi create mode 100644 media/webrtc/trunk/tools/gyp/test/home_dot_gyp/home2/.gyp/include.gypi create mode 100644 media/webrtc/trunk/tools/gyp/test/home_dot_gyp/src/all.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/home_dot_gyp/src/printfoo.c create mode 100755 media/webrtc/trunk/tools/gyp/test/include_dirs/gyptest-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/include_dirs/gyptest-default.py create mode 100644 media/webrtc/trunk/tools/gyp/test/include_dirs/src/inc.h create mode 100644 media/webrtc/trunk/tools/gyp/test/include_dirs/src/inc1/include1.h create mode 100644 media/webrtc/trunk/tools/gyp/test/include_dirs/src/includes.c create mode 100644 media/webrtc/trunk/tools/gyp/test/include_dirs/src/includes.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/include_dirs/src/shadow1/shadow.h create mode 100644 media/webrtc/trunk/tools/gyp/test/include_dirs/src/shadow2/shadow.h create mode 100644 media/webrtc/trunk/tools/gyp/test/include_dirs/src/subdir/inc.h create mode 100644 media/webrtc/trunk/tools/gyp/test/include_dirs/src/subdir/inc2/include2.h create mode 100644 media/webrtc/trunk/tools/gyp/test/include_dirs/src/subdir/subdir_includes.c create mode 100644 media/webrtc/trunk/tools/gyp/test/include_dirs/src/subdir/subdir_includes.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/intermediate_dir/gyptest-intermediate-dir.py create mode 100755 media/webrtc/trunk/tools/gyp/test/intermediate_dir/src/script.py create mode 100644 media/webrtc/trunk/tools/gyp/test/intermediate_dir/src/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/intermediate_dir/src/test2.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/lib/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/lib/TestCmd.py create mode 100644 media/webrtc/trunk/tools/gyp/test/lib/TestCommon.py create mode 100644 media/webrtc/trunk/tools/gyp/test/lib/TestGyp.py create mode 100755 media/webrtc/trunk/tools/gyp/test/library/gyptest-shared-obj-install-path.py create mode 100755 media/webrtc/trunk/tools/gyp/test/library/gyptest-shared.py create mode 100755 media/webrtc/trunk/tools/gyp/test/library/gyptest-static.py create mode 100644 media/webrtc/trunk/tools/gyp/test/library/src/lib1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/library/src/lib1_moveable.c create mode 100644 media/webrtc/trunk/tools/gyp/test/library/src/lib2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/library/src/lib2_moveable.c create mode 100644 media/webrtc/trunk/tools/gyp/test/library/src/library.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/library/src/program.c create mode 100644 media/webrtc/trunk/tools/gyp/test/library/src/shared_dependency.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/link-objects/base.c create mode 100644 media/webrtc/trunk/tools/gyp/test/link-objects/extra.c create mode 100755 media/webrtc/trunk/tools/gyp/test/link-objects/gyptest-all.py create mode 100644 media/webrtc/trunk/tools/gyp/test/link-objects/link-objects.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/action-envvars/action/action.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/action-envvars/action/action.sh create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/app-bundle/TestApp/English.lproj/InfoPlist.strings create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/app-bundle/TestApp/English.lproj/MainMenu.xib create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/app-bundle/TestApp/TestApp-Info.plist create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/app-bundle/TestApp/TestAppAppDelegate.h create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/app-bundle/TestApp/TestAppAppDelegate.m create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/app-bundle/TestApp/main.m create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/app-bundle/empty.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/app-bundle/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/copy-dylib/empty.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/copy-dylib/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/debuginfo/file.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/debuginfo/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/depend-on-bundle/English.lproj/InfoPlist.strings create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/depend-on-bundle/Info.plist create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/depend-on-bundle/bundle.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/depend-on-bundle/executable.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/depend-on-bundle/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/framework/TestFramework/English.lproj/InfoPlist.strings create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/framework/TestFramework/Info.plist create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/framework/TestFramework/ObjCVector.h create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/framework/TestFramework/ObjCVector.mm create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/framework/TestFramework/ObjCVectorInternal.h create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/framework/TestFramework/TestFramework_Prefix.pch create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/framework/empty.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/framework/framework.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/global-settings/src/dir1/dir1.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/global-settings/src/dir2/dir2.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/global-settings/src/dir2/file.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/gyptest-action-envvars.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-app.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-copies.py create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/gyptest-copy-dylib.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-debuginfo.py create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/gyptest-depend-on-bundle.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-framework.py create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/gyptest-global-settings.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-infoplist-process.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-libraries.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-loadable-module.py create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/gyptest-non-strs-flattened-to-env.py create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/gyptest-postbuild-copy-bundle.py create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/gyptest-postbuild-defaults.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-postbuild-fail.py create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/gyptest-postbuild-multiple-configurations.py create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/gyptest-postbuild-static-library.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-postbuild.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-prefixheader.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-rebuild.py create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/gyptest-sourceless-module.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-strip.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-type-envvars.py create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/gyptest-xcode-env-order.py create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/infoplist-process/Info.plist create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/infoplist-process/main.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/infoplist-process/test1.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/infoplist-process/test2.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/infoplist-process/test3.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/libraries/subdir/README.txt create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/libraries/subdir/hello.cc create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/libraries/subdir/mylib.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/libraries/subdir/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/loadable-module/Info.plist create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/loadable-module/module.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/loadable-module/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/non-strs-flattened-to-env/Info.plist create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/non-strs-flattened-to-env/main.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/non-strs-flattened-to-env/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-copy-bundle/Framework-Info.plist create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-copy-bundle/TestApp-Info.plist create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-copy-bundle/empty.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-copy-bundle/main.c create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/postbuild-copy-bundle/postbuild-copy-framework.sh create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-copy-bundle/resource_file.sb create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-copy-bundle/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-defaults/Info.plist create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-defaults/main.c create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/postbuild-defaults/postbuild-defaults.sh create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-defaults/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-fail/file.c create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/postbuild-fail/postbuild-fail.sh create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-fail/test.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/postbuild-fail/touch-dynamic.sh create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/postbuild-fail/touch-static.sh create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-multiple-configurations/main.c create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/postbuild-multiple-configurations/postbuild-touch-file.sh create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-multiple-configurations/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-static-library/empty.c create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/postbuild-static-library/postbuild-touch-file.sh create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuild-static-library/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuilds/file.c create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/postbuilds/script/shared_library_postbuild.sh create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/postbuilds/script/static_library_postbuild.sh create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuilds/subdirectory/nested_target.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/postbuilds/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/prefixheader/file.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/prefixheader/file.cc create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/prefixheader/file.m create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/prefixheader/file.mm create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/prefixheader/header.h create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/prefixheader/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/rebuild/TestApp-Info.plist create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/rebuild/delay-touch.sh create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/rebuild/empty.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/rebuild/main.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/rebuild/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/sourceless-module/empty.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/sourceless-module/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/strip/file.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/strip/strip.saves create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/strip/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/type_envvars/file.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/type_envvars/test.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/type_envvars/test_bundle_executable.sh create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/type_envvars/test_bundle_loadable_module.sh create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/type_envvars/test_bundle_shared_library.sh create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/type_envvars/test_nonbundle_executable.sh create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/type_envvars/test_nonbundle_loadable_module.sh create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/type_envvars/test_nonbundle_none.sh create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/type_envvars/test_nonbundle_shared_library.sh create mode 100755 media/webrtc/trunk/tools/gyp/test/mac/type_envvars/test_nonbundle_static_library.sh create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/xcode-env-order/Info.plist create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/xcode-env-order/main.c create mode 100644 media/webrtc/trunk/tools/gyp/test/mac/xcode-env-order/test.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/make/dependencies.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/make/gyptest-dependencies.py create mode 100755 media/webrtc/trunk/tools/gyp/test/make/gyptest-noload.py create mode 100644 media/webrtc/trunk/tools/gyp/test/make/main.cc create mode 100644 media/webrtc/trunk/tools/gyp/test/make/main.h create mode 100644 media/webrtc/trunk/tools/gyp/test/make/noload/all.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/make/noload/lib/shared.c create mode 100644 media/webrtc/trunk/tools/gyp/test/make/noload/lib/shared.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/make/noload/lib/shared.h create mode 100644 media/webrtc/trunk/tools/gyp/test/make/noload/main.c create mode 100755 media/webrtc/trunk/tools/gyp/test/module/gyptest-default.py create mode 100644 media/webrtc/trunk/tools/gyp/test/module/src/lib1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/module/src/lib2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/module/src/module.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/module/src/program.c create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/express/base/base.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/express/express.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/msvs/express/gyptest-express.py create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/list_excluded/gyptest-all.py create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/list_excluded/hello.cpp create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/list_excluded/hello_exclude.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/list_excluded/hello_mac.cpp create mode 100755 media/webrtc/trunk/tools/gyp/test/msvs/precompiled/gyptest-all.py create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/precompiled/hello.c create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/precompiled/hello.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/precompiled/hello2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/precompiled/precomp.c create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/uldi2010/gyptest-all.py create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/uldi2010/hello.c create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/uldi2010/hello.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/msvs/uldi2010/hello2.c create mode 100755 media/webrtc/trunk/tools/gyp/test/multiple-targets/gyptest-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/multiple-targets/gyptest-default.py create mode 100644 media/webrtc/trunk/tools/gyp/test/multiple-targets/src/common.c create mode 100644 media/webrtc/trunk/tools/gyp/test/multiple-targets/src/multiple.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/multiple-targets/src/prog1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/multiple-targets/src/prog2.c create mode 100755 media/webrtc/trunk/tools/gyp/test/ninja/action_dependencies/gyptest-action-dependencies.py create mode 100644 media/webrtc/trunk/tools/gyp/test/ninja/action_dependencies/src/a.c create mode 100644 media/webrtc/trunk/tools/gyp/test/ninja/action_dependencies/src/a.h create mode 100644 media/webrtc/trunk/tools/gyp/test/ninja/action_dependencies/src/action_dependencies.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/ninja/action_dependencies/src/b.c create mode 100644 media/webrtc/trunk/tools/gyp/test/ninja/action_dependencies/src/b.h create mode 100644 media/webrtc/trunk/tools/gyp/test/ninja/action_dependencies/src/c.c create mode 100644 media/webrtc/trunk/tools/gyp/test/ninja/action_dependencies/src/c.h create mode 100755 media/webrtc/trunk/tools/gyp/test/ninja/action_dependencies/src/emit.py create mode 100755 media/webrtc/trunk/tools/gyp/test/no-output/gyptest-no-output.py create mode 100644 media/webrtc/trunk/tools/gyp/test/no-output/src/nooutput.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/product/gyptest-product.py create mode 100644 media/webrtc/trunk/tools/gyp/test/product/hello.c create mode 100644 media/webrtc/trunk/tools/gyp/test/product/product.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/relative/foo/a/a.cc create mode 100644 media/webrtc/trunk/tools/gyp/test/relative/foo/a/a.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/relative/foo/a/c/c.cc create mode 100644 media/webrtc/trunk/tools/gyp/test/relative/foo/a/c/c.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/relative/foo/b/b.cc create mode 100644 media/webrtc/trunk/tools/gyp/test/relative/foo/b/b.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/relative/gyptest-default.py create mode 100644 media/webrtc/trunk/tools/gyp/test/restat/gyptest-restat.py create mode 100644 media/webrtc/trunk/tools/gyp/test/restat/src/create_intermediate.py create mode 100644 media/webrtc/trunk/tools/gyp/test/restat/src/restat.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/rules-dirname/gyptest-dirname.py create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-dirname/src/actions.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/rules-dirname/src/copy-file.py create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-dirname/src/subdir/a/b/c.gencc create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-dirname/src/subdir/a/b/c.printvars create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-dirname/src/subdir/foo/bar/baz.gencc create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-dirname/src/subdir/foo/bar/baz.printvars create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-dirname/src/subdir/input-rule-dirname.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-dirname/src/subdir/main.cc create mode 100755 media/webrtc/trunk/tools/gyp/test/rules-dirname/src/subdir/printvars.py create mode 100755 media/webrtc/trunk/tools/gyp/test/rules-rebuild/gyptest-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/rules-rebuild/gyptest-default.py create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-rebuild/src/main.c create mode 100755 media/webrtc/trunk/tools/gyp/test/rules-rebuild/src/make-sources.py create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-rebuild/src/prog1.in create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-rebuild/src/prog2.in create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-rebuild/src/same_target.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/rules-variables/gyptest-rules-variables.py create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-variables/src/input_ext.c create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-variables/src/input_name/test.c create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-variables/src/input_path/subdir/test.c create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-variables/src/subdir/input_dirname.c create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-variables/src/subdir/test.c create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-variables/src/test.input_root.c create mode 100644 media/webrtc/trunk/tools/gyp/test/rules-variables/src/variables.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/rules/gyptest-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/rules/gyptest-default.py create mode 100755 media/webrtc/trunk/tools/gyp/test/rules/gyptest-input-root.py create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/actions.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/rules/src/copy-file.py create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/external/external.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/external/file1.in create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/external/file2.in create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/input-root.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/rules/src/rule.py create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/somefile.ext create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir1/executable.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir1/function1.in create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir1/function2.in create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir1/program.c create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir2/file1.in create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir2/file2.in create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir2/never_used.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir2/no_inputs.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir2/none.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir3/executable2.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir3/function3.in create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir3/program.c create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir4/asm-function.asm create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir4/build-asm.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/rules/src/subdir4/program.c create mode 100755 media/webrtc/trunk/tools/gyp/test/same-gyp-name/gyptest-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/same-gyp-name/gyptest-default.py create mode 100644 media/webrtc/trunk/tools/gyp/test/same-gyp-name/src/all.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/same-gyp-name/src/subdir1/executable.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/same-gyp-name/src/subdir1/main1.cc create mode 100644 media/webrtc/trunk/tools/gyp/test/same-gyp-name/src/subdir2/executable.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/same-gyp-name/src/subdir2/main2.cc create mode 100755 media/webrtc/trunk/tools/gyp/test/same-name/gyptest-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/same-name/gyptest-default.py create mode 100644 media/webrtc/trunk/tools/gyp/test/same-name/src/all.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/same-name/src/func.c create mode 100644 media/webrtc/trunk/tools/gyp/test/same-name/src/prog1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/same-name/src/prog2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/same-name/src/subdir1/func.c create mode 100644 media/webrtc/trunk/tools/gyp/test/same-name/src/subdir2/func.c create mode 100755 media/webrtc/trunk/tools/gyp/test/same-target-name/gyptest-same-target-name.py create mode 100644 media/webrtc/trunk/tools/gyp/test/same-target-name/src/all.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/same-target-name/src/executable1.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/same-target-name/src/executable2.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/scons_tools/gyptest-tools.py create mode 100644 media/webrtc/trunk/tools/gyp/test/scons_tools/site_scons/site_tools/this_tool.py create mode 100644 media/webrtc/trunk/tools/gyp/test/scons_tools/tools.c create mode 100644 media/webrtc/trunk/tools/gyp/test/scons_tools/tools.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/sibling/gyptest-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/sibling/gyptest-relocate.py create mode 100644 media/webrtc/trunk/tools/gyp/test/sibling/src/build/all.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/sibling/src/prog1/prog1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/sibling/src/prog1/prog1.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/sibling/src/prog2/prog2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/sibling/src/prog2/prog2.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/small/gyptest-small.py create mode 100755 media/webrtc/trunk/tools/gyp/test/subdirectory/gyptest-SYMROOT-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/subdirectory/gyptest-SYMROOT-default.py create mode 100755 media/webrtc/trunk/tools/gyp/test/subdirectory/gyptest-subdir-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/subdirectory/gyptest-subdir-default.py create mode 100755 media/webrtc/trunk/tools/gyp/test/subdirectory/gyptest-subdir2-deep.py create mode 100755 media/webrtc/trunk/tools/gyp/test/subdirectory/gyptest-top-all.py create mode 100755 media/webrtc/trunk/tools/gyp/test/subdirectory/gyptest-top-default.py create mode 100644 media/webrtc/trunk/tools/gyp/test/subdirectory/src/prog1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/subdirectory/src/prog1.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/subdirectory/src/subdir/prog2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/subdirectory/src/subdir/prog2.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/subdirectory/src/subdir/subdir2/prog3.c create mode 100644 media/webrtc/trunk/tools/gyp/test/subdirectory/src/subdir/subdir2/prog3.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/subdirectory/src/symroot.gypi create mode 100755 media/webrtc/trunk/tools/gyp/test/toolsets/gyptest-toolsets.py create mode 100644 media/webrtc/trunk/tools/gyp/test/toolsets/main.cc create mode 100644 media/webrtc/trunk/tools/gyp/test/toolsets/toolsets.cc create mode 100644 media/webrtc/trunk/tools/gyp/test/toolsets/toolsets.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/toplevel-dir/gyptest-toplevel-dir.py create mode 100644 media/webrtc/trunk/tools/gyp/test/toplevel-dir/src/sub1/main.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/toplevel-dir/src/sub1/prog1.c create mode 100644 media/webrtc/trunk/tools/gyp/test/toplevel-dir/src/sub2/prog2.c create mode 100644 media/webrtc/trunk/tools/gyp/test/toplevel-dir/src/sub2/prog2.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/commands/commands-repeated.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/commands/commands-repeated.gyp.stdout create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/commands/commands-repeated.gypd.golden create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/commands/commands.gyp create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/commands/commands.gyp.ignore-env.stdout create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/commands/commands.gyp.stdout create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/commands/commands.gypd.golden create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/commands/commands.gypi create mode 100755 media/webrtc/trunk/tools/gyp/test/variables/commands/gyptest-commands-ignore-env.py create mode 100755 media/webrtc/trunk/tools/gyp/test/variables/commands/gyptest-commands-repeated.py create mode 100755 media/webrtc/trunk/tools/gyp/test/variables/commands/gyptest-commands.py create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/commands/test.py create mode 100755 media/webrtc/trunk/tools/gyp/test/variables/commands/update_golden create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/filelist/filelist.gyp.stdout create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/filelist/filelist.gypd.golden create mode 100755 media/webrtc/trunk/tools/gyp/test/variables/filelist/gyptest-filelist.py create mode 100644 media/webrtc/trunk/tools/gyp/test/variables/filelist/src/filelist.gyp create mode 100755 media/webrtc/trunk/tools/gyp/test/variables/filelist/update_golden create mode 100755 media/webrtc/trunk/tools/gyp/test/variants/gyptest-variants.py create mode 100644 media/webrtc/trunk/tools/gyp/test/variants/src/variants.c create mode 100644 media/webrtc/trunk/tools/gyp/test/variants/src/variants.gyp create mode 100644 media/webrtc/trunk/tools/gyp/tools/README create mode 100644 media/webrtc/trunk/tools/gyp/tools/Xcode/README create mode 100644 media/webrtc/trunk/tools/gyp/tools/Xcode/Specifications/gyp.pbfilespec create mode 100644 media/webrtc/trunk/tools/gyp/tools/Xcode/Specifications/gyp.xclangspec create mode 100755 media/webrtc/trunk/tools/gyp/tools/graphviz.py create mode 100755 media/webrtc/trunk/tools/gyp/tools/pretty_gyp.py create mode 100755 media/webrtc/trunk/tools/gyp/tools/pretty_sln.py create mode 100755 media/webrtc/trunk/tools/gyp/tools/pretty_vcproj.py create mode 100644 media/webrtc/trunk/tools/matlab/maxUnwrap.m create mode 100644 media/webrtc/trunk/tools/matlab/parseLog.m create mode 100644 media/webrtc/trunk/tools/python/google/__init__.py create mode 100755 media/webrtc/trunk/tools/python/google/gethash_timer.py create mode 100644 media/webrtc/trunk/tools/python/google/httpd_config/httpd.conf create mode 100644 media/webrtc/trunk/tools/python/google/httpd_config/httpd2.conf create mode 100644 media/webrtc/trunk/tools/python/google/httpd_config/httpd2.pem create mode 100644 media/webrtc/trunk/tools/python/google/httpd_config/httpd2_linux.conf create mode 100644 media/webrtc/trunk/tools/python/google/httpd_config/httpd2_mac.conf create mode 100644 media/webrtc/trunk/tools/python/google/httpd_config/mime.types create mode 100644 media/webrtc/trunk/tools/python/google/httpd_config/root_ca_cert.crt create mode 100755 media/webrtc/trunk/tools/python/google/httpd_utils.py create mode 100644 media/webrtc/trunk/tools/python/google/logging_utils.py create mode 100644 media/webrtc/trunk/tools/python/google/path_utils.py create mode 100644 media/webrtc/trunk/tools/python/google/platform_utils.py create mode 100644 media/webrtc/trunk/tools/python/google/platform_utils_linux.py create mode 100644 media/webrtc/trunk/tools/python/google/platform_utils_mac.py create mode 100644 media/webrtc/trunk/tools/python/google/platform_utils_win.py create mode 100644 media/webrtc/trunk/tools/python/google/process_utils.py create mode 100644 media/webrtc/trunk/tools/python_charts/OWNERS create mode 100644 media/webrtc/trunk/tools/python_charts/README create mode 100644 media/webrtc/trunk/tools/python_charts/app.yaml create mode 100644 media/webrtc/trunk/tools/python_charts/data/vp8_hw.py create mode 100644 media/webrtc/trunk/tools/python_charts/data/vp8_sw.py create mode 120000 media/webrtc/trunk/tools/python_charts/gviz_api.py create mode 100644 media/webrtc/trunk/tools/python_charts/templates/chart_page_template.html create mode 100644 media/webrtc/trunk/tools/python_charts/webrtc/__init__.py create mode 100644 media/webrtc/trunk/tools/python_charts/webrtc/data_helper.py create mode 100644 media/webrtc/trunk/tools/python_charts/webrtc/data_helper_test.py create mode 100644 media/webrtc/trunk/tools/python_charts/webrtc/main.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/OWNERS create mode 100644 media/webrtc/trunk/tools/quality_tracking/README create mode 100644 media/webrtc/trunk/tools/quality_tracking/constants.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/add_build_status_data.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/add_coverage_data.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/app.yaml create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/dashboard.py create mode 120000 media/webrtc/trunk/tools/quality_tracking/dashboard/gaeunit.py create mode 120000 media/webrtc/trunk/tools/quality_tracking/dashboard/gviz_api.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/index.yaml create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/lkgr_page.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/load_build_status.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/load_coverage.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/main.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/oauth_post_request_handler.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/static/google403c95edcde16425.html create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/stylesheets/stylesheet.css create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard/templates/dashboard_template.html create mode 100755 media/webrtc/trunk/tools/quality_tracking/dashboard/test/load_build_status_test.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/dashboard_connection.py create mode 120000 media/webrtc/trunk/tools/quality_tracking/oauth2 create mode 100755 media/webrtc/trunk/tools/quality_tracking/request_oauth_permission.py create mode 100644 media/webrtc/trunk/tools/quality_tracking/tgrid_parser.py create mode 100755 media/webrtc/trunk/tools/quality_tracking/tgrid_parser_test.py create mode 100755 media/webrtc/trunk/tools/quality_tracking/track_build_status.py create mode 100755 media/webrtc/trunk/tools/quality_tracking/track_build_status_test.py create mode 100755 media/webrtc/trunk/tools/quality_tracking/track_coverage.py create mode 100644 media/webrtc/trunk/tools/refactoring/addfileheader.py create mode 100644 media/webrtc/trunk/tools/refactoring/filemanagement.py create mode 100644 media/webrtc/trunk/tools/refactoring/fixincludeguards.py create mode 100644 media/webrtc/trunk/tools/refactoring/fixnames.py create mode 100644 media/webrtc/trunk/tools/refactoring/integratefiles.py create mode 100644 media/webrtc/trunk/tools/refactoring/p4commands.py create mode 100644 media/webrtc/trunk/tools/refactoring/removetrace.py create mode 100644 media/webrtc/trunk/tools/refactoring/stringmanipulation.py create mode 100644 media/webrtc/trunk/tools/refactoring/trim.py create mode 100644 media/webrtc/trunk/tools/refactoring/trimall.py create mode 100644 media/webrtc/trunk/tools/resources/OWNERS create mode 100755 media/webrtc/trunk/tools/resources/update.py create mode 100644 media/webrtc/trunk/tools/valgrind-webrtc/memcheck/suppressions.txt create mode 100644 media/webrtc/trunk/tools/valgrind-webrtc/memcheck/suppressions_mac.txt create mode 100755 media/webrtc/trunk/tools/valgrind-webrtc/webrtc_tests.py create mode 100755 media/webrtc/trunk/tools/valgrind-webrtc/webrtc_tests.sh create mode 100644 media/webrtc/trunk/tools/valgrind/OWNERS create mode 100644 media/webrtc/trunk/tools/valgrind/asan/asan_test.py create mode 100755 media/webrtc/trunk/tools/valgrind/asan/asan_wrapper.sh create mode 100755 media/webrtc/trunk/tools/valgrind/asan/chrome_tests.py create mode 100755 media/webrtc/trunk/tools/valgrind/asan/chrome_tests.sh create mode 100644 media/webrtc/trunk/tools/valgrind/browser_wrapper_win.py create mode 100755 media/webrtc/trunk/tools/valgrind/chrome_tests.bat create mode 100755 media/webrtc/trunk/tools/valgrind/chrome_tests.py create mode 100755 media/webrtc/trunk/tools/valgrind/chrome_tests.sh create mode 100644 media/webrtc/trunk/tools/valgrind/common.py create mode 100644 media/webrtc/trunk/tools/valgrind/drmemory.bat create mode 100644 media/webrtc/trunk/tools/valgrind/drmemory/PRESUBMIT.py create mode 100644 media/webrtc/trunk/tools/valgrind/drmemory/suppressions.txt create mode 100644 media/webrtc/trunk/tools/valgrind/drmemory/suppressions_full.txt create mode 100755 media/webrtc/trunk/tools/valgrind/drmemory_analyze.py create mode 100644 media/webrtc/trunk/tools/valgrind/gdb_helper.py create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/OWNERS create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/base_unittests.gtest-asan.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/base_unittests.gtest-drmemory_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/base_unittests.gtest-tsan.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/base_unittests.gtest-tsan_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/base_unittests.gtest-tsan_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/base_unittests.gtest.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/base_unittests.gtest_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/base_unittests.gtest_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/content_unittests.gtest_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/crypto_unittests.gtest-tsan_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/gfx_unittests.gtest-tsan.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/interactive_ui_tests.gtest.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/ipc_tests.gtest-drmemory_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/ipc_tests.gtest-tsan_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/ipc_tests.gtest.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/media_unittests.gtest-drmemory_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/media_unittests.gtest-tsan_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/media_unittests.gtest-tsan_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/media_unittests.gtest.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/media_unittests.gtest_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/net_unittests.gtest-drmemory_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/net_unittests.gtest-memcheck.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/net_unittests.gtest-tsan.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/net_unittests.gtest-tsan_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/net_unittests.gtest-tsan_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/net_unittests.gtest.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/net_unittests.gtest_linux.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/net_unittests.gtest_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/printing_unittests.gtest-drmemory_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/remoting_unittests.gtest-drmemory_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/remoting_unittests.gtest-tsan.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/remoting_unittests.gtest-tsan_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/remoting_unittests.gtest.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/safe_browsing_tests.gtest_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/suppressions.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/test_shell_tests.gtest.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/ui_tests.gtest-tsan.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/ui_tests.gtest-tsan_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/ui_tests.gtest.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/ui_tests.gtest_linux.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/ui_tests.gtest_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/unit_tests.gtest-drmemory_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/unit_tests.gtest-tsan.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/unit_tests.gtest-tsan_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/unit_tests.gtest.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/unit_tests.gtest_linux.txt create mode 100644 media/webrtc/trunk/tools/valgrind/gtest_exclude/unit_tests.gtest_mac.txt create mode 100755 media/webrtc/trunk/tools/valgrind/locate_valgrind.sh create mode 100644 media/webrtc/trunk/tools/valgrind/memcheck/OWNERS create mode 100644 media/webrtc/trunk/tools/valgrind/memcheck/PRESUBMIT.py create mode 100644 media/webrtc/trunk/tools/valgrind/memcheck/suppressions.txt create mode 100644 media/webrtc/trunk/tools/valgrind/memcheck/suppressions_mac.txt create mode 100755 media/webrtc/trunk/tools/valgrind/memcheck_analyze.py create mode 100644 media/webrtc/trunk/tools/valgrind/regrind.sh create mode 100644 media/webrtc/trunk/tools/valgrind/reliability/url_list.txt create mode 100644 media/webrtc/trunk/tools/valgrind/shard-all-tests.sh create mode 100755 media/webrtc/trunk/tools/valgrind/suppressions.py create mode 100644 media/webrtc/trunk/tools/valgrind/test_suppressions.py create mode 100644 media/webrtc/trunk/tools/valgrind/tsan/OWNERS create mode 100644 media/webrtc/trunk/tools/valgrind/tsan/PRESUBMIT.py create mode 100644 media/webrtc/trunk/tools/valgrind/tsan/ignores.txt create mode 100644 media/webrtc/trunk/tools/valgrind/tsan/ignores_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/tsan/ignores_win32.txt create mode 100644 media/webrtc/trunk/tools/valgrind/tsan/suppressions.txt create mode 100644 media/webrtc/trunk/tools/valgrind/tsan/suppressions_mac.txt create mode 100644 media/webrtc/trunk/tools/valgrind/tsan/suppressions_win32.txt create mode 100755 media/webrtc/trunk/tools/valgrind/tsan_analyze.py create mode 100755 media/webrtc/trunk/tools/valgrind/valgrind.sh create mode 100644 media/webrtc/trunk/tools/valgrind/valgrind_test.py create mode 100755 media/webrtc/trunk/tools/valgrind/waterfall.sh create mode 100644 media/webrtc/trunk/tools/win/supalink/README create mode 100755 media/webrtc/trunk/tools/win/supalink/check_installed.py create mode 100755 media/webrtc/trunk/tools/win/supalink/install_supalink.py create mode 100644 media/webrtc/trunk/tools/win/supalink/supalink.cpp create mode 100644 media/webrtc/webrtc_version.h diff --git a/media/webrtc/.gclient b/media/webrtc/.gclient new file mode 100644 index 000000000000..14532a1f3cea --- /dev/null +++ b/media/webrtc/.gclient @@ -0,0 +1,10 @@ +solutions = [ + { "name" : "trunk", + "url" : "http://webrtc.googlecode.com/svn/trunk/peerconnection", + "deps_file" : "DEPS", + "managed" : True, + "custom_deps" : { + }, + "safesync_url": "", + }, +] diff --git a/media/webrtc/.gclient_entries b/media/webrtc/.gclient_entries new file mode 100644 index 000000000000..e00be9917512 --- /dev/null +++ b/media/webrtc/.gclient_entries @@ -0,0 +1,31 @@ +entries = { + 'trunk': 'http://webrtc.googlecode.com/svn/trunk/peerconnection', + 'trunk/build': 'http://src.chromium.org/svn/trunk/src/build@120526', + 'trunk/src': 'http://webrtc.googlecode.com/svn/trunk/src@1538', + 'trunk/test': 'http://webrtc.googlecode.com/svn/trunk/test@1538', + 'trunk/testing': 'http://src.chromium.org/svn/trunk/src/testing@120526', + 'trunk/testing/gmock': 'http://googlemock.googlecode.com/svn/trunk@386', + 'trunk/testing/gtest': 'http://googletest.googlecode.com/svn/trunk@573', + 'trunk/third_party/expat/': 'http://src.chromium.org/svn/trunk/src/third_party/expat@120526', + 'trunk/third_party/google-gflags': 'http://webrtc.googlecode.com/svn/trunk/third_party/google-gflags@1538', + 'trunk/third_party/google-gflags/src': 'http://google-gflags.googlecode.com/svn/trunk/src@45', + 'trunk/third_party/jsoncpp/': 'http://src.chromium.org/svn/trunk/src/third_party/jsoncpp@120526', + 'trunk/third_party/jsoncpp/source': 'http://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/jsoncpp@248', + 'trunk/third_party/libjingle/source': 'http://libjingle.googlecode.com/svn/trunk@115', + 'trunk/third_party/libjpeg/': 'http://src.chromium.org/svn/trunk/src/third_party/libjpeg@120526', + 'trunk/third_party/libjpeg_turbo/': 'http://src.chromium.org/svn/trunk/deps/third_party/libjpeg_turbo@119959', + 'trunk/third_party/libsrtp/': 'http://src.chromium.org/svn/trunk/deps/third_party/libsrtp@119742', + 'trunk/third_party/libvpx': 'http://webrtc.googlecode.com/svn/trunk/third_party/libvpx@1538', + 'trunk/third_party/libvpx/source/libvpx': 'http://git.chromium.org/webm/libvpx.git@e479379a', + 'trunk/third_party/libyuv': 'http://libyuv.googlecode.com/svn/trunk@121', + 'trunk/third_party/protobuf/': 'http://src.chromium.org/svn/trunk/src/third_party/protobuf@120526', + 'trunk/third_party/yasm/': 'http://src.chromium.org/svn/trunk/src/third_party/yasm@120526', + 'trunk/third_party/yasm/binaries': 'http://src.chromium.org/svn/trunk/deps/third_party/yasm/binaries@74228', + 'trunk/third_party/yasm/source/patched-yasm': 'http://src.chromium.org/svn/trunk/deps/third_party/yasm/patched-yasm@73761', + 'trunk/tools': 'http://webrtc.googlecode.com/svn/trunk/tools@1538', + 'trunk/tools/clang/scripts': 'http://src.chromium.org/svn/trunk/src/tools/clang/scripts@120526', + 'trunk/tools/gyp': 'http://gyp.googlecode.com/svn/trunk@1187', + 'trunk/tools/python': 'http://src.chromium.org/svn/trunk/src/tools/python@120526', + 'trunk/tools/valgrind': 'http://src.chromium.org/svn/trunk/src/tools/valgrind@120526', + 'trunk/tools/win/supalink': 'http://src.chromium.org/svn/trunk/src/tools/win/supalink@120526', +} diff --git a/media/webrtc/trunk/DEPS b/media/webrtc/trunk/DEPS new file mode 100644 index 000000000000..b5eccdd9585c --- /dev/null +++ b/media/webrtc/trunk/DEPS @@ -0,0 +1,132 @@ +vars = { + # Use this googlecode_url variable only if there is an internal mirror for it. + # If you do not know, use the full path while defining your new deps entry. + "googlecode_url": "http://%s.googlecode.com/svn", + "chromium_trunk" : "http://src.chromium.org/svn/trunk", + "chromium_revision": "120526", + "webrtc_revision": "2047", + "libjingle_revision": "132", +} + +# NOTE: Prefer revision numbers to tags for svn deps. Use http rather than +# https; the latter can cause problems for users behind proxies. +deps = { + # WebRTC deps. + "trunk/src": + (Var("googlecode_url") % "webrtc") + "/trunk/src@" + Var("webrtc_revision"), + + "trunk/tools": + (Var("googlecode_url") % "webrtc") + "/trunk/tools@" + Var("webrtc_revision"), + + "trunk/test": + (Var("googlecode_url") % "webrtc") + "/trunk/test@" + Var("webrtc_revision"), + + "trunk/third_party/google-gflags": + (Var("googlecode_url") % "webrtc") + "/trunk/third_party/google-gflags@" + Var("webrtc_revision"), + + "trunk/third_party/libvpx": + (Var("googlecode_url") % "webrtc") + "/trunk/third_party/libvpx@" + Var("webrtc_revision"), + + "trunk/build": + Var("chromium_trunk") + "/src/build@" + Var("chromium_revision"), + + "trunk/testing": + Var("chromium_trunk") + "/src/testing@" + Var("chromium_revision"), + + "trunk/testing/gtest": + (Var("googlecode_url") % "googletest") + "/trunk@573", + + "trunk/testing/gmock": + (Var("googlecode_url") % "googlemock") + "/trunk@386", + + "trunk/tools/gyp": + (Var("googlecode_url") % "gyp") + "/trunk@1187", + + # Needed by build/common.gypi. + "trunk/tools/win/supalink": + Var("chromium_trunk") + "/src/tools/win/supalink@" + Var("chromium_revision"), + + "trunk/tools/clang/scripts": + Var("chromium_trunk") + "/src/tools/clang/scripts@" + Var("chromium_revision"), + + "trunk/tools/python": + Var("chromium_trunk") + "/src/tools/python@" + Var("chromium_revision"), + + "trunk/tools/valgrind": + Var("chromium_trunk") + "/src/tools/valgrind@" + Var("chromium_revision"), + + "trunk/third_party/protobuf/": + Var("chromium_trunk") + "/src/third_party/protobuf@" + Var("chromium_revision"), + + "trunk/third_party/libvpx/source/libvpx": + "http://git.chromium.org/webm/libvpx.git@e479379a", + + "trunk/third_party/libjpeg_turbo/": + Var("chromium_trunk") + "/deps/third_party/libjpeg_turbo@119959", + + "trunk/third_party/libjpeg/": + Var("chromium_trunk") + "/src/third_party/libjpeg@" + Var("chromium_revision"), + + "trunk/third_party/yasm/": + Var("chromium_trunk") + "/src/third_party/yasm@" + Var("chromium_revision"), + + "trunk/third_party/expat/": + Var("chromium_trunk") + "/src/third_party/expat@" + Var("chromium_revision"), + + "trunk/third_party/google-gflags/src": + (Var("googlecode_url") % "google-gflags") + "/trunk/src@45", + + "trunk/third_party/yasm/source/patched-yasm": + Var("chromium_trunk") + "/deps/third_party/yasm/patched-yasm@73761", + + # Used by libjpeg-turbo + "trunk/third_party/yasm/binaries": + Var("chromium_trunk") + "/deps/third_party/yasm/binaries@74228", + + # TODO(andrew): roll to 164 after fixing: + # http://code.google.com/p/webrtc/issues/detail?id=267 + "trunk/third_party/libyuv": + (Var("googlecode_url") % "libyuv") + "/trunk@121", + + # libjingle deps. + "trunk/third_party/libjingle/source": + (Var("googlecode_url") % "libjingle") + "/trunk/@" + Var("libjingle_revision"), + + "trunk/third_party/libsrtp/": + Var("chromium_trunk") + "/deps/third_party/libsrtp@119742", + + "trunk/third_party/jsoncpp/": + Var("chromium_trunk") + "/src/third_party/jsoncpp@" + Var("chromium_revision"), + + "trunk/third_party/jsoncpp/source": + "http://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/jsoncpp@248", +} + +deps_os = { + "win": { + "trunk/third_party/cygwin/": + Var("chromium_trunk") + "/deps/third_party/cygwin@66844", + } +} + +hooks = [ + { + # Create a supplement.gypi file under trunk/. This file will be picked up + # by gyp and we use it to set Chromium related variables (inside_chromium_build) + # to 0 and enable the standalone build. + "pattern": ".", + "action": ["python", "trunk/tools/create_supplement_gypi.py", "trunk/src/supplement.gypi"], + }, + { + # Pull clang on mac. If nothing changed, or on non-mac platforms, this takes + # zero seconds to run. If something changed, it downloads a prebuilt clang. + "pattern": ".", + "action": ["python", "trunk/tools/clang/scripts/update.py", "--mac-only"], + }, + { + # A change to a .gyp, .gypi, or to GYP itself should run the generator. + "pattern": ".", + "action": ["python", "trunk/build/gyp_chromium", "--depth=trunk", "trunk/peerconnection.gyp"], + }, +] + diff --git a/media/webrtc/trunk/Makefile b/media/webrtc/trunk/Makefile new file mode 100644 index 000000000000..28a4c94b1574 --- /dev/null +++ b/media/webrtc/trunk/Makefile @@ -0,0 +1,1069 @@ +# We borrow heavily from the kernel build setup, though we are simpler since +# we don't have Kconfig tweaking settings on us. + +# The implicit make rules have it looking for RCS files, among other things. +# We instead explicitly write all the rules we care about. +# It's even quicker (saves ~200ms) to pass -r on the command line. +MAKEFLAGS=-r + +# The source directory tree. +srcdir := . +abs_srcdir := $(abspath $(srcdir)) + +# The name of the builddir. +builddir_name ?= out + +# The V=1 flag on command line makes us verbosely print command lines. +ifdef V + quiet= +else + quiet=quiet_ +endif + +# Specify BUILDTYPE=Release on the command line for a release build. +BUILDTYPE ?= Debug + +# Directory all our build output goes into. +# Note that this must be two directories beneath src/ for unit tests to pass, +# as they reach into the src/ directory for data with relative paths. +builddir ?= $(builddir_name)/$(BUILDTYPE) +abs_builddir := $(abspath $(builddir)) +depsdir := $(builddir)/.deps + +# Object output directory. +obj := $(builddir)/obj +abs_obj := $(abspath $(obj)) + +# We build up a list of every single one of the targets so we can slurp in the +# generated dependency rule Makefiles in one pass. +all_deps := + + + +# C++ apps need to be linked with g++. +# +# Note: flock is used to seralize linking. Linking is a memory-intensive +# process so running parallel links can often lead to thrashing. To disable +# the serialization, override LINK via an envrionment variable as follows: +# +# export LINK=g++ +# +# This will allow make to invoke N linker processes as specified in -jN. +LINK ?= flock $(builddir)/linker.lock $(CXX) + +CC.target ?= $(CC) +CFLAGS.target ?= $(CFLAGS) +CXX.target ?= $(CXX) +CXXFLAGS.target ?= $(CXXFLAGS) +LINK.target ?= $(LINK) +LDFLAGS.target ?= $(LDFLAGS) +AR.target ?= $(AR) +ARFLAGS.target ?= crsT + +# N.B.: the logic of which commands to run should match the computation done +# in gyp's make.py where ARFLAGS.host etc. is computed. +# TODO(evan): move all cross-compilation logic to gyp-time so we don't need +# to replicate this environment fallback in make as well. +CC.host ?= gcc +CFLAGS.host ?= +CXX.host ?= g++ +CXXFLAGS.host ?= +LINK.host ?= g++ +LDFLAGS.host ?= +AR.host ?= ar +ARFLAGS.host := crsT + +# Define a dir function that can handle spaces. +# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions +# "leading spaces cannot appear in the text of the first argument as written. +# These characters can be put into the argument value by variable substitution." +empty := +space := $(empty) $(empty) + +# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces +replace_spaces = $(subst $(space),?,$1) +unreplace_spaces = $(subst ?,$(space),$1) +dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) + +# Flags to make gcc output dependency info. Note that you need to be +# careful here to use the flags that ccache and distcc can understand. +# We write to a dep file on the side first and then rename at the end +# so we can't end up with a broken dep file. +depfile = $(depsdir)/$(call replace_spaces,$@).d +DEPFLAGS = -MMD -MF $(depfile).raw + +# We have to fixup the deps output in a few ways. +# (1) the file output should mention the proper .o file. +# ccache or distcc lose the path to the target, so we convert a rule of +# the form: +# foobar.o: DEP1 DEP2 +# into +# path/to/foobar.o: DEP1 DEP2 +# (2) we want missing files not to cause us to fail to build. +# We want to rewrite +# foobar.o: DEP1 DEP2 \ +# DEP3 +# to +# DEP1: +# DEP2: +# DEP3: +# so if the files are missing, they're just considered phony rules. +# We have to do some pretty insane escaping to get those backslashes +# and dollar signs past make, the shell, and sed at the same time. +# Doesn't work with spaces, but that's fine: .d files have spaces in +# their names replaced with other characters. +define fixup_dep +# The depfile may not exist if the input file didn't have any #includes. +touch $(depfile).raw +# Fixup path as in (1). +sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) +# Add extra rules as in (2). +# We remove slashes and replace spaces with new lines; +# remove blank lines; +# delete the first line and append a colon to the remaining lines. +sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ + grep -v '^$$' |\ + sed -e 1d -e 's|$$|:|' \ + >> $(depfile) +rm $(depfile).raw +endef + +# Command definitions: +# - cmd_foo is the actual command to run; +# - quiet_cmd_foo is the brief-output summary of the command. + +quiet_cmd_cc = CC($(TOOLSET)) $@ +cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< + +quiet_cmd_cxx = CXX($(TOOLSET)) $@ +cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< + +quiet_cmd_touch = TOUCH $@ +cmd_touch = touch $@ + +quiet_cmd_copy = COPY $@ +# send stderr to /dev/null to ignore messages when linking directories. +cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@") + +quiet_cmd_alink = AR($(TOOLSET)) $@ +cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) $(ARFLAGS.$(TOOLSET)) $@ $(filter %.o,$^) + +# Due to circular dependencies between libraries :(, we wrap the +# special "figure out circular dependencies" flags around the entire +# input list during linking. +quiet_cmd_link = LINK($(TOOLSET)) $@ +cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS) + +# We support two kinds of shared objects (.so): +# 1) shared_library, which is just bundling together many dependent libraries +# into a link line. +# 2) loadable_module, which is generating a module intended for dlopen(). +# +# They differ only slightly: +# In the former case, we want to package all dependent code into the .so. +# In the latter case, we want to package just the API exposed by the +# outermost module. +# This means shared_library uses --whole-archive, while loadable_module doesn't. +# (Note that --whole-archive is incompatible with the --start-group used in +# normal linking.) + +# Other shared-object link notes: +# - Set SONAME to the library filename so our binaries don't reference +# the local, absolute paths used on the link command-line. +quiet_cmd_solink = SOLINK($(TOOLSET)) $@ +cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) + +quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ +cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) + + +# Define an escape_quotes function to escape single quotes. +# This allows us to handle quotes properly as long as we always use +# use single quotes and escape_quotes. +escape_quotes = $(subst ','\'',$(1)) +# This comment is here just to include a ' to unconfuse syntax highlighting. +# Define an escape_vars function to escape '$' variable syntax. +# This allows us to read/write command lines with shell variables (e.g. +# $LD_LIBRARY_PATH), without triggering make substitution. +escape_vars = $(subst $$,$$$$,$(1)) +# Helper that expands to a shell command to echo a string exactly as it is in +# make. This uses printf instead of echo because printf's behaviour with respect +# to escape sequences is more portable than echo's across different shells +# (e.g., dash, bash). +exact_echo = printf '%s\n' '$(call escape_quotes,$(1))' + +# Helper to compare the command we're about to run against the command +# we logged the last time we ran the command. Produces an empty +# string (false) when the commands match. +# Tricky point: Make has no string-equality test function. +# The kernel uses the following, but it seems like it would have false +# positives, where one string reordered its arguments. +# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \ +# $(filter-out $(cmd_$@), $(cmd_$(1)))) +# We instead substitute each for the empty string into the other, and +# say they're equal if both substitutions produce the empty string. +# .d files contain ? instead of spaces, take that into account. +command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\ + $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) + +# Helper that is non-empty when a prerequisite changes. +# Normally make does this implicitly, but we force rules to always run +# so we can check their command lines. +# $? -- new prerequisites +# $| -- order-only dependencies +prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) + +# Helper that executes all postbuilds, and deletes the output file when done +# if any of the postbuilds failed. +define do_postbuilds + @E=0;\ + for p in $(POSTBUILDS); do\ + eval $$p;\ + F=$$?;\ + if [ $$F -ne 0 ]; then\ + E=$$F;\ + fi;\ + done;\ + if [ $$E -ne 0 ]; then\ + rm -rf "$@";\ + exit $$E;\ + fi +endef + +# do_cmd: run a command via the above cmd_foo names, if necessary. +# Should always run for a given target to handle command-line changes. +# Second argument, if non-zero, makes it do asm/C/C++ dependency munging. +# Third argument, if non-zero, makes it do POSTBUILDS processing. +# Note: We intentionally do NOT call dirx for depfile, since it contains ? for +# spaces already and dirx strips the ? characters. +define do_cmd +$(if $(or $(command_changed),$(prereq_changed)), + @$(call exact_echo, $($(quiet)cmd_$(1))) + @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" + $(if $(findstring flock,$(word 1,$(cmd_$1))), + @$(cmd_$(1)) + @echo " $(quiet_cmd_$(1)): Finished", + @$(cmd_$(1)) + ) + @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) + @$(if $(2),$(fixup_dep)) + $(if $(and $(3), $(POSTBUILDS)), + $(call do_postbuilds) + ) +) +endef + +# Declare the "all" target first so it is the default, +# even though we don't have the deps yet. +.PHONY: all +all: + +# Use FORCE_DO_CMD to force a target to run. Should be coupled with +# do_cmd. +.PHONY: FORCE_DO_CMD +FORCE_DO_CMD: + +TOOLSET := host +# Suffix rules, putting all outputs into $(obj). +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD + @$(call do_cmd,cc,1) + +# Try building from generated source, too. +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD + @$(call do_cmd,cc,1) + +$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD + @$(call do_cmd,cc,1) + +TOOLSET := target +# Suffix rules, putting all outputs into $(obj). +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD + @$(call do_cmd,cc,1) + +# Try building from generated source, too. +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD + @$(call do_cmd,cc,1) + +$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD + @$(call do_cmd,cc,1) + + +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,peerconnection_client.target.mk)))),) + include peerconnection_client.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,peerconnection_server.target.mk)))),) + include peerconnection_server.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/common_audio/resampler.target.mk)))),) + include src/common_audio/resampler.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/common_audio/resampler_unittests.target.mk)))),) + include src/common_audio/resampler_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/common_audio/signal_processing.target.mk)))),) + include src/common_audio/signal_processing.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/common_audio/signal_processing_unittests.target.mk)))),) + include src/common_audio/signal_processing_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/common_audio/vad.target.mk)))),) + include src/common_audio/vad.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/common_audio/vad_unittests.target.mk)))),) + include src/common_audio/vad_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/common_video/jpeg_test.target.mk)))),) + include src/common_video/jpeg_test.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/common_video/libyuv_unittests.target.mk)))),) + include src/common_video/libyuv_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/common_video/webrtc_jpeg.target.mk)))),) + include src/common_video/webrtc_jpeg.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/common_video/webrtc_libyuv.target.mk)))),) + include src/common_video/webrtc_libyuv.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/CNG.target.mk)))),) + include src/modules/CNG.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/G711.target.mk)))),) + include src/modules/G711.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/G722.target.mk)))),) + include src/modules/G722.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/G722Test.target.mk)))),) + include src/modules/G722Test.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/NetEq.target.mk)))),) + include src/modules/NetEq.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/NetEqRTPplay.target.mk)))),) + include src/modules/NetEqRTPplay.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/NetEqTestTools.target.mk)))),) + include src/modules/NetEqTestTools.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/PCM16B.target.mk)))),) + include src/modules/PCM16B.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/RTPanalyze.target.mk)))),) + include src/modules/RTPanalyze.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/RTPcat.target.mk)))),) + include src/modules/RTPcat.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/RTPchange.target.mk)))),) + include src/modules/RTPchange.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/RTPencode.target.mk)))),) + include src/modules/RTPencode.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/RTPjitter.target.mk)))),) + include src/modules/RTPjitter.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/RTPtimeshift.target.mk)))),) + include src/modules/RTPtimeshift.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/aec.target.mk)))),) + include src/modules/aec.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/aec_sse2.target.mk)))),) + include src/modules/aec_sse2.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/aecm.target.mk)))),) + include src/modules/aecm.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/agc.target.mk)))),) + include src/modules/agc.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/apm_util.target.mk)))),) + include src/modules/apm_util.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audio_coding_module.target.mk)))),) + include src/modules/audio_coding_module.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audio_coding_module_test.target.mk)))),) + include src/modules/audio_coding_module_test.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audio_coding_unittests.target.mk)))),) + include src/modules/audio_coding_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audio_conference_mixer.target.mk)))),) + include src/modules/audio_conference_mixer.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audio_conference_mixer_unittests.target.mk)))),) + include src/modules/audio_conference_mixer_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audio_device.target.mk)))),) + include src/modules/audio_device.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audio_device_test_api.target.mk)))),) + include src/modules/audio_device_test_api.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audio_device_test_func.target.mk)))),) + include src/modules/audio_device_test_func.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audio_processing.target.mk)))),) + include src/modules/audio_processing.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audioproc.target.mk)))),) + include src/modules/audioproc.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audioproc_debug_proto.target.mk)))),) + include src/modules/audioproc_debug_proto.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audioproc_unittest.target.mk)))),) + include src/modules/audioproc_unittest.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/audioproc_unittest_proto.target.mk)))),) + include src/modules/audioproc_unittest_proto.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/cng_unittests.target.mk)))),) + include src/modules/cng_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/g711_test.target.mk)))),) + include src/modules/g711_test.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/g711_unittests.target.mk)))),) + include src/modules/g711_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/g722_unittests.target.mk)))),) + include src/modules/g722_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/iLBC.target.mk)))),) + include src/modules/iLBC.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/iLBCtest.target.mk)))),) + include src/modules/iLBCtest.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/iSAC.target.mk)))),) + include src/modules/iSAC.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/iSACAPITest.target.mk)))),) + include src/modules/iSACAPITest.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/iSACFix.target.mk)))),) + include src/modules/iSACFix.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/iSACFixtest.target.mk)))),) + include src/modules/iSACFixtest.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/iSACSwitchSampRateTest.target.mk)))),) + include src/modules/iSACSwitchSampRateTest.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/iSACtest.target.mk)))),) + include src/modules/iSACtest.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/media_file.target.mk)))),) + include src/modules/media_file.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/media_file_unittests.target.mk)))),) + include src/modules/media_file_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/neteq_unittests.target.mk)))),) + include src/modules/neteq_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/ns.target.mk)))),) + include src/modules/ns.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/ns_fix.target.mk)))),) + include src/modules/ns_fix.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/pcm16b_unittests.target.mk)))),) + include src/modules/pcm16b_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/rtp_rtcp.target.mk)))),) + include src/modules/rtp_rtcp.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/rtp_rtcp_unittests.target.mk)))),) + include src/modules/rtp_rtcp_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/test_bwe.target.mk)))),) + include src/modules/test_bwe.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/test_fec.target.mk)))),) + include src/modules/test_fec.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/test_framework.target.mk)))),) + include src/modules/test_framework.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/test_rtp_rtcp_api.target.mk)))),) + include src/modules/test_rtp_rtcp_api.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/udp_transport.target.mk)))),) + include src/modules/udp_transport.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/udp_transport_unittests.target.mk)))),) + include src/modules/udp_transport_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/unpack_aecdump.target.mk)))),) + include src/modules/unpack_aecdump.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_capture_module.target.mk)))),) + include src/modules/video_capture_module.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_capture_module_test.target.mk)))),) + include src/modules/video_capture_module_test.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_codecs_test_framework.target.mk)))),) + include src/modules/video_codecs_test_framework.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_codecs_test_framework_integrationtests.target.mk)))),) + include src/modules/video_codecs_test_framework_integrationtests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_codecs_test_framework_unittests.target.mk)))),) + include src/modules/video_codecs_test_framework_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_coding_test.target.mk)))),) + include src/modules/video_coding_test.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_coding_unittests.target.mk)))),) + include src/modules/video_coding_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_processing.target.mk)))),) + include src/modules/video_processing.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_processing_sse2.target.mk)))),) + include src/modules/video_processing_sse2.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_processing_unittests.target.mk)))),) + include src/modules/video_processing_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_quality_measurement.target.mk)))),) + include src/modules/video_quality_measurement.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_render_module.target.mk)))),) + include src/modules/video_render_module.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/video_render_module_test.target.mk)))),) + include src/modules/video_render_module_test.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/vp8_test.target.mk)))),) + include src/modules/vp8_test.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/vp8_unittests.target.mk)))),) + include src/modules/vp8_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/webrtc_i420.target.mk)))),) + include src/modules/webrtc_i420.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/webrtc_utility.target.mk)))),) + include src/modules/webrtc_utility.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/webrtc_utility_unittests.target.mk)))),) + include src/modules/webrtc_utility_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/webrtc_video_coding.target.mk)))),) + include src/modules/webrtc_video_coding.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/modules/webrtc_vp8.target.mk)))),) + include src/modules/webrtc_vp8.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/system_wrappers/source/system_wrappers.target.mk)))),) + include src/system_wrappers/source/system_wrappers.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/system_wrappers/source/system_wrappers_unittests.target.mk)))),) + include src/system_wrappers/source/system_wrappers_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/video_engine/video_engine_core.target.mk)))),) + include src/video_engine/video_engine_core.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/video_engine/video_engine_core_unittests.target.mk)))),) + include src/video_engine/video_engine_core_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/video_engine/vie_auto_test.target.mk)))),) + include src/video_engine/vie_auto_test.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/voice_engine/voe_auto_test.target.mk)))),) + include src/voice_engine/voe_auto_test.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/voice_engine/voe_cmd_test.target.mk)))),) + include src/voice_engine/voe_cmd_test.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/voice_engine/voice_engine_core.target.mk)))),) + include src/voice_engine/voice_engine_core.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,src/voice_engine/voice_engine_unittests.target.mk)))),) + include src/voice_engine/voice_engine_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,test/metrics.target.mk)))),) + include test/metrics.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,test/metrics_unittests.target.mk)))),) + include test/metrics_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,test/test_support.target.mk)))),) + include test/test_support.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,test/test_support_main.target.mk)))),) + include test/test_support_main.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,test/test_support_unittests.target.mk)))),) + include test/test_support_unittests.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,testing/gmock.target.mk)))),) + include testing/gmock.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,testing/gmock_main.target.mk)))),) + include testing/gmock_main.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,testing/gtest.target.mk)))),) + include testing/gtest.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,testing/gtest_main.target.mk)))),) + include testing/gtest_main.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,testing/gtest_prod.host.mk)))),) + include testing/gtest_prod.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,testing/gtest_prod.target.mk)))),) + include testing/gtest_prod.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/expat/expat.target.mk)))),) + include third_party/expat/expat.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/google-gflags/google-gflags.target.mk)))),) + include third_party/google-gflags/google-gflags.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/jsoncpp/jsoncpp.target.mk)))),) + include third_party/jsoncpp/jsoncpp.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/libjingle/libjingle.target.mk)))),) + include third_party/libjingle/libjingle.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/libjingle/libjingle_app.target.mk)))),) + include third_party/libjingle/libjingle_app.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/libjingle/libjingle_p2p.target.mk)))),) + include third_party/libjingle/libjingle_p2p.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/libjpeg_turbo/libjpeg.target.mk)))),) + include third_party/libjpeg_turbo/libjpeg.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/libsrtp/libsrtp.target.mk)))),) + include third_party/libsrtp/libsrtp.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/libvpx/libvpx.target.mk)))),) + include third_party/libvpx/libvpx.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/libyuv/libyuv.target.mk)))),) + include third_party/libyuv/libyuv.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/protobuf/protobuf_full_do_not_use.host.mk)))),) + include third_party/protobuf/protobuf_full_do_not_use.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/protobuf/protobuf_full_do_not_use.target.mk)))),) + include third_party/protobuf/protobuf_full_do_not_use.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/protobuf/protobuf_lite.host.mk)))),) + include third_party/protobuf/protobuf_lite.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/protobuf/protobuf_lite.target.mk)))),) + include third_party/protobuf/protobuf_lite.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/protobuf/protoc.host.mk)))),) + include third_party/protobuf/protoc.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/protobuf/py_proto.target.mk)))),) + include third_party/protobuf/py_proto.target.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/yasm/config_sources.host.mk)))),) + include third_party/yasm/config_sources.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/yasm/generate_files.host.mk)))),) + include third_party/yasm/generate_files.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/yasm/genmacro.host.mk)))),) + include third_party/yasm/genmacro.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/yasm/genmodule.host.mk)))),) + include third_party/yasm/genmodule.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/yasm/genperf.host.mk)))),) + include third_party/yasm/genperf.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/yasm/genperf_libs.host.mk)))),) + include third_party/yasm/genperf_libs.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/yasm/genstring.host.mk)))),) + include third_party/yasm/genstring.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/yasm/genversion.host.mk)))),) + include third_party/yasm/genversion.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/yasm/re2c.host.mk)))),) + include third_party/yasm/re2c.host.mk +endif +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,third_party/yasm/yasm.host.mk)))),) + include third_party/yasm/yasm.host.mk +endif + +quiet_cmd_regen_makefile = ACTION Regenerating $@ +cmd_regen_makefile = ./build/gyp_chromium -fmake --ignore-environment "--toplevel-dir=." -Ibuild/common.gypi -I/home/jesup/src/mozilla/webrtc_import5/webrtc_update/trunk/src/supplement.gypi "--depth=." peerconnection.gyp +Makefile: src/modules/video_processing/main/test/vpm_tests.gypi third_party/expat/expat.gyp src/modules/audio_processing/ns/ns.gypi src/modules/video_coding/codecs/i420/main/source/i420.gypi third_party/yasm/yasm_compile.gypi src/common_video/jpeg/main/source/jpeg.gypi src/common_video/common_video.gyp src/modules/audio_coding/codecs/pcm16b/pcm16b.gypi third_party/google-gflags/google-gflags.gyp src/build/common.gypi src/common_audio/common_audio.gyp peerconnection.gyp src/modules/audio_coding/codecs/iSAC/isacfix_test.gypi src/voice_engine/main/source/voice_engine_core.gypi src/modules/video_coding/codecs/tools/video_codecs_tools.gypi test/metrics.gyp testing/gtest.gyp third_party/libyuv/libyuv.gyp src/modules/video_coding/main/source/video_coding.gypi third_party/libvpx/libvpx_srcs_x86.gypi src/modules/audio_coding/codecs/iSAC/fix/source/isacfix.gypi src/modules/audio_device/main/source/audio_device.gypi src/modules/audio_processing/audio_processing.gypi src/common_video/libyuv/libyuv.gypi src/modules/video_coding/codecs/test/video_codecs_test_framework.gypi src/modules/audio_processing/apm_tests.gypi src/voice_engine/voice_engine.gyp src/modules/video_processing/main/source/video_processing.gypi src/modules/media_file/source/media_file.gypi src/common_audio/vad/vad.gypi src/modules/audio_conference_mixer/source/audio_conference_mixer.gypi src/build/protoc.gypi third_party/yasm/yasm.gyp src/modules/audio_coding/codecs/ilbc/ilbc.gypi src/common_audio/signal_processing/signal_processing.gypi build/release.gypi src/modules/rtp_rtcp/source/rtp_rtcp_tests.gypi src/modules/audio_coding/codecs/iSAC/isac_test.gypi src/modules/video_coding/codecs/vp8/main/source/vp8.gypi src/modules/rtp_rtcp/test/test_bwe/test_bwe.gypi src/modules/audio_coding/neteq/neteq.gypi src/modules/audio_coding/main/source/audio_coding_module.gypi src/modules/udp_transport/source/udp_transport.gypi third_party/libjingle/libjingle.gyp src/common_audio/resampler/resampler.gypi build/internal/release_impl_official.gypi third_party/protobuf/protobuf.gyp src/video_engine/video_engine_core.gypi src/modules/video_capture/main/source/video_capture.gypi src/modules/rtp_rtcp/test/testFec/test_fec.gypi src/modules/audio_processing/utility/util.gypi src/modules/rtp_rtcp/source/rtp_rtcp.gypi src/modules/modules.gyp build/internal/release_defaults.gypi src/modules/audio_coding/codecs/g722/g722.gypi third_party/libvpx/libvpx_srcs_arm_neon.gypi third_party/libsrtp/libsrtp.gyp testing/gmock.gyp src/voice_engine/main/test/voice_engine_tests.gypi src/modules/video_coding/codecs/test_framework/test_framework.gypi src/modules/audio_processing/aec/aec.gypi third_party/libvpx/libvpx.gyp src/modules/audio_coding/codecs/g711/g711.gypi third_party/libjpeg_turbo/libjpeg.gyp src/modules/utility/source/utility.gypi src/video_engine/video_engine.gyp src/modules/audio_coding/codecs/cng/cng.gypi third_party/libvpx/libvpx_srcs_arm.gypi build/filename_rules.gypi third_party/jsoncpp/jsoncpp.gyp src/system_wrappers/source/system_wrappers.gyp build/internal/release_impl.gypi src/supplement.gypi build/use_skia_on_mac.gypi src/common_settings.gypi third_party/libvpx/libvpx_srcs_x86_64.gypi src/video_engine/test/auto_test/vie_auto_test.gypi src/modules/audio_processing/agc/agc.gypi test/test.gyp src/modules/audio_processing/aecm/aecm.gypi src/modules/video_coding/main/source/video_coding_test.gypi build/common.gypi src/modules/audio_coding/codecs/iSAC/main/source/isac.gypi src/video_engine/main/test/WindowsTest/windowstest.gypi src/modules/video_render/main/source/video_render.gypi src/modules/rtp_rtcp/test/testAPI/test_api.gypi + $(call do_cmd,regen_makefile) + +# "all" is a concatenation of the "all" targets from all the included +# sub-makefiles. This is just here to clarify. +all: + +# Add in dependency-tracking rules. $(all_deps) is the list of every single +# target in our tree. Only consider the ones with .d (dependency) info: +d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) +ifneq ($(d_files),) + # Rather than include each individual .d file, concatenate them into a + # single file which make is able to load faster. We split this into + # commands that take 1000 files at a time to avoid overflowing the + # command line. + $(shell cat $(wordlist 1,1000,$(d_files)) > $(depsdir)/all.deps) + + ifneq ($(word 1001,$(d_files)),) + $(shell cat $(wordlist 1001,2000,$(d_files)) >> $(depsdir)/all.deps) + endif + ifneq ($(word 2001,$(d_files)),) + $(error Found unprocessed dependency files (gyp didn't generate enough rules!)) + endif + + # make looks for ways to re-generate included makefiles, but in our case, we + # don't have a direct way. Explicitly telling make that it has nothing to do + # for them makes it go faster. + $(depsdir)/all.deps: ; + + include $(depsdir)/all.deps +endif diff --git a/media/webrtc/trunk/OWNERS b/media/webrtc/trunk/OWNERS new file mode 100644 index 000000000000..1527445ec7f3 --- /dev/null +++ b/media/webrtc/trunk/OWNERS @@ -0,0 +1,5 @@ +henrike@webrtc.org +mallinath@webrtc.org +perkj@webrtc.org +wu@webrtc.org +tommi@webrtc.org diff --git a/media/webrtc/trunk/README b/media/webrtc/trunk/README new file mode 100644 index 000000000000..b7bafb24b66c --- /dev/null +++ b/media/webrtc/trunk/README @@ -0,0 +1,12 @@ +This folder can be used to pull together the chromium version of webrtc +and libjingle, and build the peerconnection sample client and server. This will +check out a new repository in which you can build peerconnection_server. + +Steps: +1) Create a new directory for the new repository (outside the webrtc repo): + mkdir peerconnection + cd peerconnection +2) gclient config --name trunk http://webrtc.googlecode.com/svn/trunk/peerconnection +3) gclient sync +4) cd trunk +5) make peerconnection_server peerconnection_client diff --git a/media/webrtc/trunk/build/README.chromium b/media/webrtc/trunk/build/README.chromium new file mode 100644 index 000000000000..012df35c7aa6 --- /dev/null +++ b/media/webrtc/trunk/build/README.chromium @@ -0,0 +1,15 @@ +List of property sheets to be included by projects: + common.vsprops + Not used anymore. No-op. Kept for compatibility with current projects. + + debug.vsprops + Enables debug settings. Must be included directly in Debug configuration. Includes internal\essential.vsprops. + + external_code.vsprops + Contains settings made to simplify usage of external (non-Google) code. It relaxes the warning levels. Should be included after debug.vsprops or release.vsprops to override their settings. + + output_dll_copy.rules + Run to enable automatic copy of DLL when they are as an input file in a vcproj project. + + release.vsprops + Enables release settings. Must be included directly in Release configuration. Includes internal\essential.vsprops. Also includes "internal\release_impl$(CHROME_BUILD_TYPE).vsprops". So the behavior is dependant on the CHROME_BUILD_TYPE environment variable. diff --git a/media/webrtc/trunk/build/all.gyp b/media/webrtc/trunk/build/all.gyp new file mode 100644 index 000000000000..6bd883445dc1 --- /dev/null +++ b/media/webrtc/trunk/build/all.gyp @@ -0,0 +1,625 @@ +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'targets': [ + { + 'target_name': 'All', + 'type': 'none', + 'xcode_create_dependents_test_runner': 1, + 'dependencies': [ + 'some.gyp:*', + '../base/base.gyp:*', + '../chrome/browser/sync/tools/sync_tools.gyp:*', + '../chrome/chrome.gyp:*', + '../content/content.gyp:*', + '../crypto/crypto.gyp:*', + '../ui/ui.gyp:*', + '../gpu/gpu.gyp:*', + '../gpu/demos/demos.gyp:*', + '../gpu/tools/tools.gyp:*', + '../ipc/ipc.gyp:*', + '../jingle/jingle.gyp:*', + '../media/media.gyp:*', + '../net/net.gyp:*', + '../ppapi/ppapi.gyp:*', + '../ppapi/ppapi_internal.gyp:*', + '../printing/printing.gyp:*', + '../sdch/sdch.gyp:*', + '../skia/skia.gyp:*', + '../sql/sql.gyp:*', + '../testing/gmock.gyp:*', + '../testing/gtest.gyp:*', + '../third_party/bzip2/bzip2.gyp:*', + '../third_party/cacheinvalidation/cacheinvalidation.gyp:*', + '../third_party/cld/cld.gyp:*', + '../third_party/codesighs/codesighs.gyp:*', + '../third_party/ffmpeg/ffmpeg.gyp:*', + '../third_party/iccjpeg/iccjpeg.gyp:*', + '../third_party/icu/icu.gyp:*', + '../third_party/libpng/libpng.gyp:*', + '../third_party/libwebp/libwebp.gyp:*', + '../third_party/libxml/libxml.gyp:*', + '../third_party/libxslt/libxslt.gyp:*', + '../third_party/lzma_sdk/lzma_sdk.gyp:*', + '../third_party/mesa/mesa.gyp:*', + '../third_party/modp_b64/modp_b64.gyp:*', + '../third_party/npapi/npapi.gyp:*', + '../third_party/ots/ots.gyp:*', + '../third_party/sqlite/sqlite.gyp:*', + '../third_party/WebKit/Source/WebKit/chromium/All.gyp:*', + '../third_party/zlib/zlib.gyp:*', + '../v8/tools/gyp/v8.gyp:*', + '../webkit/support/webkit_support.gyp:*', + '../webkit/webkit.gyp:*', + 'util/build_util.gyp:*', + 'temp_gyp/googleurl.gyp:*', + '<(libjpeg_gyp_path):*', + ], + 'conditions': [ + ['os_posix==1 and OS!="android"', { + 'dependencies': [ + '../third_party/yasm/yasm.gyp:*#host', + '../cloud_print/virtual_driver/virtual_driver_posix.gyp:*', + ], + }], + ['OS=="mac" or OS=="win"', { + 'dependencies': [ + '../third_party/nss/nss.gyp:*', + ], + }], + ['OS=="mac"', { + 'dependencies': [ + '../third_party/ocmock/ocmock.gyp:*', + ], + }], + ['OS=="linux"', { + 'dependencies': [ + '../breakpad/breakpad.gyp:*', + '../courgette/courgette.gyp:*', + '../dbus/dbus.gyp:*', + '../sandbox/sandbox.gyp:*', + ], + 'conditions': [ + ['branding=="Chrome"', { + 'dependencies': [ + '../chrome/chrome.gyp:linux_packages_<(channel)', + ], + }], + ], + }], + ['use_wayland==1', { + 'dependencies': [ + '../ui/wayland/wayland.gyp:*', + ], + }], + ['toolkit_uses_gtk==1', { + 'dependencies': [ + '../tools/gtk_clipboard_dump/gtk_clipboard_dump.gyp:*', + '../tools/xdisplaycheck/xdisplaycheck.gyp:*', + ], + }], + ['OS=="win"', { + 'conditions': [ + ['win_use_allocator_shim==1', { + 'dependencies': [ + '../base/allocator/allocator.gyp:*', + ], + }], + ], + 'dependencies': [ + '../breakpad/breakpad.gyp:*', + '../chrome_frame/chrome_frame.gyp:*', + '../cloud_print/virtual_driver/virtual_driver.gyp:*', + '../courgette/courgette.gyp:*', + '../rlz/rlz.gyp:*', + '../sandbox/sandbox.gyp:*', + '../third_party/angle/src/build_angle.gyp:*', + '../third_party/bsdiff/bsdiff.gyp:*', + '../third_party/bspatch/bspatch.gyp:*', + '../third_party/gles2_book/gles2_book.gyp:*', + '../tools/memory_watcher/memory_watcher.gyp:*', + ], + }, { + 'dependencies': [ + '../third_party/libevent/libevent.gyp:*', + ], + }], + ['toolkit_views==1', { + 'dependencies': [ + '../ui/views/views.gyp:*', + ], + }], + ['use_aura==1', { + 'dependencies': [ + '../ui/aura/aura.gyp:*', + '../ash/ash.gyp:*', + ], + }], + ['remoting==1', { + 'dependencies': [ + '../remoting/remoting.gyp:*', + ], + }], + ['use_openssl==0', { + 'dependencies': [ + '../net/third_party/nss/ssl.gyp:*', + ], + }], + ], + }, # target_name: All + { + 'target_name': 'All_syzygy', + 'type': 'none', + 'conditions': [ + ['OS=="win" and fastbuild==0', { + 'dependencies': [ + '../chrome/installer/mini_installer_syzygy.gyp:*', + ], + }, + ], + ], + }, # target_name: All_syzygy + { + 'target_name': 'chromium_builder_tests', + 'type': 'none', + 'dependencies': [ + '../base/base.gyp:base_unittests', + '../chrome/chrome.gyp:browser_tests', + '../chrome/chrome.gyp:interactive_ui_tests', + '../chrome/chrome.gyp:safe_browsing_tests', + '../chrome/chrome.gyp:sync_integration_tests', + '../chrome/chrome.gyp:sync_unit_tests', + '../chrome/chrome.gyp:ui_tests', + '../chrome/chrome.gyp:unit_tests', + '../content/content.gyp:content_browsertests', + '../content/content.gyp:content_unittests', + '../crypto/crypto.gyp:crypto_unittests', + '../ui/ui.gyp:gfx_unittests', + '../gpu/gpu.gyp:gpu_unittests', + '../gpu/gles2_conform_support/gles2_conform_support.gyp:gles2_conform_support', + '../ipc/ipc.gyp:ipc_tests', + '../jingle/jingle.gyp:jingle_unittests', + '../media/media.gyp:media_unittests', + '../net/net.gyp:net_unittests', + '../printing/printing.gyp:printing_unittests', + '../remoting/remoting.gyp:remoting_unittests', + '../sql/sql.gyp:sql_unittests', + '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', + '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', + 'temp_gyp/googleurl.gyp:googleurl_unittests', + ], + 'conditions': [ + ['OS=="win"', { + 'dependencies': [ + '../chrome/chrome.gyp:installer_util_unittests', + '../chrome/chrome.gyp:mini_installer_test', + # mini_installer_tests depends on mini_installer. This should be + # defined in installer.gyp. + '../chrome/installer/mini_installer.gyp:mini_installer', + '../chrome_frame/chrome_frame.gyp:chrome_frame_net_tests', + '../chrome_frame/chrome_frame.gyp:chrome_frame_perftests', + '../chrome_frame/chrome_frame.gyp:chrome_frame_reliability_tests', + '../chrome_frame/chrome_frame.gyp:chrome_frame_tests', + '../chrome_frame/chrome_frame.gyp:chrome_frame_unittests', + '../chrome_frame/chrome_frame.gyp:npchrome_frame', + '../courgette/courgette.gyp:courgette_unittests', + '../sandbox/sandbox.gyp:sbox_integration_tests', + '../sandbox/sandbox.gyp:sbox_unittests', + '../sandbox/sandbox.gyp:sbox_validation_tests', + '../webkit/webkit.gyp:pull_in_copy_TestNetscapePlugIn', + '../ui/views/views.gyp:views_unittests', + # TODO(nsylvain) ui_tests.exe depends on test_shell_common. + # This should: + # 1) not be the case. OR. + # 2) be expressed in the ui tests dependencies. + '../webkit/webkit.gyp:test_shell_common', + ], + }], + ], + }, # target_name: chromium_builder_tests + { + 'target_name': 'chromium_2010_builder_tests', + 'type': 'none', + 'dependencies': [ + 'chromium_builder_tests', + ], + }, # target_name: chromium_2010_builder_tests + { + 'target_name': 'chromium_builder_nacl_win_integration', + 'type': 'none', + 'dependencies': [ + 'chromium_builder_qa', # needed for pyauto + 'chromium_builder_tests', + ], + }, # target_name: chromium_builder_nacl_win_integration + { + 'target_name': 'chromium_builder_perf', + 'type': 'none', + 'dependencies': [ + 'chromium_builder_qa', # needed for pyauto + '../chrome/chrome.gyp:performance_browser_tests', + '../chrome/chrome.gyp:performance_ui_tests', + '../chrome/chrome.gyp:plugin_tests', + '../chrome/chrome.gyp:sync_performance_tests', + '../chrome/chrome.gyp:ui_tests', + ], + }, # target_name: chromium_builder_perf + { + 'target_name': 'chromium_gpu_builder', + 'type': 'none', + 'dependencies': [ + '../chrome/chrome.gyp:gpu_tests', + '../chrome/chrome.gyp:performance_browser_tests', + '../chrome/chrome.gyp:performance_ui_tests', + '../webkit/webkit.gyp:pull_in_DumpRenderTree', + ], + }, # target_name: chromium_gpu_builder + { + 'target_name': 'chromium_builder_qa', + 'type': 'none', + 'dependencies': [ + '../chrome/chrome.gyp:chromedriver', + ], + 'conditions': [ + # If you change this condition, make sure you also change it + # in chrome_tests.gypi + ['OS=="mac" or OS=="win" or (os_posix==1 and OS != "android" and target_arch==python_arch)', { + 'dependencies': [ + '../chrome/chrome.gyp:pyautolib', + ], + }], + ], + }, # target_name: chromium_builder_qa + ], + 'conditions': [ + ['OS=="mac"', { + 'targets': [ + { + # Target to build everything plus the dmg. We don't put the dmg + # in the All target because developers really don't need it. + 'target_name': 'all_and_dmg', + 'type': 'none', + 'dependencies': [ + 'All', + '../chrome/chrome.gyp:build_app_dmg', + ], + }, + # These targets are here so the build bots can use them to build + # subsets of a full tree for faster cycle times. + { + 'target_name': 'chromium_builder_dbg', + 'type': 'none', + 'dependencies': [ + '../chrome/chrome.gyp:browser_tests', + '../chrome/chrome.gyp:interactive_ui_tests', + '../chrome/chrome.gyp:safe_browsing_tests', + '../chrome/chrome.gyp:sync_integration_tests', + '../chrome/chrome.gyp:sync_unit_tests', + '../chrome/chrome.gyp:ui_tests', + '../chrome/chrome.gyp:unit_tests', + '../content/content.gyp:content_browsertests', + '../content/content.gyp:content_unittests', + '../ui/ui.gyp:gfx_unittests', + '../gpu/gpu.gyp:gpu_unittests', + '../ipc/ipc.gyp:ipc_tests', + '../jingle/jingle.gyp:jingle_unittests', + '../media/media.gyp:media_unittests', + '../printing/printing.gyp:printing_unittests', + '../remoting/remoting.gyp:remoting_unittests', + '../sql/sql.gyp:sql_unittests', + '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', + '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', + 'temp_gyp/googleurl.gyp:googleurl_unittests', + ], + }, + { + 'target_name': 'chromium_builder_rel', + 'type': 'none', + 'dependencies': [ + '../chrome/chrome.gyp:browser_tests', + '../chrome/chrome.gyp:performance_browser_tests', + '../chrome/chrome.gyp:performance_ui_tests', + '../chrome/chrome.gyp:plugin_tests', + '../chrome/chrome.gyp:safe_browsing_tests', + '../chrome/chrome.gyp:sync_integration_tests', + '../chrome/chrome.gyp:sync_unit_tests', + '../chrome/chrome.gyp:ui_tests', + '../chrome/chrome.gyp:unit_tests', + '../content/content.gyp:content_browsertests', + '../content/content.gyp:content_unittests', + '../ui/ui.gyp:gfx_unittests', + '../gpu/gpu.gyp:gpu_unittests', + '../ipc/ipc.gyp:ipc_tests', + '../jingle/jingle.gyp:jingle_unittests', + '../media/media.gyp:media_unittests', + '../printing/printing.gyp:printing_unittests', + '../remoting/remoting.gyp:remoting_unittests', + '../sql/sql.gyp:sql_unittests', + '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', + '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', + 'temp_gyp/googleurl.gyp:googleurl_unittests', + ], + }, + { + 'target_name': 'chromium_builder_dbg_tsan_mac', + 'type': 'none', + 'dependencies': [ + '../base/base.gyp:base_unittests', + '../crypto/crypto.gyp:crypto_unittests', + 'temp_gyp/googleurl.gyp:googleurl_unittests', + '../net/net.gyp:net_unittests', + '../ipc/ipc.gyp:ipc_tests', + '../jingle/jingle.gyp:jingle_unittests', + '../media/media.gyp:media_unittests', + '../printing/printing.gyp:printing_unittests', + '../remoting/remoting.gyp:remoting_unittests', + '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', + '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', + ], + }, + { + 'target_name': 'chromium_builder_dbg_valgrind_mac', + 'type': 'none', + 'dependencies': [ + '../base/base.gyp:base_unittests', + '../crypto/crypto.gyp:crypto_unittests', + '../ipc/ipc.gyp:ipc_tests', + '../media/media.gyp:media_unittests', + '../net/net.gyp:net_unittests', + '../printing/printing.gyp:printing_unittests', + '../remoting/remoting.gyp:remoting_unittests', + '../chrome/chrome.gyp:safe_browsing_tests', + '../chrome/chrome.gyp:sync_unit_tests', + '../chrome/chrome.gyp:unit_tests', + '../chrome/chrome.gyp:ui_tests', + '../content/content.gyp:content_unittests', + '../ui/ui.gyp:gfx_unittests', + '../jingle/jingle.gyp:jingle_unittests', + '../sql/sql.gyp:sql_unittests', + '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', + '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', + 'temp_gyp/googleurl.gyp:googleurl_unittests', + ], + }, + ], # targets + }], # OS="mac" + ['OS=="win"', { + 'targets': [ + # These targets are here so the build bots can use them to build + # subsets of a full tree for faster cycle times. + { + 'target_name': 'chromium_builder', + 'type': 'none', + 'dependencies': [ + '../chrome/chrome.gyp:browser_tests', + '../chrome/chrome.gyp:installer_util_unittests', + '../chrome/chrome.gyp:interactive_ui_tests', + '../chrome/chrome.gyp:mini_installer_test', + '../chrome/chrome.gyp:performance_browser_tests', + '../chrome/chrome.gyp:performance_ui_tests', + '../chrome/chrome.gyp:plugin_tests', + '../chrome/chrome.gyp:safe_browsing_tests', + '../chrome/chrome.gyp:sync_integration_tests', + '../chrome/chrome.gyp:sync_unit_tests', + '../chrome/chrome.gyp:ui_tests', + '../chrome/chrome.gyp:unit_tests', + '../content/content.gyp:content_browsertests', + '../content/content.gyp:content_unittests', + # mini_installer_tests depends on mini_installer. This should be + # defined in installer.gyp. + '../chrome/installer/mini_installer.gyp:mini_installer', + '../chrome_frame/chrome_frame.gyp:chrome_frame_net_tests', + '../chrome_frame/chrome_frame.gyp:chrome_frame_perftests', + '../chrome_frame/chrome_frame.gyp:chrome_frame_reliability_tests', + '../chrome_frame/chrome_frame.gyp:chrome_frame_tests', + '../chrome_frame/chrome_frame.gyp:chrome_frame_unittests', + '../chrome_frame/chrome_frame.gyp:npchrome_frame', + '../courgette/courgette.gyp:courgette_unittests', + '../ui/ui.gyp:gfx_unittests', + '../gpu/gpu.gyp:gpu_unittests', + '../ipc/ipc.gyp:ipc_tests', + '../jingle/jingle.gyp:jingle_unittests', + '../media/media.gyp:media_unittests', + '../printing/printing.gyp:printing_unittests', + '../remoting/remoting.gyp:remoting_unittests', + '../sql/sql.gyp:sql_unittests', + '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', + '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', + '../webkit/webkit.gyp:pull_in_copy_TestNetscapePlugIn', + '../ui/views/views.gyp:views_unittests', + # TODO(nsylvain) ui_tests.exe depends on test_shell_common. + # This should: + # 1) not be the case. OR. + # 2) be expressed in the ui tests dependencies. + '../webkit/webkit.gyp:test_shell_common', + 'temp_gyp/googleurl.gyp:googleurl_unittests', + ], + }, + { + 'target_name': 'chromium_builder_dbg_tsan_win', + 'type': 'none', + 'dependencies': [ + '../base/base.gyp:base_unittests', + '../content/content.gyp:content_unittests', + '../crypto/crypto.gyp:crypto_unittests', + '../ipc/ipc.gyp:ipc_tests', + '../jingle/jingle.gyp:jingle_unittests', + '../media/media.gyp:media_unittests', + '../net/net.gyp:net_unittests', + '../printing/printing.gyp:printing_unittests', + '../remoting/remoting.gyp:remoting_unittests', + '../sql/sql.gyp:sql_unittests', + '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', + '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', + 'temp_gyp/googleurl.gyp:googleurl_unittests', + ], + }, + { + 'target_name': 'chromium_builder_dbg_drmemory_win', + 'type': 'none', + 'dependencies': [ + '../base/base.gyp:base_unittests', + '../chrome/chrome.gyp:unit_tests', + '../content/content.gyp:content_unittests', + '../crypto/crypto.gyp:crypto_unittests', + '../ipc/ipc.gyp:ipc_tests', + '../jingle/jingle.gyp:jingle_unittests', + '../media/media.gyp:media_unittests', + '../net/net.gyp:net_unittests', + '../printing/printing.gyp:printing_unittests', + '../remoting/remoting.gyp:remoting_unittests', + '../sql/sql.gyp:sql_unittests', + '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', + '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', + 'temp_gyp/googleurl.gyp:googleurl_unittests', + ], + }, + { + 'target_name': 'webkit_builder_win', + 'type': 'none', + 'dependencies': [ + '../webkit/webkit.gyp:test_shell', + '../webkit/webkit.gyp:test_shell_tests', + '../webkit/webkit.gyp:pull_in_webkit_unit_tests', + '../webkit/webkit.gyp:pull_in_DumpRenderTree', + ], + }, + ], # targets + 'conditions': [ + ['branding=="Chrome"', { + 'targets': [ + { + 'target_name': 'chrome_official_builder', + 'type': 'none', + 'dependencies': [ + '../chrome/chrome.gyp:chromedriver', + '../chrome/chrome.gyp:crash_service', + '../chrome/chrome.gyp:crash_service_win64', + '../chrome/chrome.gyp:performance_ui_tests', + '../chrome/chrome.gyp:policy_templates', + '../chrome/chrome.gyp:pyautolib', + '../chrome/chrome.gyp:reliability_tests', + '../chrome/chrome.gyp:automated_ui_tests', + '../chrome/installer/mini_installer.gyp:mini_installer', + '../chrome_frame/chrome_frame.gyp:npchrome_frame', + '../courgette/courgette.gyp:courgette', + '../courgette/courgette.gyp:courgette64', + '../cloud_print/virtual_driver/virtual_driver.gyp:virtual_driver', + '../remoting/remoting.gyp:remoting_webapp', + '../third_party/adobe/flash/flash_player.gyp:flash_player', + ], + 'conditions': [ + ['internal_pdf', { + 'dependencies': [ + '../pdf/pdf.gyp:pdf', + ], + }], # internal_pdf + ] + }, + ], # targets + }], # branding=="Chrome" + ], # conditions + }], # OS="win" + ['chromeos==1', { + 'targets': [ + { + 'target_name': 'chromeos_builder', + 'type': 'none', + 'dependencies': [ + '../ash/ash.gyp:ash_shell', + '../ash/ash.gyp:aura_shell_unittests', + '../base/base.gyp:base_unittests', + #'../chrome/chrome.gyp:browser_tests', + '../chrome/chrome.gyp:chrome', + #'../chrome/chrome.gyp:interactive_ui_tests', + #'../chrome/chrome.gyp:performance_browser_tests', + #'../chrome/chrome.gyp:performance_ui_tests', + #'../chrome/chrome.gyp:safe_browsing_tests', + #'../chrome/chrome.gyp:sync_integration_tests', + '../chrome/chrome.gyp:sync_unit_tests', + '../chrome/chrome.gyp:ui_tests', + '../chrome/chrome.gyp:unit_tests', + #'../content/content.gyp:content_browsertests', + '../content/content.gyp:content_unittests', + #'../crypto/crypto.gyp:crypto_unittests', + #'../dbus/dbus.gyp:dbus_unittests', + '../ipc/ipc.gyp:ipc_tests', + #'../jingle/jingle.gyp:jingle_unittests', + #'../media/media.gyp:ffmpeg_tests', + #'../media/media.gyp:media_unittests', + #'../net/net.gyp:net_unittests', + #'../printing/printing.gyp:printing_unittests', + #'../remoting/remoting.gyp:remoting_unittests', + '../sql/sql.gyp:sql_unittests', + #'../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', + #'../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', + '../ui/aura/aura.gyp:*', + '../ui/gfx/compositor/compositor.gyp:*', + '../ui/ui.gyp:gfx_unittests', + '../ui/views/views.gyp:views', + '../ui/views/views.gyp:views_unittests', + '../webkit/webkit.gyp:pull_in_webkit_unit_tests', + #'temp_gyp/googleurl.gyp:googleurl_unittests', + ], + }, + ], # targets + }], # "chromeos==1" + ['use_aura==1', { + 'targets': [ + { + 'target_name': 'aura_builder', + 'type': 'none', + 'dependencies': [ + '../ash/ash.gyp:ash_shell', + '../ash/ash.gyp:aura_shell_unittests', + '../chrome/chrome.gyp:chrome', + '../chrome/chrome.gyp:unit_tests', + '../chrome/chrome.gyp:ui_tests', + '../ui/aura/aura.gyp:*', + '../ui/gfx/compositor/compositor.gyp:*', + '../ui/views/views.gyp:views', + '../ui/views/views.gyp:views_unittests', + '../webkit/webkit.gyp:pull_in_webkit_unit_tests', + ], + 'conditions': [ + ['OS=="win"', { + # Remove this when we have the real compositor. + 'copies': [ + { + 'destination': '<(PRODUCT_DIR)', + 'files': ['../third_party/directxsdk/files/dlls/D3DX10d_43.dll'] + }, + ], + 'dependencies': [ + '../chrome/chrome.gyp:crash_service', + '../chrome/chrome.gyp:crash_service_win64', + ], + }], + ['OS=="linux"', { + # Tests that currently only work on Linux. + 'dependencies': [ + '../base/base.gyp:base_unittests', + '../chrome/chrome.gyp:sync_unit_tests', + '../content/content.gyp:content_unittests', + '../ipc/ipc.gyp:ipc_tests', + '../sql/sql.gyp:sql_unittests', + '../ui/ui.gyp:gfx_unittests', + ], + }], + ['OS=="mac"', { + # Exclude dependencies that are not currently implemented. + 'dependencies!': [ + '../chrome/chrome.gyp:chrome', + '../chrome/chrome.gyp:unit_tests', + '../chrome/chrome.gyp:ui_tests', + '../ui/views/views.gyp:views_unittests', + ], + }], + ], + }, + ], # targets + }], # "use_aura==1" + ], # conditions +} diff --git a/media/webrtc/trunk/build/all_android.gyp b/media/webrtc/trunk/build/all_android.gyp new file mode 100644 index 000000000000..ae2370c7288c --- /dev/null +++ b/media/webrtc/trunk/build/all_android.gyp @@ -0,0 +1,60 @@ +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This is all.gyp file for Android to prevent breakage in Android and other +# platform; It will be churning a lot in the short term and eventually be merged +# into all.gyp. + +{ + 'targets': [ + { + 'target_name': 'All', + 'type': 'none', + 'dependencies': [ + 'util/build_util.gyp:*', + 'android_builder_tests', + ], + }, # target_name: All + { + # The current list of tests for android. This is temporary + # until the full set supported. If adding a new test here, + # please also add it to build/android/run_tests.py, else the + # test is not run. + 'target_name': 'android_builder_tests', + 'type': 'none', + 'dependencies': [ + '../base/base.gyp:base_unittests', + '../sql/sql.gyp:sql_unittests', + '../ipc/ipc.gyp:ipc_tests', + '../net/net.gyp:net_unittests', + # From here down: not added to run_tests.py yet. + '../jingle/jingle.gyp:jingle_unittests', + ], + }, + { + # Experimental / in-progress targets that are expected to fail + # but we still try to compile them on bots (turning the stage + # orange, not red). + 'target_name': 'android_experimental', + 'type': 'none', + 'dependencies': [ + '../webkit/webkit.gyp:pull_in_webkit_unit_tests', + '../webkit/webkit.gyp:pull_in_DumpRenderTree', + '../chrome/chrome.gyp:unit_tests', + ], + }, + { + # In-progress targets that are expected to fail and are NOT run + # on any bot. + 'target_name': 'android_in_progress', + 'type': 'none', + 'dependencies': [ + '../content/content.gyp:content_browsertests', + '../content/content.gyp:content_unittests', + '../chrome/chrome.gyp:sync_unit_tests', + '../ui/ui.gyp:gfx_unittests', + ], + }, + ], # targets +} diff --git a/media/webrtc/trunk/build/android/android_commands.py b/media/webrtc/trunk/build/android/android_commands.py new file mode 100755 index 000000000000..007d040229bd --- /dev/null +++ b/media/webrtc/trunk/build/android/android_commands.py @@ -0,0 +1,780 @@ +#!/usr/bin/env python +# Copyright (c) 2011 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""Provides an interface to communicate with the device via the adb command. + +Assumes adb binary is currently on system path. + +Usage: + python android_commands.py wait-for-pm +""" + +import collections +import datetime +import logging +import optparse +import os +import pexpect +import re +import subprocess +import sys +import tempfile +import time + +# adb_interface.py is under ../../third_party/android/testrunner/ +sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', + '..', 'third_party', 'android', 'testrunner')) +import adb_interface +import cmd_helper +import errors # is under ../../third_party/android/testrunner/errors.py +from run_tests_helper import IsRunningAsBuildbot + + +# Pattern to search for the next whole line of pexpect output and capture it +# into a match group. We can't use ^ and $ for line start end with pexpect, +# see http://www.noah.org/python/pexpect/#doc for explanation why. +PEXPECT_LINE_RE = re.compile('\n([^\r]*)\r') + +# Set the adb shell prompt to be a unique marker that will [hopefully] not +# appear at the start of any line of a command's output. +SHELL_PROMPT = '~+~PQ\x17RS~+~' + +# This only works for single core devices. +SCALING_GOVERNOR = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor' +DROP_CACHES = '/proc/sys/vm/drop_caches' + +# Java properties file +LOCAL_PROPERTIES_PATH = '/data/local.prop' + +# Property in /data/local.prop that controls Java assertions. +JAVA_ASSERT_PROPERTY = 'dalvik.vm.enableassertions' + +BOOT_COMPLETE_RE = re.compile( + re.escape('android.intent.action.MEDIA_MOUNTED path: /mnt/sdcard') + + '|' + re.escape('PowerManagerService: bootCompleted')) + +# Keycode "enum" suitable for passing to AndroidCommands.SendKey(). +KEYCODE_DPAD_RIGHT = 22 +KEYCODE_ENTER = 66 +KEYCODE_MENU = 82 +KEYCODE_BACK = 4 + + +def GetEmulators(): + """Returns a list of emulators. Does not filter by status (e.g. offline). + + Both devices starting with 'emulator' will be returned in below output: + + * daemon not running. starting it now on port 5037 * + * daemon started successfully * + List of devices attached + 027c10494100b4d7 device + emulator-5554 offline + emulator-5558 device + """ + re_device = re.compile('^emulator-[0-9]+', re.MULTILINE) + devices = re_device.findall(cmd_helper.GetCmdOutput(['adb', 'devices'])) + return devices + + +def GetAttachedDevices(): + """Returns a list of attached, online android devices. + + If a preferred device has been set with ANDROID_SERIAL, it will be first in + the returned list. + + Example output: + + * daemon not running. starting it now on port 5037 * + * daemon started successfully * + List of devices attached + 027c10494100b4d7 device + emulator-5554 offline + """ + re_device = re.compile('^([a-zA-Z0-9_:.-]+)\tdevice$', re.MULTILINE) + devices = re_device.findall(cmd_helper.GetCmdOutput(['adb', 'devices'])) + preferred_device = os.environ.get("ANDROID_SERIAL") + if preferred_device in devices: + devices.remove(preferred_device) + devices.insert(0, preferred_device) + return devices + + +def _GetHostFileInfo(file_name): + """Returns a tuple containing size and modified UTC time for file_name.""" + # The time accuracy on device is only to minute level, remove the second and + # microsecond from host results. + utc_time = datetime.datetime.utcfromtimestamp(os.path.getmtime(file_name)) + time_delta = datetime.timedelta(seconds=utc_time.second, + microseconds=utc_time.microsecond) + return os.path.getsize(file_name), utc_time - time_delta + + +def ListHostPathContents(path): + """Lists files in all subdirectories of |path|. + + Args: + path: The path to list. + + Returns: + A dict of {"name": (size, lastmod), ...}. + """ + if os.path.isfile(path): + return {os.path.basename(path): _GetHostFileInfo(path)} + ret = {} + for root, dirs, files in os.walk(path): + for d in dirs: + if d.startswith('.'): + dirs.remove(d) # Prune the dir for subsequent iterations. + for f in files: + if f.startswith('.'): + continue + full_file_name = os.path.join(root, f) + file_name = os.path.relpath(full_file_name, path) + ret[file_name] = _GetHostFileInfo(full_file_name) + return ret + + +def _GetFilesFromRecursiveLsOutput(path, ls_output, re_file, utc_offset=None): + """Gets a list of files from `ls` command output. + + Python's os.walk isn't used because it doesn't work over adb shell. + + Args: + path: The path to list. + ls_output: A list of lines returned by an `ls -lR` command. + re_file: A compiled regular expression which parses a line into named groups + consisting of at minimum "filename", "date", "time", "size" and + optionally "timezone". + utc_offset: A 5-character string of the form +HHMM or -HHMM, where HH is a + 2-digit string giving the number of UTC offset hours, and MM is a + 2-digit string giving the number of UTC offset minutes. If the input + utc_offset is None, will try to look for the value of "timezone" if it + is specified in re_file. + + Returns: + A dict of {"name": (size, lastmod), ...} where: + name: The file name relative to |path|'s directory. + size: The file size in bytes (0 for directories). + lastmod: The file last modification date in UTC. + """ + re_directory = re.compile('^%s/(?P[^:]+):$' % re.escape(path)) + path_dir = os.path.dirname(path) + + current_dir = '' + files = {} + for line in ls_output: + directory_match = re_directory.match(line) + if directory_match: + current_dir = directory_match.group('dir') + continue + file_match = re_file.match(line) + if file_match: + filename = os.path.join(current_dir, file_match.group('filename')) + if filename.startswith(path_dir): + filename = filename[len(path_dir)+1:] + lastmod = datetime.datetime.strptime( + file_match.group('date') + ' ' + file_match.group('time')[:5], + '%Y-%m-%d %H:%M') + if not utc_offset and 'timezone' in re_file.groupindex: + utc_offset = file_match.group('timezone') + if isinstance(utc_offset, str) and len(utc_offset) == 5: + utc_delta = datetime.timedelta(hours=int(utc_offset[1:3]), + minutes=int(utc_offset[3:5])) + if utc_offset[0:1] == '-': + utc_delta = -utc_delta; + lastmod -= utc_delta + files[filename] = (int(file_match.group('size')), lastmod) + return files + + +def GetLogTimestamp(log_line): + """Returns the timestamp of the given |log_line|.""" + try: + return datetime.datetime.strptime(log_line[:18], '%m-%d %H:%M:%S.%f') + except (ValueError, IndexError): + logging.critical('Error reading timestamp from ' + log_line) + return None + + +class AndroidCommands(object): + """Helper class for communicating with Android device via adb. + + Args: + device: If given, adb commands are only send to the device of this ID. + Otherwise commands are sent to all attached devices. + wait_for_pm: If true, issues an adb wait-for-device command. + """ + + def __init__(self, device=None, wait_for_pm=False): + self._adb = adb_interface.AdbInterface() + if device: + self._adb.SetTargetSerial(device) + if wait_for_pm: + self.WaitForDevicePm() + self._logcat = None + self._original_governor = None + self._pushed_files = [] + + def Adb(self): + """Returns our AdbInterface to avoid us wrapping all its methods.""" + return self._adb + + def WaitForDevicePm(self): + """Blocks until the device's package manager is available. + + To workaround http://b/5201039, we restart the shell and retry if the + package manager isn't back after 120 seconds. + + Raises: + errors.WaitForResponseTimedOutError after max retries reached. + """ + last_err = None + retries = 3 + while retries: + try: + self._adb.WaitForDevicePm() + return # Success + except errors.WaitForResponseTimedOutError as e: + last_err = e + logging.warning('Restarting and retrying after timeout: %s' % str(e)) + retries -= 1 + self.RestartShell() + raise last_err # Only reached after max retries, re-raise the last error. + + def SynchronizeDateTime(self): + """Synchronize date/time between host and device.""" + self._adb.SendShellCommand('date -u %f' % time.time()) + + def RestartShell(self): + """Restarts the shell on the device. Does not block for it to return.""" + self.RunShellCommand('stop') + self.RunShellCommand('start') + + def Reboot(self, full_reboot=True): + """Reboots the device and waits for the package manager to return. + + Args: + full_reboot: Whether to fully reboot the device or just restart the shell. + """ + # TODO(torne): hive can't reboot the device either way without breaking the + # connection; work out if we can handle this better + if os.environ.get('USING_HIVE'): + logging.warning('Ignoring reboot request as we are on hive') + return + if full_reboot: + self._adb.SendCommand('reboot') + else: + self.RestartShell() + self.WaitForDevicePm() + self.StartMonitoringLogcat(timeout=120) + self.WaitForLogMatch(BOOT_COMPLETE_RE) + self.UnlockDevice() + + def Uninstall(self, package): + """Uninstalls the specified package from the device. + + Args: + package: Name of the package to remove. + """ + uninstall_command = 'uninstall %s' % package + + logging.info('>>> $' + uninstall_command) + self._adb.SendCommand(uninstall_command, timeout_time=60) + + def Install(self, package_file_path): + """Installs the specified package to the device. + + Args: + package_file_path: Path to .apk file to install. + """ + + assert os.path.isfile(package_file_path) + + install_command = 'install %s' % package_file_path + + logging.info('>>> $' + install_command) + self._adb.SendCommand(install_command, timeout_time=2*60) + + # It is tempting to turn this function into a generator, however this is not + # possible without using a private (local) adb_shell instance (to ensure no + # other command interleaves usage of it), which would defeat the main aim of + # being able to reuse the adb shell instance across commands. + def RunShellCommand(self, command, timeout_time=20, log_result=True): + """Send a command to the adb shell and return the result. + + Args: + command: String containing the shell command to send. Must not include + the single quotes as we use them to escape the whole command. + timeout_time: Number of seconds to wait for command to respond before + retrying, used by AdbInterface.SendShellCommand. + log_result: Boolean to indicate whether we should log the result of the + shell command. + + Returns: + list containing the lines of output received from running the command + """ + logging.info('>>> $' + command) + if "'" in command: logging.warning(command + " contains ' quotes") + result = self._adb.SendShellCommand("'%s'" % command, + timeout_time).splitlines() + if log_result: + logging.info('\n>>> '.join(result)) + return result + + def KillAll(self, process): + """Android version of killall, connected via adb. + + Args: + process: name of the process to kill off + + Returns: + the number of processess killed + """ + pids = self.ExtractPid(process) + if pids: + self.RunShellCommand('kill ' + ' '.join(pids)) + return len(pids) + + def StartActivity(self, package, activity, + action='android.intent.action.VIEW', data=None, + extras=None, trace_file_name=None): + """Starts |package|'s activity on the device. + + Args: + package: Name of package to start (e.g. 'com.android.chrome'). + activity: Name of activity (e.g. '.Main' or 'com.android.chrome.Main'). + data: Data string to pass to activity (e.g. 'http://www.example.com/'). + extras: Dict of extras to pass to activity. + trace_file_name: If used, turns on and saves the trace to this file name. + """ + cmd = 'am start -a %s -n %s/%s' % (action, package, activity) + if data: + cmd += ' -d "%s"' % data + if extras: + cmd += ' -e' + for key in extras: + cmd += ' %s %s' % (key, extras[key]) + if trace_file_name: + cmd += ' -S -P ' + trace_file_name + self.RunShellCommand(cmd) + + def EnableAdbRoot(self): + """Enable root on the device.""" + self._adb.EnableAdbRoot() + + def CloseApplication(self, package): + """Attempt to close down the application, using increasing violence. + + Args: + package: Name of the process to kill off, e.g. com.android.chrome + """ + self.RunShellCommand('am force-stop ' + package) + + def ClearApplicationState(self, package): + """Closes and clears all state for the given |package|.""" + self.CloseApplication(package) + self.RunShellCommand('rm -r /data/data/%s/cache/*' % package) + self.RunShellCommand('rm -r /data/data/%s/files/*' % package) + self.RunShellCommand('rm -r /data/data/%s/shared_prefs/*' % package) + + def SendKeyEvent(self, keycode): + """Sends keycode to the device. + + Args: + keycode: Numeric keycode to send (see "enum" at top of file). + """ + self.RunShellCommand('input keyevent %d' % keycode) + + def PushIfNeeded(self, local_path, device_path): + """Pushes |local_path| to |device_path|. + + Works for files and directories. This method skips copying any paths in + |test_data_paths| that already exist on the device with the same timestamp + and size. + + All pushed files can be removed by calling RemovePushedFiles(). + """ + assert os.path.exists(local_path) + self._pushed_files.append(device_path) + + # If the path contents are the same, there's nothing to do. + local_contents = ListHostPathContents(local_path) + device_contents = self.ListPathContents(device_path) + # Only compare the size and timestamp if only copying a file because + # the filename on device can be renamed. + if os.path.isfile(local_path): + assert len(local_contents) == 1 + is_equal = local_contents.values() == device_contents.values() + else: + is_equal = local_contents == device_contents + if is_equal: + logging.info('%s is up-to-date. Skipping file push.' % device_path) + return + + # They don't match, so remove everything first and then create it. + if os.path.isdir(local_path): + self.RunShellCommand('rm -r %s' % device_path, timeout_time=2*60) + self.RunShellCommand('mkdir -p %s' % device_path) + + # NOTE: We can't use adb_interface.Push() because it hardcodes a timeout of + # 60 seconds which isn't sufficient for a lot of users of this method. + push_command = 'push %s %s' % (local_path, device_path) + logging.info('>>> $' + push_command) + output = self._adb.SendCommand(push_command, timeout_time=30*60) + # Success looks like this: "3035 KB/s (12512056 bytes in 4.025s)" + # Errors look like this: "failed to copy ... " + if not re.search('^[0-9]', output): + logging.critical('PUSH FAILED: ' + output) + + def GetFileContents(self, filename): + """Gets contents from the file specified by |filename|.""" + return self.RunShellCommand('if [ -f "' + filename + '" ]; then cat "' + + filename + '"; fi') + + def SetFileContents(self, filename, contents): + """Writes |contents| to the file specified by |filename|.""" + with tempfile.NamedTemporaryFile() as f: + f.write(contents) + f.flush() + self._adb.Push(f.name, filename) + + def RemovePushedFiles(self): + """Removes all files pushed with PushIfNeeded() from the device.""" + for p in self._pushed_files: + self.RunShellCommand('rm -r %s' % p, timeout_time=2*60) + + def ListPathContents(self, path): + """Lists files in all subdirectories of |path|. + + Args: + path: The path to list. + + Returns: + A dict of {"name": (size, lastmod), ...}. + """ + # Example output: + # /foo/bar: + # -rw-r----- 1 user group 102 2011-05-12 12:29:54.131623387 +0100 baz.txt + re_file = re.compile('^-(?P[^\s]+)\s+' + '(?P[^\s]+)\s+' + '(?P[^\s]+)\s+' + '(?P[^\s]+)\s+' + '(?P[^\s]+)\s+' + '(?P