Ticket #5285: libs_libmythtv-uninit-defects-ticket-5285.patch

File libs_libmythtv-uninit-defects-ticket-5285.patch, 19.5 KB (added by Erik Hovland <erik@…>, 16 years ago)

Latest version of the uninitialized patch

  • libs/libmythtv/RingBuffer.cpp

    This patch only deals with initializing values properly.
    
    From: Erik Hovland <erik@hovland.org>
    
    
    ---
    
     libs/libmythtv/RingBuffer.cpp         |    2 +
     libs/libmythtv/ThreadedFileWriter.cpp |    4 +-
     libs/libmythtv/cc708window.cpp        |    2 +
     libs/libmythtv/cc708window.h          |   10 ++++++
     libs/libmythtv/dsmccbiop.h            |   22 ++++++++++---
     libs/libmythtv/dvbdev/dvbci.cpp       |    7 ++++
     libs/libmythtv/fifowriter.cpp         |    1 +
     libs/libmythtv/frequencytables.h      |    4 +-
     libs/libmythtv/infostructs.h          |    3 +-
     libs/libmythtv/mhi.cpp                |    2 +
     libs/libmythtv/mhi.h                  |    6 ++--
     libs/libmythtv/mpeg/tspacket.h        |    2 +
     libs/libmythtv/osdtypeteletext.cpp    |    2 +
     libs/libmythtv/osdxvmc.cpp            |   12 +++++--
     libs/libmythtv/osdxvmc.h              |    2 -
     libs/libmythtv/programdata.h          |    4 ++
     libs/libmythtv/programinfo.cpp        |    1 +
     libs/libmythtv/signalmonitorvalue.h   |    5 ++-
     libs/libmythtv/ttfont.cpp             |   54 +++++++++++++--------------------
     libs/libmythtv/ttfont.h               |    4 ++
     libs/libmythtv/tv_play.h              |    5 ++-
     libs/libmythtv/vbitext/vbi.c          |    2 +
     libs/libmythtv/videooutbase.cpp       |    1 +
     libs/libmythtv/vsync.cpp              |    9 +++---
     24 files changed, 98 insertions(+), 68 deletions(-)
    
    diff --git a/libs/libmythtv/RingBuffer.cpp b/libs/libmythtv/RingBuffer.cpp
    index 8a7c311..511c126 100644
    a b void RingBuffer::UpdatePlaySpeed(float play_speed) 
    531531 */
    532532void RingBuffer::CalcReadAheadThresh(void)
    533533{
    534     uint estbitrate;
     534    uint estbitrate = 0;
    535535
    536536    pthread_rwlock_wrlock(&rwlock);
    537537    wantseek       = false;
  • libs/libmythtv/ThreadedFileWriter.cpp

    diff --git a/libs/libmythtv/ThreadedFileWriter.cpp b/libs/libmythtv/ThreadedFileWriter.cpp
    index 7cf289b..6d1904f 100644
    a b ThreadedFileWriter::ThreadedFileWriter(const QString &fname, 
    124124    mode(pmode),                         fd(-1),
    125125    // state
    126126    no_writes(false),                    flush(false),
    127     in_dtor(false),                      ignore_writes(false),
    128     tfw_min_write_size(0),
     127    write_is_blocked(false),             in_dtor(false),
     128    ignore_writes(false),                tfw_min_write_size(0),
    129129    // buffer position state
    130130    rpos(0),                             wpos(0),
    131131    written(0),
  • libs/libmythtv/cc708window.cpp

    diff --git a/libs/libmythtv/cc708window.cpp b/libs/libmythtv/cc708window.cpp
    index 25af2b7..c3a2064 100644
    a b const uint k708AttrOpacityTransparent = 3; 
    101101
    102102CC708Window::CC708Window()
    103103    : priority(0),              visible(0),
    104       anchor_point(0),
     104      anchor_point(0),          relative_pos(0),
    105105      anchor_vertical(0),       anchor_horizontal(0),
    106106      row_count(0),             column_count(0),
    107107      row_lock(0),              column_lock(0),
  • libs/libmythtv/cc708window.h

    diff --git a/libs/libmythtv/cc708window.h b/libs/libmythtv/cc708window.h
    index fcf0f23..ba191bb 100644
    a b using namespace std; 
    1414class CC708CharacterAttribute
    1515{
    1616  public:
     17    CC708CharacterAttribute()
     18        : pen_size(0),   offset(0)
     19        , text_tag(0),   font_tag(0)
     20        , edge_type(0),  underline(0)
     21        , italics(0),    fg_color(0)
     22        , fg_opacity(0), bg_color(0)
     23        , bg_opacity(0), edge_color(0) {}
    1724    uint pen_size;
    1825    uint offset;
    1926    uint text_tag;
    class CC708CharacterAttribute 
    6067class CC708Pen
    6168{
    6269  public:
     70    CC708Pen() : row(0), column(0) {}
    6371    void SetPenStyle(uint style);
    6472    void SetAttributes(int pen_size,
    6573                       int offset,       int text_tag,  int font_tag,
    class CC708Pen 
    7381        attr.underline = underline;
    7482        attr.italics   = italics;
    7583    }
    76   public:
     84
    7785    CC708CharacterAttribute attr;
    7886
    7987    uint row;
  • libs/libmythtv/dsmccbiop.h

    diff --git a/libs/libmythtv/dsmccbiop.h b/libs/libmythtv/dsmccbiop.h
    index 25b15b4..c1a136f 100644
    a b class BiopName 
    4646class BiopTap
    4747{
    4848  public:
    49     BiopTap() { selector_data = NULL; }
     49    BiopTap() :
     50        id(0),               use(0),
     51        assoc_tag(0),        selector_len(0),
     52        selector_data(NULL) { }
    5053    ~BiopTap();
    5154
    5255    int Process(const unsigned char*);
    class BiopConnbinder 
    7376class BiopObjLocation
    7477{
    7578  public:
    76     BiopObjLocation() { }
     79    BiopObjLocation() :
     80        component_tag(0), component_data_len(0),
     81        version_major(0), version_minor(0) { }
    7782    ~BiopObjLocation() { }
    7883
    7984    int Process(const unsigned char*);
    class ProfileBody 
    96101class ProfileBodyFull: public ProfileBody
    97102{
    98103  public:
    99     ProfileBodyFull() { }
     104    ProfileBodyFull() :
     105        data_len(0), byte_order(0),
     106        lite_components_count(0) { }
    100107    virtual ~ProfileBodyFull() { }
    101108    virtual int Process(const unsigned char *);
    102109    virtual DSMCCCacheReference *GetReference()
    class BiopIor 
    154161class BiopBinding
    155162{
    156163  public:
    157     BiopBinding() : m_objinfo_len(0), m_objinfo(0) {}
     164    BiopBinding() : m_binding_type(0), m_objinfo_len(0), m_objinfo(0) {}
    158165    ~BiopBinding();
    159166
    160167    int Process(const unsigned char *data);
    class ObjCarousel; 
    171178class BiopMessage
    172179{
    173180  public:
    174     BiopMessage() : m_objinfo(NULL), m_objkind(NULL) {}
     181    BiopMessage() :
     182        m_version_major(0), m_version_minor(0),
     183        m_message_size(0),  m_objkind_len(0),
     184        m_objinfo_len(0),  m_objinfo(NULL),
     185        m_objkind(NULL) {}
    175186    ~BiopMessage();
     187
    176188    bool Process(DSMCCCacheModuleData *cachep, DSMCCCache *cache,
    177189                 unsigned char *data, unsigned long *curp);
    178190
  • libs/libmythtv/dvbdev/dvbci.cpp

    diff --git a/libs/libmythtv/dvbdev/dvbci.cpp b/libs/libmythtv/dvbdev/dvbci.cpp
    index 0ab0d9f..b224700 100644
    a b private: 
    233233  uint8_t data[MAX_TPDU_SIZE];
    234234  const uint8_t *GetData(const uint8_t *Data, int &Length);
    235235public:
    236   cTPDU(void) { size = 0; }
     236  cTPDU(void) { size = 0; memset(data, 0, sizeof(uint8_t) * MAX_TPDU_SIZE); }
    237237  cTPDU(uint8_t Slot, uint8_t Tcid, uint8_t Tag, int Length = 0, const uint8_t *Data = NULL);
    238238  uint8_t Slot(void) { return data[0]; }
    239239  uint8_t Tcid(void) { return data[1]; }
    cCiApplicationInformation::cCiApplicationInformation(int SessionId, cCiTransport 
    904904  dbgprotocol("New Application Information (session id %d)\n", SessionId);
    905905  state = 0;
    906906  creationTime = time(NULL);
     907  applicationType = 0;
     908  applicationManufacturer = 0;
     909  manufacturerCode = 0;
    907910  menuString = NULL;
    908911}
    909912
    cCiMenu::cCiMenu(cCiMMI *MMI, bool Selectable) 
    13261329  selectable = Selectable;
    13271330  titleText = subTitleText = bottomText = NULL;
    13281331  numEntries = 0;
     1332  for (int i = 0; i < MAX_CIMENU_ENTRIES; i++)
     1333      entries[i] = NULL;
    13291334}
    13301335
    13311336cCiMenu::~cCiMenu()
  • libs/libmythtv/fifowriter.cpp

    diff --git a/libs/libmythtv/fifowriter.cpp b/libs/libmythtv/fifowriter.cpp
    index 3f4a518..15addc2 100644
    a b FIFOWriter::FIFOWriter(int count, bool sync) 
    2626{
    2727    num_fifos = count;
    2828    usesync = sync;
     29    cur_id = -1;
    2930    maxblksize = new long[count];
    3031    killwr = new int[count];
    3132    fbcount = new int[count];
  • libs/libmythtv/frequencytables.h

    diff --git a/libs/libmythtv/frequencytables.h b/libs/libmythtv/frequencytables.h
    index 6d74f43..83ff432 100644
    a b class FrequencyTable 
    7474          inversion(_inversion),           bandwidth(_bandwidth),
    7575          coderate_hp(_coderate_hp),       coderate_lp(_coderate_lp),
    7676          constellation(_constellation),   trans_mode(_trans_mode),
    77           guard_interval(_guard_interval), hierarchy(_hierarchy) { ; }
     77          guard_interval(_guard_interval), hierarchy(_hierarchy) { }
    7878
    79     virtual ~FrequencyTable() { ; }
     79    virtual ~FrequencyTable() { }
    8080
    8181    // Common Stuff
    8282    QString           name_format;    ///< pretty name format
  • libs/libmythtv/infostructs.h

    diff --git a/libs/libmythtv/infostructs.h b/libs/libmythtv/infostructs.h
    index 025ae44..9fa4dc2 100644
    a b  
    1313class MPUBLIC ChannelInfo
    1414{
    1515 public:
    16     ChannelInfo() {}
    17    ~ChannelInfo() {}
     16    ChannelInfo() : chanid(-1), sourceid(-1), favid(-1), iconload(false) {}
    1817
    1918    void LoadChannelIcon(int width, int height = 0);
    2019    QString Text(QString format);
  • libs/libmythtv/mhi.cpp

    diff --git a/libs/libmythtv/mhi.cpp b/libs/libmythtv/mhi.cpp
    index f7d22fa..fb41e91 100644
    a b MHIText::MHIText(MHIContext *parent): m_parent(parent) 
    810810    m_fontsize = 12;
    811811    m_fontItalic = false;
    812812    m_fontBold = false;
     813    m_width = 0;
     814    m_height = 0;
    813815}
    814816
    815817void MHIText::Draw(int x, int y)
  • libs/libmythtv/mhi.h

    diff --git a/libs/libmythtv/mhi.h b/libs/libmythtv/mhi.h
    index c77426a..abe2677 100644
    a b class MHIDLA : public MHDLADisplay 
    257257  public:
    258258    MHIDLA(MHIContext *parent, bool isBoxed,
    259259           MHRgba lineColour, MHRgba fillColour)
    260         : m_parent(parent), m_boxed(isBoxed),
    261           m_boxLineColour(lineColour), m_boxFillColour(fillColour) {}
     260        : m_parent(parent),            m_width(0),
     261          m_height(0),                 m_boxed(isBoxed),
     262          m_boxLineColour(lineColour), m_boxFillColour(fillColour),
     263          m_lineWidth(0) {}
    262264    /// Draw the completed drawing onto the display.
    263265    virtual void Draw(int x, int y);
    264266    /// Set the box size.  Also clears the drawing.
  • libs/libmythtv/mpeg/tspacket.h

    diff --git a/libs/libmythtv/mpeg/tspacket.h b/libs/libmythtv/mpeg/tspacket.h
    index 7720d4d..b551181 100644
    a b class TSPacket : public TSHeader 
    127127{
    128128    friend class PESPacket;
    129129  public:
    130     TSPacket() : TSHeader() {}
     130    TSPacket() : TSHeader() { memset(_tspayload, 0, sizeof(char) * 184); }
    131131    static TSPacket* CreatePayloadOnlyPacket()
    132132    {
    133133        TSPacket *pkt = new TSPacket();
  • libs/libmythtv/osdtypeteletext.cpp

    diff --git a/libs/libmythtv/osdtypeteletext.cpp b/libs/libmythtv/osdtypeteletext.cpp
    index a3d4e23..3bdbbf8 100644
    a b void OSDTypeTeletext::AddTeletextData(int magazine, int row, 
    210210{
    211211    OSDUpdateLocker locker(&m_lock, this);
    212212
    213     int b1, b2, b3, err;
     213    int b1, b2, b3, err = 0;
    214214
    215215    if (magazine < 1 || magazine > 8)
    216216        return;
  • libs/libmythtv/osdxvmc.cpp

    diff --git a/libs/libmythtv/osdxvmc.cpp b/libs/libmythtv/osdxvmc.cpp
    index ad77e97..5c094ed 100644
    a b static inline xvmc_render_state_t *GetRender(VideoFrame *frame); 
    2323
    2424XvMCOSD::XvMCOSD(Display *disp, int port, int surface_type_id,
    2525                 int xvmc_surf_flags)
    26     : XJ_disp(disp), XJ_width(0), XJ_height(0),
    27       xv_port(port), osd_palette(NULL), osd_xv_image(NULL),
    28       osd_subpict_mode(NO_SUBPICTURE), osd_subpict_clear_color(0),
    29       osd_subpict_alloc(false)
     26    : XJ_disp(disp),                   XJ_width(0)
     27    , XJ_height(0),                    xv_port(port)
     28    , osd_palette(NULL),               osd_xv_image(NULL)
     29    , osd_subpict_mode(NO_SUBPICTURE), osd_subpict_clear_color(0)
     30    , osd_subpict_alloc(false),        revision(-1)
    3031{
    3132    bzero(&osd_subpict, sizeof(osd_subpict));
     33    bzero(&XJ_osd_shm_info, sizeof(XJ_osd_shm_info));
     34    bzero(&osd_subpict_info, sizeof(osd_subpict_info));
     35    bzero(&tmpframe, sizeof(tmpframe));
    3236    // subpicture init
    3337    int num = 0;
    3438    XvImageFormatValues *xvfmv = NULL;
  • libs/libmythtv/osdxvmc.h

    diff --git a/libs/libmythtv/osdxvmc.h b/libs/libmythtv/osdxvmc.h
    index 64f3f96..ce15136 100644
    a b  
    1616class XvMCOSD
    1717{
    1818  public:
    19     XvMCOSD() { ; } // dummy
    20 
    2119    XvMCOSD(Display *XJ_disp, int xv_port,
    2220            int surface_type_id, int xvmc_surf_flags);
    2321
  • libs/libmythtv/programdata.h

    diff --git a/libs/libmythtv/programdata.h b/libs/libmythtv/programdata.h
    index b8db0ee..83377fb 100644
    a b struct ProgCredit 
    2525class ProgInfo
    2626{
    2727  public:
    28     ProgInfo() { }
     28    ProgInfo() :
     29        previouslyshown(false), audioproperties(-1),
     30        videoproperties(-1),    subtitletype(-1) { }
    2931    ProgInfo(const ProgInfo &other) { channel = other.channel;
    3032                                      startts = other.startts;
    3133                                      endts = other.endts;
  • libs/libmythtv/programinfo.cpp

    diff --git a/libs/libmythtv/programinfo.cpp b/libs/libmythtv/programinfo.cpp
    index e5ec6dc..6381cdf 100644
    a b ProgramInfo::ProgramInfo(void) : 
    114114    recstatus = rsUnknown;
    115115    oldrecstatus = rsUnknown;
    116116    savedrecstatus = rsUnknown;
     117    prefinput = 0;
    117118    recpriority2 = 0;
    118119    reactivate = false;
    119120    recordid = 0;
  • libs/libmythtv/signalmonitorvalue.h

    diff --git a/libs/libmythtv/signalmonitorvalue.h b/libs/libmythtv/signalmonitorvalue.h
    index 0c0c423..90766ba 100644
    a b class SignalMonitorValue 
    1212    SignalMonitorValue(const QString& _name, const QString& _noSpaceName,
    1313                       int _threshold, bool _high_threshold,
    1414                       int _min, int _max, int _timeout);
    15     virtual ~SignalMonitorValue() { ; }
    1615
    1716    // // // // // // // // // // // // // // // // // // // // // // // //
    1817    // Gets  // // // // // // // // // // // // // // // // // // // // //
    class SignalMonitorValue 
    121120            .arg( (IsGood()) ? "Is" : "Is NOT" );
    122121    }
    123122  private:
    124     SignalMonitorValue() {}
     123    SignalMonitorValue()
     124        : value(-1), threshold(-1), minval(-1), maxval(-1), timeout(-1),
     125          high_threshold(true), set(false) { }
    125126    SignalMonitorValue(const QString& _name, const QString& _noSpaceName,
    126127                       int _value, int _threshold, bool _high_threshold,
    127128                       int _min, int _max, int _timeout, bool _set);
  • libs/libmythtv/ttfont.cpp

    diff --git a/libs/libmythtv/ttfont.cpp b/libs/libmythtv/ttfont.cpp
    index 32b9654..eedbf30 100644
    a b using namespace std; 
    3131#include "osdtypes.h"
    3232#include "osdsurface.h"
    3333
    34 static int          have_library = 0;
    35 static FT_Library   the_library;
     34bool TTFFont::have_library = false;
     35FT_Library TTFFont::the_library;
    3636
    3737#define FT_VALID(handle) ((handle) && (handle)->clazz != NULL)
    3838
    void TTFFont::KillFace(void) 
    548548
    549549TTFFont::TTFFont(char *file, int size, float wscale,
    550550                 float hmult)
     551    : valid(false),            face(0)
     552    , max_descent(-1),         max_ascent(-1)
     553    , fontsize(size),          vid_width(-1)
     554    , vid_height(-1),          use_kerning(false)
     555    , spacewidth(0),           m_size(size)
     556    , m_outline(false),        m_shadowxoff(0)
     557    , m_shadowyoff(0),         m_color_normal_y(255)
     558    , m_color_normal_u(128),   m_color_normal_v(128)
     559    , m_color_outline_y(0x40), m_color_outline_u(128)
     560    , m_color_outline_v(128),  m_color_shadow_y(0x20)
     561    , m_color_shadow_u(128),   m_color_shadow_v(128)
     562    , m_file(file),            loadedfontsize(-1)
     563    , m_wscale(wscale),        m_hmult(hmult)
     564   
    551565{
    552    FT_Error            error;
    553 
    554    valid = false;
    555    m_size = size;
    556    spacewidth = 0;
    557 
    558    m_outline = false;
    559    m_shadowxoff = 0;
    560    m_shadowyoff = 0;
    561 
    562    m_color_normal_y = 255;
    563    m_color_normal_u = m_color_normal_v = 128;
    564 
    565    m_color_outline_y = 0x40;
    566    m_color_outline_u = m_color_outline_v = 128;
    567 
    568    m_color_shadow_y = 0x20;
    569    m_color_shadow_u = m_color_shadow_v = 128;
    570 
    571566   if (!have_library)
    572567   {
    573         error = FT_Init_FreeType(&the_library);
    574         if (error) {
     568        FT_Error error = FT_Init_FreeType(&the_library);
     569        if (error)
    575570           return;
    576         }
    577         have_library++;
    578    }
    579571
    580    fontsize = size;
    581    library = the_library;
    582 
    583    m_wscale = wscale;
    584    m_file = file;
    585    m_hmult = hmult;
     572        have_library = true;
     573   }
    586574
    587575   Init();
    588576}
    void TTFFont::Init(void) 
    622610   int xdpi = 96, ydpi = 96;
    623611   unsigned short i, n;
    624612
    625    error = FT_New_Face(library, m_file, 0, &face);
     613   error = FT_New_Face(the_library, m_file, 0, &face);
    626614   if (error)
    627615   {
    628616        return;
  • libs/libmythtv/ttfont.h

    diff --git a/libs/libmythtv/ttfont.h b/libs/libmythtv/ttfont.h
    index 2ea0a5b..ebb8747 100644
    a b class TTFFont 
    6969     bool cache_glyph(unsigned short c);
    7070
    7171     bool         valid;
    72      FT_Library   library;
    7372     FT_Face      face;
    7473     QMap<unsigned short, FT_Glyph> glyphs;
    7574     QMap<unsigned short, Raster_Map *> glyphs_cached;
    class TTFFont 
    104103     int loadedfontsize;
    105104     float m_wscale;
    106105     float m_hmult;
     106
     107     static bool have_library;
     108     static FT_Library the_library;
    107109};
    108110
    109111#endif
  • libs/libmythtv/tv_play.h

    diff --git a/libs/libmythtv/tv_play.h b/libs/libmythtv/tv_play.h
    index 69b92d7..f42ebd0 100644
    a b typedef enum 
    102102class AskProgramInfo
    103103{
    104104  public:
    105     AskProgramInfo() : info(NULL) {}
     105    AskProgramInfo() :
     106        has_rec(false),                has_later(false),
     107        is_in_same_input_group(false), is_conflicting(false),
     108        info(NULL) {}
    106109    AskProgramInfo(const QDateTime &e, bool r, bool l, ProgramInfo *i) :
    107110        expiry(e), has_rec(r), has_later(l),
    108111        is_in_same_input_group(false), is_conflicting(false),
  • libs/libmythtv/vbitext/vbi.c

    diff --git a/libs/libmythtv/vbitext/vbi.c b/libs/libmythtv/vbitext/vbi.c
    index 2fc90f5..f7e31f4 100644
    a b struct vbi * 
    632632vbi_open(const char *vbi_name, struct cache *ca, int fine_tune, int big_buf)
    633633{
    634634    static int inited = 0;
    635     struct vbi *vbi;
     635    struct vbi *vbi = 0;
    636636
    637637    (void)ca;
    638638
  • libs/libmythtv/videooutbase.cpp

    diff --git a/libs/libmythtv/videooutbase.cpp b/libs/libmythtv/videooutbase.cpp
    index f6b3c3c..fb0abe6 100644
    a b VideoOutput::VideoOutput() : 
    312312    framesPlayed(0), db_scaling_allowed(true),
    313313    supported_attributes(kPictureAttributeSupported_None)
    314314{
     315    bzero(&pip_tmp_image, sizeof(pip_tmp_image));
    315316    db_display_dim = QSize(gContext->GetNumSetting("DisplaySizeWidth",  0),
    316317                           gContext->GetNumSetting("DisplaySizeHeight", 0));
    317318
  • libs/libmythtv/vsync.cpp

    diff --git a/libs/libmythtv/vsync.cpp b/libs/libmythtv/vsync.cpp
    index 3de2d05..b8885ee 100644
    a b VideoSync *VideoSync::BestMethod(VideoOutput *video_output, 
    113113VideoSync::VideoSync(VideoOutput *video_output,
    114114                     int frameint, int refreshint,
    115115                     bool halve_frame_interval) :
    116     m_video_output(video_output),
    117     m_frame_interval(frameint), m_refresh_interval(refreshint),
    118     m_interlaced(halve_frame_interval)
     116    m_video_output(video_output),   m_frame_interval(frameint),
     117    m_refresh_interval(refreshint), m_interlaced(halve_frame_interval),
     118    m_delay(-1)
    119119{
     120    bzero(&m_nexttrigger, sizeof(m_nexttrigger));
    120121    if (m_interlaced && m_refresh_interval > m_frame_interval/2)
    121122        m_interlaced = false; // can't display both fields at 2x rate
    122123
    const char *nVidiaVideoSync::sm_nvidia_dev = "/dev/nvidia0"; 
    359360
    360361nVidiaVideoSync::nVidiaVideoSync(VideoOutput *vo,
    361362                                 int fi, int ri, bool intr) :
    362     VideoSync(vo, fi, ri, intr)
     363    VideoSync(vo, fi, ri, intr), m_nvidia_fd(-1)
    363364{
    364365}
    365366