- for(GameObjects::iterator i = gameobjects.begin(); i != gameobjects.end();
- ++i) {
- before_object_remove(*i);
- delete *i;
+ for(GameObjects::iterator i = gameobjects.begin();
+ i != gameobjects.end(); ++i) {
+ GameObject* object = *i;
+ before_object_remove(object);
+ object->unref();