google-code-export / evennia

Automatically exported from code.google.com/p/evennia
Other
1 stars 0 forks source link

Prevent location or destination=self #454

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
A) What steps will reproduce the problem?

1.Set location/destination to the same object holding the location/destination
2.It works.

B) What is the expected output? What do you see instead (tracebacks, error
messages)?

We should probably stop an infinite loop from forming by checking the 
location/destination for nesting before allowing it to be set. To prevent 
nested loops we need to check contents too (so an object cannot be inside an 
object that is already inside it). 

C) Further relevant information like Evennia revision, OS and other program
versions, and/or ideas about solving. Also choose 'Type' of the issue
below.

There used to be a safety check for this, it got lost when the location method 
was moved into the metaclass (so this is strictly speaking a regression). 
Either we bring back the explicit location/destination get-setter methods or we 
somehow expand on the metaclass (which sounds wasteful).

Original issue reported on code.google.com by griatch on 20 Jan 2014 at 12:20