summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/objectsetname.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-11-21 17:30:52 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-12-07 14:22:01 +0100
commit9c9c6a93b1a17ad12f61b41e1d5f4616871cdba7 (patch)
treef17c5de012a4827131416d31dcb8a3e623be9873 /cpukit/score/src/objectsetname.c
parentscore: Remove dead code (diff)
downloadrtems-9c9c6a93b1a17ad12f61b41e1d5f4616871cdba7.tar.bz2
score: Remove Objects_Information::is_string
Use Objects_Information::name_length to store this information. Update #3621.
Diffstat (limited to 'cpukit/score/src/objectsetname.c')
-rw-r--r--cpukit/score/src/objectsetname.c43
1 files changed, 22 insertions, 21 deletions
diff --git a/cpukit/score/src/objectsetname.c b/cpukit/score/src/objectsetname.c
index 227de515ec..32197a3cf8 100644
--- a/cpukit/score/src/objectsetname.c
+++ b/cpukit/score/src/objectsetname.c
@@ -29,32 +29,33 @@ bool _Objects_Set_name(
const char *name
)
{
- size_t length;
- const char *s;
+ if ( _Objects_Has_string_name( information ) ) {
+ size_t length;
+ char *dup;
- s = name;
- length = strnlen( name, information->name_length );
+ length = strnlen( name, information->name_length );
+ dup = _Workspace_String_duplicate( name, length );
+ if ( dup == NULL ) {
+ return false;
+ }
- if ( information->is_string ) {
- char *d;
+ the_object->name.name_p = dup;
+ } else {
+ char c[ 4 ];
+ size_t i;
- d = _Workspace_Allocate( length + 1 );
- if ( !d )
- return false;
+ memset( c, ' ', sizeof( c ) );
- _Workspace_Free( (void *)the_object->name.name_p );
- the_object->name.name_p = NULL;
+ for ( i = 0; i < 4; ++i ) {
+ if ( name[ i ] == '\0') {
+ break;
+ }
- strncpy( d, name, length );
- d[length] = '\0';
- the_object->name.name_p = d;
- } else {
- the_object->name.name_u32 = _Objects_Build_name(
- ((length) ? s[ 0 ] : ' '),
- ((length > 1) ? s[ 1 ] : ' '),
- ((length > 2) ? s[ 2 ] : ' '),
- ((length > 3) ? s[ 3 ] : ' ')
- );
+ c[ i ] = name[ i ];
+ }
+
+ the_object->name.name_u32 =
+ _Objects_Build_name( c[ 0 ], c[ 1 ], c[ 2 ], c[ 3 ] );
}
return true;