Changeset 351
- Timestamp:
- Feb 4, 2011, 12:42:22 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/ticker.cpp
r347 r351 96 96 { 97 97 #if !FINAL_RELEASE 98 if (!entity) 99 { 100 fprintf(stderr, "ERROR: refing NULL entity\n"); 101 return; 102 } 98 103 if (entity->destroy) 99 104 fprintf(stderr, "ERROR: refing entity scheduled for destruction\n"); … … 122 127 { 123 128 #if !FINAL_RELEASE 129 if (!entity) 130 { 131 fprintf(stderr, "ERROR: dereferencing NULL entity\n"); 132 return 0; 133 } 124 134 if (entity->ref <= 0) 125 135 fprintf(stderr, "ERROR: dereferencing unreferenced entity\n"); … … 163 173 if (data->quit && !((data->frame - data->quitframe) % data->quitdelay)) 164 174 { 165 Entity *entity = NULL; 166 for (int i = 0; i < Entity::ALLGROUP_END && !entity; i++) 167 entity = data->list[i]; 168 if (entity && entity->ref) 169 { 170 #if !FINAL_RELEASE 171 if (!data->panic) 172 fprintf(stderr, "ERROR: %i entities stuck after %i frames\n", 173 data->nentities, data->quitdelay); 174 data->panic = 1; 175 #endif 176 entity->ref--; 177 data->quitdelay = data->quitdelay > 1 ? data->quitdelay / 2 : 1; 178 } 175 int n = 0; 176 data->panic = 2 * (data->panic + 1); 177 178 for (int i = 0; i < Entity::ALLGROUP_END && n < data->panic; i++) 179 for (Entity *e = data->list[i]; e && n < data->panic; e = e->gamenext) 180 if (e->ref) 181 { 182 e->ref--; 183 n++; 184 } 185 186 #if !FINAL_RELEASE 187 if (n) 188 fprintf(stderr, "ERROR: %i entities stuck after %i frames, " 189 "poked %i\n", data->nentities, data->quitdelay, n); 190 #endif 191 192 data->quitdelay = data->quitdelay > 1 ? data->quitdelay / 2 : 1; 179 193 } 180 194
Note: See TracChangeset
for help on using the changeset viewer.