Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-1695

allow warning-free compilation in VS 2012 and GNU 4.6

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.9
    • Fix Version/s: 0.9.1
    • Component/s: C++ - Library
    • Labels:
    • Environment:

      Windows and any Unix

    • Patch Info:
      Patch Available

      Description

      The patches allow the current trunk of Thrift C++ to
      build without warnings in Visual Studio and GNU gcc.

      I introduce THRIFT_SAFE_CAST in Thrift.h, which tests narrowing
      conversions for fit. Would-be overflows throw std::runtime_error.

      Some functions have been modified or overloaded to allow size_t
      parameters. SOCKET is dealt with intelligently.

      IMO every public thrift function should have a form accepting normal
      types – including e.g. short, int, long, and size_t – and apply casts
      as necessary. In particular size_t is important because std
      constainers have size() members that usually return something like
      size_t.

        Attachments

        1. thrift.warningfree.pax.gz
          8 kB
          James K. Lowden
        2. compiler_is_dir.patch
          2 kB
          Ben Craig
        3. compiler_switch_default.patch
          5 kB
          Ben Craig
        4. compiler_unused_locals.patch
          2 kB
          Ben Craig
        5. libthrift_warning_purge.patch
          40 kB
          Ben Craig
        6. platform_direct.patch
          0.4 kB
          Ben Craig
        7. compiler_warning_purge.patch
          9 kB
          Ben Craig

          Activity

            People

            • Assignee:
              roger Roger Meier
              Reporter:
              jklowden James K. Lowden
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 24h
                24h
                Remaining:
                Remaining Estimate - 24h
                24h
                Logged:
                Time Spent - Not Specified
                Not Specified