OSDN Git Service

(LibGoblin)
authorKoine Yuusuke(koinec) <koinec@users.osdn.me>
Tue, 11 Jun 2019 20:14:35 +0000 (05:14 +0900)
committerKoine Yuusuke(koinec) <koinec@users.osdn.me>
Tue, 11 Jun 2019 20:14:35 +0000 (05:14 +0900)
  * WorkBackup

libgoblin/drd64_libgoblin_binfo.c
libgoblin/drd64_libgoblin_type.h

index 25a66c1..dd762af 100644 (file)
@@ -71,6 +71,11 @@ void
 {
        assert( NULL != p_binfo );
 
+       if( NULL != p_binfo->dwarf.p_infoval )  {
+               free( p_binfo->dwarf.p_infoval );
+               p_binfo->dwarf.p_infoval        = NULL;
+       }
+
        memset( p_binfo, 0x00, sizeof( LibGoblin_BinaryInfo ) );
 
 /*
@@ -549,7 +554,9 @@ LibGoblin_BinaryInfo *
 
        assert( NULL != p_binfo_now );
 
+       p_binfo_now->dwarf.p_infoval    = NULL;
        BinaryInfo_ClearBinInfo( p_binfo_now );
+
        p_binfo_now->i_id                       = i_id_now;
        //p_binfo_now->b_phase          = LIBGOBLIN_BINFO_PHASE_ALLOCED;
        p_binfo_now->i_pginfo           = ((NULL == p_pginfo) ? -1 : p_pginfo->i_id );
@@ -640,6 +647,7 @@ int
 
        for( i_cnt = 0; i_cnt < LIBGOBLIN_BINFO_UNITS; i_cnt++ )        {
                p_binfo = BINFO(i_cnt);
+               p_binfo->dwarf.p_infoval        = NULL;
                BinaryInfo_ClearBinInfo( p_binfo );
        }
 
index 8eef26b..f5b04c4 100644 (file)
@@ -84,6 +84,13 @@ typedef struct       {
 
 /*=====================================================================*/
 typedef struct {
+       DWord                           dw_attribute;
+       LibGoblin_DWARF_DIEValue        *p_val;
+} LibGoblin_DWARF_Attribute;
+
+
+/*=====================================================================*/
+typedef struct {
        Byte    *pb_sechdr;
        Byte    *pb_data;               // FileLocation (Offset)
        Word    w_index;
@@ -392,6 +399,11 @@ typedef struct     {
        /* Binary-Format Depending Info. (ELF)*/
        //void          *p_format;
 
+       struct  {
+               int                                                     i_maxvals;
+               LibGoblin_DWARF_DIEValue        *p_infoval;
+       } dwarf;
+
 
 }      LibGoblin_BinaryInfo;