Changeset 937


Ignore:
Timestamp:
Jan 7, 2004, 5:37:15 PM (22 years ago)
Author:
bird
Message:

Removed bad truncation of 'SST_tag2's.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/src/emxomf/stabshll.c

    • Property cvs2svn:cvs-rev changed from 1.28 to 1.29
    r936 r937  
    6262#define SST_changseg    0x11    /* Change default segment */
    6363#define SST_tag         0x16    /* Structure, union, enum tags */
    64 #define SST_class       0x19    /* C++ class */
     64#define SST_tag2        0x19    /* Extended tag for long names (C++ class). */
    6565#define SST_memfunc     0x1a    /* C++ member function */
    6666#define SST_CPPproc     0x1d    /* C++ function */
     
    37123712
    37133713/* Create a type tag for HLL type index INDEX.  TYPE is either SST_tag
    3714    (for structures and unions) or SST_class (for classes).  NAME is
     3714   (for structures and unions) or SST_tag2 (for classes).  NAME is
    37153715   the name of the structure, union or class. */
    37163716
     
    37183718{
    37193719  if (name != NULL)
    3720     { /* kso #456 2003-06-11: Templates can make very long names.
    3721          Clip them and let the debugger burn on them if it doesn't like it. */
    3722       char  achName[256];
    3723       int   cch = strlen(name);
    3724       if (cch > 250)
    3725         {
    3726           warning ("type_tag: name is longer than 250 bytes (%d).", cch);
    3727           cch = 250;
    3728         }
    3729       memcpy (achName, name, cch);
    3730       achName[cch] = '\0';
    3731 
     3720    {
    37323721      sst_start (type);
    37333722      buffer_word (&sst, index);
    3734       if (type == SST_class)
    3735         buffer_enc (&sst, achName);
     3723      if (type == SST_tag2)
     3724        buffer_enc (&sst, name);
    37363725      else
    3737         buffer_nstr (&sst, achName);
    3738       sst_end ();
     3726        {
     3727          char  achName[256];
     3728          int   cch = strlen(name);
     3729          if (cch > 250)
     3730            {
     3731              warning ("type_tag: name is longer than 250 bytes (%d).", cch);
     3732              cch = 250;
     3733            }
     3734          memcpy (achName, name, cch);
     3735          achName[cch] = '\0';
     3736
     3737          buffer_nstr (&sst, achName);
     3738        }
     3739        sst_end ();
    37393740    }
    37403741}
     
    39263927          break;
    39273928        case ty_class:
    3928           type_tag (SST_class, t1->index, t1->d.class.name);
     3929          type_tag (SST_tag2, t1->index, t1->d.class.name);
    39293930          break;
    39303931        case ty_enu:
Note: See TracChangeset for help on using the changeset viewer.