diff options
-rw-r--r-- | indra/llinventory/llparcel.cpp | 2 | ||||
-rw-r--r-- | indra/llinventory/llparcel.h | 1 | ||||
-rw-r--r-- | indra/newview/llviewerparcelmgr.cpp | 10 |
3 files changed, 12 insertions, 1 deletions
diff --git a/indra/llinventory/llparcel.cpp b/indra/llinventory/llparcel.cpp index a871bcbb25..37c603348e 100644 --- a/indra/llinventory/llparcel.cpp +++ b/indra/llinventory/llparcel.cpp @@ -205,7 +205,7 @@ void LLParcel::init(const LLUUID &owner_id, mAABBMin.setVec(SOME_BIG_NUMBER, SOME_BIG_NUMBER, SOME_BIG_NUMBER); mAABBMax.setVec(SOME_BIG_NEG_NUMBER, SOME_BIG_NEG_NUMBER, SOME_BIG_NEG_NUMBER); - mLocalID = 0; + mLocalID = INVALID_PARCEL_ID; //mSimWidePrimCorrection = 0; setMaxPrimCapacity((S32)(sim_object_limit * area / (F32)(REGION_WIDTH_METERS * REGION_WIDTH_METERS))); diff --git a/indra/llinventory/llparcel.h b/indra/llinventory/llparcel.h index 499f690e76..0279e8bef9 100644 --- a/indra/llinventory/llparcel.h +++ b/indra/llinventory/llparcel.h @@ -97,6 +97,7 @@ const U32 RT_OTHER = 0x1 << 3; const U32 RT_LIST = 0x1 << 4; const U32 RT_SELL = 0x1 << 5; +const S32 INVALID_PARCEL_ID = -1; // Timeouts for parcels // default is 21 days * 24h/d * 60m/h * 60s/m *1000000 usec/s = 1814400000000 diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index 77e382b8c7..7e524df3f6 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -1540,6 +1540,16 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use // Actually extract the data. if (parcel) { + if (parcel->getLocalID() != INVALID_PARCEL_ID + && parcel->getLocalID() != local_id) + { + // The parcel has a valid parcel ID but it doesn't match the parcel + // for the data received. + llinfos << "Expecting data for parcel " << parcel->getLocalID() \ + << " but got data for parcel " << local_id << llendl; + return; + } + parcel->init(owner_id, FALSE, FALSE, FALSE, claim_date, claim_price_per_meter, rent_price_per_meter, |