Bug 1035044 - Use timestamp equality to check if a consecutive location is cached, removed unnecessary additional cached location from nsGeolocation class. r=jdm

This commit is contained in:
Garvan Keeley 2014-07-10 12:24:00 +02:00
Родитель 6630b815be
Коммит d8b860963f
2 изменённых файлов: 3 добавлений и 24 удалений

Просмотреть файл

@ -502,10 +502,9 @@ nsGeolocationRequest::SendLocation(nsIDOMGeoPosition* aPosition)
return;
}
nsRefPtr<Position> wrapped, cachedWrapper = mLocator->GetCachedPosition();
if (cachedWrapper && aPosition == cachedWrapper->GetWrappedGeoPosition()) {
wrapped = cachedWrapper;
} else if (aPosition) {
nsRefPtr<Position> wrapped;
if (aPosition) {
nsCOMPtr<nsIDOMGeoPositionCoords> coords;
aPosition->GetCoords(getter_AddRefs(coords));
if (coords) {
@ -518,7 +517,6 @@ nsGeolocationRequest::SendLocation(nsIDOMGeoPosition* aPosition)
return;
}
mLocator->SetCachedPosition(wrapped);
if (!mIsWatchPositionRequest) {
// Cancel timer and position updates in case the position
// callback spins the event loop
@ -1030,7 +1028,6 @@ NS_IMPL_CYCLE_COLLECTING_ADDREF(Geolocation)
NS_IMPL_CYCLE_COLLECTING_RELEASE(Geolocation)
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(Geolocation,
mCachedPosition,
mPendingCallbacks,
mWatchingCallbacks,
mPendingRequests)
@ -1203,18 +1200,6 @@ Geolocation::NotifyError(uint16_t aErrorCode)
return NS_OK;
}
void
Geolocation::SetCachedPosition(Position* aPosition)
{
mCachedPosition = aPosition;
}
Position*
Geolocation::GetCachedPosition()
{
return mCachedPosition;
}
void
Geolocation::GetCurrentPosition(PositionCallback& aCallback,
PositionErrorCallback* aErrorCallback,

Просмотреть файл

@ -145,9 +145,6 @@ public:
int32_t WatchPosition(PositionCallback& aCallback, PositionErrorCallback* aErrorCallback, const PositionOptions& aOptions, ErrorResult& aRv);
void GetCurrentPosition(PositionCallback& aCallback, PositionErrorCallback* aErrorCallback, const PositionOptions& aOptions, ErrorResult& aRv);
void SetCachedPosition(Position* aPosition);
Position* GetCachedPosition();
// Returns true if any of the callbacks are repeating
bool HasActiveCallbacks();
@ -206,9 +203,6 @@ private:
// owning back pointer.
nsRefPtr<nsGeolocationService> mService;
// cached Position wrapper
nsRefPtr<Position> mCachedPosition;
// Watch ID
uint32_t mLastWatchId;