diff options
Diffstat (limited to 'cpukit/score/src/objectgetnext.c')
-rw-r--r-- | cpukit/score/src/objectgetnext.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/cpukit/score/src/objectgetnext.c b/cpukit/score/src/objectgetnext.c index 054ed22fc1..156bee72a4 100644 --- a/cpukit/score/src/objectgetnext.c +++ b/cpukit/score/src/objectgetnext.c @@ -28,6 +28,7 @@ Objects_Control *_Objects_Get_next( { Objects_Control *the_object; Objects_Id next_id; + Objects_Maximum maximum; if ( !information ) return NULL; @@ -41,21 +42,20 @@ Objects_Control *_Objects_Get_next( next_id = id; _Objects_Allocator_lock(); + maximum = _Objects_Get_maximum_index( information ); do { - /* walked off end of list? */ - if (_Objects_Get_index(next_id) > information->maximum) - { - _Objects_Allocator_unlock(); - *next_id_p = OBJECTS_ID_FINAL; - return NULL; - } + /* walked off end of list? */ + if (_Objects_Get_index( next_id ) > maximum) { + _Objects_Allocator_unlock(); + *next_id_p = OBJECTS_ID_FINAL; + return NULL; + } - /* try to grab one */ - the_object = _Objects_Get_no_protection( next_id, information ); - - next_id++; + /* try to grab one */ + the_object = _Objects_Get_no_protection( next_id, information ); + next_id++; } while ( the_object == NULL ); *next_id_p = next_id; |