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

Add support of ARC to Objective-C

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.7
    • 0.9
    • None
    • Mac OS X Lion, iOS 4.2, 4.3, 5.0..

    Description

      Objective-C in Xcode 4.2 supports ARC (Automatic Reference Counting, not GC but similar) and now it is the default both on OS X Lion and iOS 5. (ARC works on iOS 4.2 or higher.)

      The conventional Objective-C code includes many retain/release/autorelease for maintaining the life time of objects.

      Since the latest Objective-C compiler automatically generates stubs for reference counting, code should not include any retain/release/autorelease.

      Many Mac OS/iOS projects are moving to ARC mode. Although we can specify a compiler flag which tells ARC or no-ARC file by file in Xcode 4.2, there is no means to tell the Xcode that files generated by the thrift compiler are no-ARC. Xcode produces many error messages like "retain is not allowed in ARC mode".
      So, the thrift compiler should support ARC mode.

      What we need are:

      1) add -objc-arc flag to the thrift compiler.
      2) If -objc-arc flag exists, omit generating code for retain/release/autorelease.

      Please look at "Programming with ARC reference notes" in iOS developer library.

      http://andpdas.com/wp-content/uploads/2011/06/ARCProgrammingGuide.pdf

      Attachments

        1. THRIFT-0.8.0-dev_cocoa_ARC.patch
          38 kB
          HIRANO Satoshi

        Issue Links

          Activity

            People

              hirano-s@aist.go.jp HIRANO Satoshi
              hirano-s@aist.go.jp HIRANO Satoshi
              Votes:
              1 Vote for this issue
              Watchers:
              1 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