[rtems commit] score: Use _Workspace_Allocate_or_fatal_error()

Sebastian Huber sebh at rtems.org
Mon Oct 15 12:55:17 UTC 2012


Module:    rtems
Branch:    master
Commit:    8d4faf90e8679aaa037d8c7af8d9b801c7a7a219
Changeset: http://git.rtems.org/rtems/commit/?id=8d4faf90e8679aaa037d8c7af8d9b801c7a7a219

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Aug 24 15:56:49 2012 +0200

score: Use _Workspace_Allocate_or_fatal_error()

Use _Workspace_Allocate_or_fatal_error() consistently in case auto
extend is turned off.  This helps to avoid undefined behaviour in
_API_Mutex_Allocate() in case _API_Mutex_Information() fails.

---

 cpukit/score/src/objectextendinformation.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/cpukit/score/src/objectextendinformation.c b/cpukit/score/src/objectextendinformation.c
index e93994c..b94b699 100644
--- a/cpukit/score/src/objectextendinformation.c
+++ b/cpukit/score/src/objectextendinformation.c
@@ -142,11 +142,14 @@ void _Objects_Extend_information(
     block_size = block_count *
            (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) +
           ((maximum + minimum_index) * sizeof(Objects_Control *));
-    object_blocks = (void**) _Workspace_Allocate( block_size );
-
-    if ( !object_blocks ) {
-      _Workspace_Free( new_object_block );
-      return;
+    if ( information->auto_extend ) {
+      object_blocks = _Workspace_Allocate( block_size );
+      if ( !object_blocks ) {
+        _Workspace_Free( new_object_block );
+        return;
+      }
+    } else {
+      object_blocks = _Workspace_Allocate_or_fatal_error( block_size );
     }
 
     /*




More information about the vc mailing list