summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/src')
-rw-r--r--cpukit/score/src/object.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/cpukit/score/src/object.c b/cpukit/score/src/object.c
index cbbe889a79..dee86f5ba2 100644
--- a/cpukit/score/src/object.c
+++ b/cpukit/score/src/object.c
@@ -95,10 +95,10 @@ void _Objects_Extend_information(
*/
minimum_index = _Objects_Get_index( information->minimum_id );
- index_base = minimum_index;
- block = 0;
+ index_base = minimum_index;
+ block = 0;
- if (information->maximum < minimum_index)
+ if ( information->maximum < minimum_index )
block_count = 0;
else {
block_count = information->maximum / information->allocation_size;
@@ -439,6 +439,8 @@ void _Objects_Initialize_information(
boolean is_thread
)
{
+ static Objects_Control *null_local_table = NULL;
+
unsigned32 minimum_index;
unsigned32 index;
unsigned32 name_length;
@@ -471,7 +473,7 @@ void _Objects_Initialize_information(
*/
information->auto_extend = (maximum & OBJECTS_UNLIMITED_OBJECTS) ? TRUE : FALSE;
- maximum &= ~OBJECTS_UNLIMITED_OBJECTS;
+ maximum &= ~OBJECTS_UNLIMITED_OBJECTS;
/*
* The allocation unit is the maximum value
@@ -480,6 +482,12 @@ void _Objects_Initialize_information(
information->allocation_size = maximum;
/*
+ * Provide a null local table entry for the case of any empty table.
+ */
+
+ information->local_table = &null_local_table;
+
+ /*
* Calculate minimum and maximum Id's
*/
@@ -495,7 +503,7 @@ void _Objects_Initialize_information(
name_length = maximum_name_length;
- if (name_length & (OBJECTS_NAME_ALIGNMENT-1))
+ if ( name_length & (OBJECTS_NAME_ALIGNMENT-1) )
name_length = (name_length + OBJECTS_NAME_ALIGNMENT) &
~(OBJECTS_NAME_ALIGNMENT-1);