summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/rtems')
-rw-r--r--cpukit/rtems/inline/rtems/rtems/message.inl7
-rw-r--r--cpukit/rtems/macros/rtems/rtems/message.inl28
2 files changed, 17 insertions, 18 deletions
diff --git a/cpukit/rtems/inline/rtems/rtems/message.inl b/cpukit/rtems/inline/rtems/rtems/message.inl
index 18d793d2fe..8837159580 100644
--- a/cpukit/rtems/inline/rtems/rtems/message.inl
+++ b/cpukit/rtems/inline/rtems/rtems/message.inl
@@ -133,10 +133,9 @@ STATIC INLINE void _Message_queue_Free (
Message_queue_Control *the_message_queue
)
{
- if (the_message_queue->message_buffers)
- {
- _Workspace_Free((void *) the_message_queue->message_buffers);
- the_message_queue->message_buffers = 0;
+ if (the_message_queue->message_buffers) {
+ _Workspace_Free((void *) the_message_queue->message_buffers);
+ the_message_queue->message_buffers = 0;
}
_Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
diff --git a/cpukit/rtems/macros/rtems/rtems/message.inl b/cpukit/rtems/macros/rtems/rtems/message.inl
index 5415708ac5..ac0b1afb3a 100644
--- a/cpukit/rtems/macros/rtems/rtems/message.inl
+++ b/cpukit/rtems/macros/rtems/rtems/message.inl
@@ -23,8 +23,7 @@
*/
#define _Message_queue_Copy_buffer( _source, _destination ) \
- *(Message_queue_Buffer *)(_destination) = \
- *(Message_queue_Buffer *)(_source)
+ memcpy( _destination, _source, _size)
/*PAGE
*
@@ -86,23 +85,24 @@
/*PAGE
*
- * _Message_queue_Allocate
- *
- */
-
-#define _Message_queue_Allocate() \
- (Message_queue_Control *) \
- _Objects_Allocate( &_Message_queue_Information )
-
-/*PAGE
- *
* _Message_queue_Free
*
*/
#define _Message_queue_Free( _the_message_queue ) \
- _Objects_Free( &_Message_queue_Information, \
- &(_the_message_queue)->Object )
+ do { \
+ \
+ if ( (_the_messsage_queue)->message_buffers ) { \
+ _Workspace_Free((void *) (_the_message_queue)->message_buffers); \
+ (_the_message_queue)->message_buffers = 0; \
+ }
+ \
+ _Objects_Free( \
+ &_Message_queue_Information, \
+ &(_the_message_queue)->Object \
+ ); \
+ } while ( 0 )
+
/*PAGE
*