Changeset 95fbca1 in rtems


Ignore:
Timestamp:
Aug 18, 1995, 9:41:27 PM (25 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
9863dbf
Parents:
b06e68ef
Message:

+ Added object type field to object id.

+ Added name pointer to Object_Control.

+ Modified Object Open and Close to address name field.

+ Removed name as separate element from Thread and Proxy Control.

Files:
12 edited

Legend:

Unmodified
Added
Removed
  • c/src/exec/score/headers/object.h

    rb06e68ef r95fbca1  
    3434/*
    3535 *  The following type defines the control block used to manage
    36  *  object IDs.
     36 *  object IDs.  The format is as follows (0=LSB):
     37 *
     38 *     Bits  0 .. 15    = index
     39 *     Bits 16 .. 25    = node
     40 *     Bits 26 .. 31    = class
    3741 */
    3842
    3943typedef unsigned32 Objects_Id;
     44
     45#define OBJECTS_INDEX_START_BIT  0
     46#define OBJECTS_NODE_START_BIT  16
     47#define OBJECTS_CLASS_START_BIT 26
     48
     49#define OBJECTS_INDEX_MASK      0x0000ffff
     50#define OBJECTS_NODE_MASK       0x03ff0000
     51#define OBJECTS_CLASS_MASK      0xfc000000
     52
     53#define OBJECTS_INDEX_VALID_BITS  0x0000ffff
     54#define OBJECTS_NODE_VALID_BITS   0x000003ff
     55#define OBJECTS_CLASS_VALID_BITS  0x000000cf
     56
     57/*
     58 *  This enumerated type is used in the class field of the object ID.
     59 */
     60
     61typedef enum {
     62  OBJECTS_NO_CLASS             =  0,
     63  OBJECTS_RTEMS_TASKS          =  1,
     64  OBJECTS_RTEMS_TIMERS         =  2,
     65  OBJECTS_RTEMS_SEMAPHORES     =  3,
     66  OBJECTS_RTEMS_MESSAGE_QUEUES =  4,
     67  OBJECTS_RTEMS_PARTITIONS     =  5,
     68  OBJECTS_RTEMS_REGIONS        =  6,
     69  OBJECTS_RTEMS_PORTS          =  7,
     70  OBJECTS_RTEMS_PERIODS        =  8,
     71  OBJECTS_RTEMS_EXTENSIONS     =  9
     72} Objects_Classes;
    4073
    4174/*
     
    5790
    5891typedef struct {
    59   Chain_Node Node;
    60   Objects_Id id;
     92  Chain_Node    Node;
     93  Objects_Id    id;
     94  Objects_Name *name;
    6195}   Objects_Control;
    6296
     
    67101
    68102typedef struct {
     103  Objects_Classes   the_class;       /* Class of this object */
    69104  Objects_Id        minimum_id;      /* minimum valid id of this type */
    70105  Objects_Id        maximum_id;      /* maximum valid id of this type */
     
    89124 */
    90125
    91 #define OBJECTS_ID_OF_SELF 0
     126#define OBJECTS_ID_OF_SELF ((Objects_Id) 0)
    92127
    93128/*
     
    108143
    109144#define RTEMS_OBJECT_ID_INITIAL(node)   (_Objects_Build_id(      \
     145                                            OBJECTS_NO_CLASS, \
    110146                                            node, \
    111147                                            RTEMS_OBJECT_ID_INITIAL_INDEX))
    112 #define RTEMS_OBJECT_ID_FINAL           ((Objects_Id) ~0)
     148#define RTEMS_OBJECT_ID_FINAL           ((Objects_Id)~0)
    113149
    114150/*
     
    141177void _Objects_Initialize_information (
    142178  Objects_Information *information,
     179  Objects_Classes      the_class,
    143180  boolean              supports_global,
    144181  unsigned32           maximum,
     
    265302
    266303STATIC INLINE Objects_Id _Objects_Build_id(
    267   unsigned32 node,
    268   unsigned32 index
     304  Objects_Classes  the_class,
     305  unsigned32       node,
     306  unsigned32       index
     307);
     308
     309/*
     310 *  rtems_get_class
     311 *
     312 *  DESCRIPTION:
     313 *
     314 *  This function returns the class portion of the ID.
     315 *
     316 */
     317 
     318STATIC INLINE Objects_Classes rtems_get_class(
     319  Objects_Id id
    269320);
    270321
  • c/src/exec/score/headers/thread.h

    rb06e68ef r95fbca1  
    134134typedef struct {
    135135  Objects_Control          Object;
    136   Objects_Name             name;
    137136  States_Control           current_state;
    138   rtems_task_priority         current_priority;
    139   rtems_task_priority         real_priority;
     137  rtems_task_priority      current_priority;
     138  rtems_task_priority      real_priority;
    140139  unsigned32               resource_count;
    141140  Thread_Wait_information  Wait;
    142141  Watchdog_Control         Timer;
    143   rtems_packet_prefix        *receive_packet;
     142  rtems_packet_prefix     *receive_packet;
    144143     /****************** end of common block ********************/
    145144  Chain_Node               Active;
     
    157156typedef struct {
    158157  Objects_Control           Object;
    159   Objects_Name              name;
    160158  States_Control            current_state;
    161159  rtems_task_priority       current_priority;
  • c/src/exec/score/include/rtems/score/object.h

    rb06e68ef r95fbca1  
    3434/*
    3535 *  The following type defines the control block used to manage
    36  *  object IDs.
     36 *  object IDs.  The format is as follows (0=LSB):
     37 *
     38 *     Bits  0 .. 15    = index
     39 *     Bits 16 .. 25    = node
     40 *     Bits 26 .. 31    = class
    3741 */
    3842
    3943typedef unsigned32 Objects_Id;
     44
     45#define OBJECTS_INDEX_START_BIT  0
     46#define OBJECTS_NODE_START_BIT  16
     47#define OBJECTS_CLASS_START_BIT 26
     48
     49#define OBJECTS_INDEX_MASK      0x0000ffff
     50#define OBJECTS_NODE_MASK       0x03ff0000
     51#define OBJECTS_CLASS_MASK      0xfc000000
     52
     53#define OBJECTS_INDEX_VALID_BITS  0x0000ffff
     54#define OBJECTS_NODE_VALID_BITS   0x000003ff
     55#define OBJECTS_CLASS_VALID_BITS  0x000000cf
     56
     57/*
     58 *  This enumerated type is used in the class field of the object ID.
     59 */
     60
     61typedef enum {
     62  OBJECTS_NO_CLASS             =  0,
     63  OBJECTS_RTEMS_TASKS          =  1,
     64  OBJECTS_RTEMS_TIMERS         =  2,
     65  OBJECTS_RTEMS_SEMAPHORES     =  3,
     66  OBJECTS_RTEMS_MESSAGE_QUEUES =  4,
     67  OBJECTS_RTEMS_PARTITIONS     =  5,
     68  OBJECTS_RTEMS_REGIONS        =  6,
     69  OBJECTS_RTEMS_PORTS          =  7,
     70  OBJECTS_RTEMS_PERIODS        =  8,
     71  OBJECTS_RTEMS_EXTENSIONS     =  9
     72} Objects_Classes;
    4073
    4174/*
     
    5790
    5891typedef struct {
    59   Chain_Node Node;
    60   Objects_Id id;
     92  Chain_Node    Node;
     93  Objects_Id    id;
     94  Objects_Name *name;
    6195}   Objects_Control;
    6296
     
    67101
    68102typedef struct {
     103  Objects_Classes   the_class;       /* Class of this object */
    69104  Objects_Id        minimum_id;      /* minimum valid id of this type */
    70105  Objects_Id        maximum_id;      /* maximum valid id of this type */
     
    89124 */
    90125
    91 #define OBJECTS_ID_OF_SELF 0
     126#define OBJECTS_ID_OF_SELF ((Objects_Id) 0)
    92127
    93128/*
     
    108143
    109144#define RTEMS_OBJECT_ID_INITIAL(node)   (_Objects_Build_id(      \
     145                                            OBJECTS_NO_CLASS, \
    110146                                            node, \
    111147                                            RTEMS_OBJECT_ID_INITIAL_INDEX))
    112 #define RTEMS_OBJECT_ID_FINAL           ((Objects_Id) ~0)
     148#define RTEMS_OBJECT_ID_FINAL           ((Objects_Id)~0)
    113149
    114150/*
     
    141177void _Objects_Initialize_information (
    142178  Objects_Information *information,
     179  Objects_Classes      the_class,
    143180  boolean              supports_global,
    144181  unsigned32           maximum,
     
    265302
    266303STATIC INLINE Objects_Id _Objects_Build_id(
    267   unsigned32 node,
    268   unsigned32 index
     304  Objects_Classes  the_class,
     305  unsigned32       node,
     306  unsigned32       index
     307);
     308
     309/*
     310 *  rtems_get_class
     311 *
     312 *  DESCRIPTION:
     313 *
     314 *  This function returns the class portion of the ID.
     315 *
     316 */
     317 
     318STATIC INLINE Objects_Classes rtems_get_class(
     319  Objects_Id id
    269320);
    270321
  • c/src/exec/score/include/rtems/score/thread.h

    rb06e68ef r95fbca1  
    134134typedef struct {
    135135  Objects_Control          Object;
    136   Objects_Name             name;
    137136  States_Control           current_state;
    138   rtems_task_priority         current_priority;
    139   rtems_task_priority         real_priority;
     137  rtems_task_priority      current_priority;
     138  rtems_task_priority      real_priority;
    140139  unsigned32               resource_count;
    141140  Thread_Wait_information  Wait;
    142141  Watchdog_Control         Timer;
    143   rtems_packet_prefix        *receive_packet;
     142  rtems_packet_prefix     *receive_packet;
    144143     /****************** end of common block ********************/
    145144  Chain_Node               Active;
     
    157156typedef struct {
    158157  Objects_Control           Object;
    159   Objects_Name              name;
    160158  States_Control            current_state;
    161159  rtems_task_priority       current_priority;
  • c/src/exec/score/inline/object.inl

    rb06e68ef r95fbca1  
    5858
    5959STATIC INLINE Objects_Id _Objects_Build_id(
    60   unsigned32 node,
    61   unsigned32 index
    62 )
    63 {
    64   return ( (node << 16) | index );
    65 }
     60  Objects_Classes  the_class,
     61  unsigned32       node,
     62  unsigned32       index
     63)
     64{
     65  return ( (the_class << OBJECTS_CLASS_START_BIT) |
     66           (node << OBJECTS_NODE_START_BIT)       |
     67           (index << OBJECTS_INDEX_START_BIT) );
     68}
     69
     70/*PAGE
     71 *
     72 *  rtems_get_class
     73 */
     74 
     75STATIC INLINE Objects_Classes rtems_get_class(
     76  Objects_Id id
     77)
     78{
     79  return (Objects_Classes)
     80    ((id >> OBJECTS_CLASS_START_BIT) & OBJECTS_CLASS_VALID_BITS);
     81}
     82 
    6683
    6784/*PAGE
     
    7592)
    7693{
    77   return (id >> 16);
     94  return (id >> OBJECTS_NODE_START_BIT) & OBJECTS_NODE_VALID_BITS;
    7895}
    7996
     
    88105)
    89106{
    90   return (id &0xFFFF);
     107  return (id >> OBJECTS_INDEX_START_BIT) & OBJECTS_INDEX_VALID_BITS;
    91108}
    92109
     
    175192  information->local_table[ index ] = the_object;
    176193  information->name_table[ index ]  = name;
     194  the_object->name = &information->name_table[ index ];
    177195}
    178196
     
    193211  information->local_table[ index ] = NULL;
    194212  information->name_table[ index ]  = 0;
     213  the_object->name = 0;
    195214}
    196215
  • c/src/exec/score/inline/rtems/score/object.inl

    rb06e68ef r95fbca1  
    5858
    5959STATIC INLINE Objects_Id _Objects_Build_id(
    60   unsigned32 node,
    61   unsigned32 index
    62 )
    63 {
    64   return ( (node << 16) | index );
    65 }
     60  Objects_Classes  the_class,
     61  unsigned32       node,
     62  unsigned32       index
     63)
     64{
     65  return ( (the_class << OBJECTS_CLASS_START_BIT) |
     66           (node << OBJECTS_NODE_START_BIT)       |
     67           (index << OBJECTS_INDEX_START_BIT) );
     68}
     69
     70/*PAGE
     71 *
     72 *  rtems_get_class
     73 */
     74 
     75STATIC INLINE Objects_Classes rtems_get_class(
     76  Objects_Id id
     77)
     78{
     79  return (Objects_Classes)
     80    ((id >> OBJECTS_CLASS_START_BIT) & OBJECTS_CLASS_VALID_BITS);
     81}
     82 
    6683
    6784/*PAGE
     
    7592)
    7693{
    77   return (id >> 16);
     94  return (id >> OBJECTS_NODE_START_BIT) & OBJECTS_NODE_VALID_BITS;
    7895}
    7996
     
    88105)
    89106{
    90   return (id &0xFFFF);
     107  return (id >> OBJECTS_INDEX_START_BIT) & OBJECTS_INDEX_VALID_BITS;
    91108}
    92109
     
    175192  information->local_table[ index ] = the_object;
    176193  information->name_table[ index ]  = name;
     194  the_object->name = &information->name_table[ index ];
    177195}
    178196
     
    193211  information->local_table[ index ] = NULL;
    194212  information->name_table[ index ]  = 0;
     213  the_object->name = 0;
    195214}
    196215
  • c/src/exec/score/macros/object.inl

    rb06e68ef r95fbca1  
    4646 */
    4747
    48 #define _Objects_Build_id( _node, _index ) \
    49   ( ((_node) << 16) | (_index) )
     48#define _Objects_Build_id( _the_class, _node, _index ) \
     49  ( ((_the_class) << OBJECTS_CLASS_START_BIT) | \
     50    ((_node) << OBJECTS_NODE_START_BIT)       | \
     51    ((_index) << OBJECTS_INDEX_START_BIT) )
     52
     53/*PAGE
     54 *
     55 *  rtems_get_class
     56 */
     57 
     58#define rtems_get_class( _id ) \
     59  (Objects_Classes) \
     60    (((_id) >> OBJECTS_CLASS_START_BIT) & OBJECTS_CLASS_VALID_BITS)
    5061
    5162/*PAGE
     
    5667
    5768#define rtems_get_node( _id ) \
    58   ((_id) >> 16)
     69  (((_id) >> OBJECTS_NODE_START_BIT) & OBJECTS_NODE_VALID_BITS)
    5970
    6071/*PAGE
     
    6576
    6677#define rtems_get_index( _id ) \
    67   ((_id) & 0xFFFF)
     78  (((_id) >> OBJECTS_INDEX_START_BIT) & OBJECTS_INDEX_VALID_BITS)
    6879
    6980/*PAGE
     
    125136    (_information)->local_table[ _index ] = (_the_object); \
    126137    (_information)->name_table[ _index ]  = (_name); \
     138    (_the_object)->name = &(_information)->name_table[ _index ]; \
    127139  }
    128140
     
    140152    (_information)->local_table[ _index ] = NULL; \
    141153    (_information)->name_table[ _index ]  = 0; \
     154    (_the_object)->name = 0; \
    142155  }
    143156
  • c/src/exec/score/macros/rtems/score/object.inl

    rb06e68ef r95fbca1  
    4646 */
    4747
    48 #define _Objects_Build_id( _node, _index ) \
    49   ( ((_node) << 16) | (_index) )
     48#define _Objects_Build_id( _the_class, _node, _index ) \
     49  ( ((_the_class) << OBJECTS_CLASS_START_BIT) | \
     50    ((_node) << OBJECTS_NODE_START_BIT)       | \
     51    ((_index) << OBJECTS_INDEX_START_BIT) )
     52
     53/*PAGE
     54 *
     55 *  rtems_get_class
     56 */
     57 
     58#define rtems_get_class( _id ) \
     59  (Objects_Classes) \
     60    (((_id) >> OBJECTS_CLASS_START_BIT) & OBJECTS_CLASS_VALID_BITS)
    5061
    5162/*PAGE
     
    5667
    5768#define rtems_get_node( _id ) \
    58   ((_id) >> 16)
     69  (((_id) >> OBJECTS_NODE_START_BIT) & OBJECTS_NODE_VALID_BITS)
    5970
    6071/*PAGE
     
    6576
    6677#define rtems_get_index( _id ) \
    67   ((_id) & 0xFFFF)
     78  (((_id) >> OBJECTS_INDEX_START_BIT) & OBJECTS_INDEX_VALID_BITS)
    6879
    6980/*PAGE
     
    125136    (_information)->local_table[ _index ] = (_the_object); \
    126137    (_information)->name_table[ _index ]  = (_name); \
     138    (_the_object)->name = &(_information)->name_table[ _index ]; \
    127139  }
    128140
     
    140152    (_information)->local_table[ _index ] = NULL; \
    141153    (_information)->name_table[ _index ]  = 0; \
     154    (_the_object)->name = 0; \
    142155  }
    143156
  • cpukit/score/include/rtems/score/object.h

    rb06e68ef r95fbca1  
    3434/*
    3535 *  The following type defines the control block used to manage
    36  *  object IDs.
     36 *  object IDs.  The format is as follows (0=LSB):
     37 *
     38 *     Bits  0 .. 15    = index
     39 *     Bits 16 .. 25    = node
     40 *     Bits 26 .. 31    = class
    3741 */
    3842
    3943typedef unsigned32 Objects_Id;
     44
     45#define OBJECTS_INDEX_START_BIT  0
     46#define OBJECTS_NODE_START_BIT  16
     47#define OBJECTS_CLASS_START_BIT 26
     48
     49#define OBJECTS_INDEX_MASK      0x0000ffff
     50#define OBJECTS_NODE_MASK       0x03ff0000
     51#define OBJECTS_CLASS_MASK      0xfc000000
     52
     53#define OBJECTS_INDEX_VALID_BITS  0x0000ffff
     54#define OBJECTS_NODE_VALID_BITS   0x000003ff
     55#define OBJECTS_CLASS_VALID_BITS  0x000000cf
     56
     57/*
     58 *  This enumerated type is used in the class field of the object ID.
     59 */
     60
     61typedef enum {
     62  OBJECTS_NO_CLASS             =  0,
     63  OBJECTS_RTEMS_TASKS          =  1,
     64  OBJECTS_RTEMS_TIMERS         =  2,
     65  OBJECTS_RTEMS_SEMAPHORES     =  3,
     66  OBJECTS_RTEMS_MESSAGE_QUEUES =  4,
     67  OBJECTS_RTEMS_PARTITIONS     =  5,
     68  OBJECTS_RTEMS_REGIONS        =  6,
     69  OBJECTS_RTEMS_PORTS          =  7,
     70  OBJECTS_RTEMS_PERIODS        =  8,
     71  OBJECTS_RTEMS_EXTENSIONS     =  9
     72} Objects_Classes;
    4073
    4174/*
     
    5790
    5891typedef struct {
    59   Chain_Node Node;
    60   Objects_Id id;
     92  Chain_Node    Node;
     93  Objects_Id    id;
     94  Objects_Name *name;
    6195}   Objects_Control;
    6296
     
    67101
    68102typedef struct {
     103  Objects_Classes   the_class;       /* Class of this object */
    69104  Objects_Id        minimum_id;      /* minimum valid id of this type */
    70105  Objects_Id        maximum_id;      /* maximum valid id of this type */
     
    89124 */
    90125
    91 #define OBJECTS_ID_OF_SELF 0
     126#define OBJECTS_ID_OF_SELF ((Objects_Id) 0)
    92127
    93128/*
     
    108143
    109144#define RTEMS_OBJECT_ID_INITIAL(node)   (_Objects_Build_id(      \
     145                                            OBJECTS_NO_CLASS, \
    110146                                            node, \
    111147                                            RTEMS_OBJECT_ID_INITIAL_INDEX))
    112 #define RTEMS_OBJECT_ID_FINAL           ((Objects_Id) ~0)
     148#define RTEMS_OBJECT_ID_FINAL           ((Objects_Id)~0)
    113149
    114150/*
     
    141177void _Objects_Initialize_information (
    142178  Objects_Information *information,
     179  Objects_Classes      the_class,
    143180  boolean              supports_global,
    144181  unsigned32           maximum,
     
    265302
    266303STATIC INLINE Objects_Id _Objects_Build_id(
    267   unsigned32 node,
    268   unsigned32 index
     304  Objects_Classes  the_class,
     305  unsigned32       node,
     306  unsigned32       index
     307);
     308
     309/*
     310 *  rtems_get_class
     311 *
     312 *  DESCRIPTION:
     313 *
     314 *  This function returns the class portion of the ID.
     315 *
     316 */
     317 
     318STATIC INLINE Objects_Classes rtems_get_class(
     319  Objects_Id id
    269320);
    270321
  • cpukit/score/include/rtems/score/thread.h

    rb06e68ef r95fbca1  
    134134typedef struct {
    135135  Objects_Control          Object;
    136   Objects_Name             name;
    137136  States_Control           current_state;
    138   rtems_task_priority         current_priority;
    139   rtems_task_priority         real_priority;
     137  rtems_task_priority      current_priority;
     138  rtems_task_priority      real_priority;
    140139  unsigned32               resource_count;
    141140  Thread_Wait_information  Wait;
    142141  Watchdog_Control         Timer;
    143   rtems_packet_prefix        *receive_packet;
     142  rtems_packet_prefix     *receive_packet;
    144143     /****************** end of common block ********************/
    145144  Chain_Node               Active;
     
    157156typedef struct {
    158157  Objects_Control           Object;
    159   Objects_Name              name;
    160158  States_Control            current_state;
    161159  rtems_task_priority       current_priority;
  • cpukit/score/inline/rtems/score/object.inl

    rb06e68ef r95fbca1  
    5858
    5959STATIC INLINE Objects_Id _Objects_Build_id(
    60   unsigned32 node,
    61   unsigned32 index
    62 )
    63 {
    64   return ( (node << 16) | index );
    65 }
     60  Objects_Classes  the_class,
     61  unsigned32       node,
     62  unsigned32       index
     63)
     64{
     65  return ( (the_class << OBJECTS_CLASS_START_BIT) |
     66           (node << OBJECTS_NODE_START_BIT)       |
     67           (index << OBJECTS_INDEX_START_BIT) );
     68}
     69
     70/*PAGE
     71 *
     72 *  rtems_get_class
     73 */
     74 
     75STATIC INLINE Objects_Classes rtems_get_class(
     76  Objects_Id id
     77)
     78{
     79  return (Objects_Classes)
     80    ((id >> OBJECTS_CLASS_START_BIT) & OBJECTS_CLASS_VALID_BITS);
     81}
     82 
    6683
    6784/*PAGE
     
    7592)
    7693{
    77   return (id >> 16);
     94  return (id >> OBJECTS_NODE_START_BIT) & OBJECTS_NODE_VALID_BITS;
    7895}
    7996
     
    88105)
    89106{
    90   return (id &0xFFFF);
     107  return (id >> OBJECTS_INDEX_START_BIT) & OBJECTS_INDEX_VALID_BITS;
    91108}
    92109
     
    175192  information->local_table[ index ] = the_object;
    176193  information->name_table[ index ]  = name;
     194  the_object->name = &information->name_table[ index ];
    177195}
    178196
     
    193211  information->local_table[ index ] = NULL;
    194212  information->name_table[ index ]  = 0;
     213  the_object->name = 0;
    195214}
    196215
  • cpukit/score/macros/rtems/score/object.inl

    rb06e68ef r95fbca1  
    4646 */
    4747
    48 #define _Objects_Build_id( _node, _index ) \
    49   ( ((_node) << 16) | (_index) )
     48#define _Objects_Build_id( _the_class, _node, _index ) \
     49  ( ((_the_class) << OBJECTS_CLASS_START_BIT) | \
     50    ((_node) << OBJECTS_NODE_START_BIT)       | \
     51    ((_index) << OBJECTS_INDEX_START_BIT) )
     52
     53/*PAGE
     54 *
     55 *  rtems_get_class
     56 */
     57 
     58#define rtems_get_class( _id ) \
     59  (Objects_Classes) \
     60    (((_id) >> OBJECTS_CLASS_START_BIT) & OBJECTS_CLASS_VALID_BITS)
    5061
    5162/*PAGE
     
    5667
    5768#define rtems_get_node( _id ) \
    58   ((_id) >> 16)
     69  (((_id) >> OBJECTS_NODE_START_BIT) & OBJECTS_NODE_VALID_BITS)
    5970
    6071/*PAGE
     
    6576
    6677#define rtems_get_index( _id ) \
    67   ((_id) & 0xFFFF)
     78  (((_id) >> OBJECTS_INDEX_START_BIT) & OBJECTS_INDEX_VALID_BITS)
    6879
    6980/*PAGE
     
    125136    (_information)->local_table[ _index ] = (_the_object); \
    126137    (_information)->name_table[ _index ]  = (_name); \
     138    (_the_object)->name = &(_information)->name_table[ _index ]; \
    127139  }
    128140
     
    140152    (_information)->local_table[ _index ] = NULL; \
    141153    (_information)->name_table[ _index ]  = 0; \
     154    (_the_object)->name = 0; \
    142155  }
    143156
Note: See TracChangeset for help on using the changeset viewer.