You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Erik Frey (JIRA)" <ji...@apache.org> on 2009/01/06 10:03:44 UTC

[jira] Updated: (THRIFT-178) Final Keyword

     [ https://issues.apache.org/jira/browse/THRIFT-178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Erik Frey updated THRIFT-178:
-----------------------------

    Attachment: final_annotation_cpp_java_csharp.patch

Okay, here's a patch!  It adds cpp.final, java.final, and csharp.final annotations to their respective generators.

Since annotations are generator-specific, I considered something like cpp.nonvirtual, java.final, and csharp.sealed, but this felt a bit like overkill.  Feel free to alter the patch if you feel that's more appropriate.

> Final Keyword
> -------------
>
>                 Key: THRIFT-178
>                 URL: https://issues.apache.org/jira/browse/THRIFT-178
>             Project: Thrift
>          Issue Type: New Feature
>          Components: Compiler (C++), Compiler (General), Compiler (Java)
>            Reporter: Erik Frey
>            Priority: Minor
>         Attachments: final_annotation_cpp_java_csharp.patch, final_csharp.patch, keyword_final_cpp_java.patch
>
>
> This introduces support for the final keyword in the thrift IDL.  A C++ thrift struct that is declared final loses it's virtual dtor, which saves the memory overhead of one vtable per instance.  This (along with the required keyword) can be very helpful if you're passing around big lists of small thrift structs.
> This patch also includes modifications for the java generator to recognize and apply final.  I'm not familiar enough with the other languages to know if this notion applies to them.
> (A patch for this was submitted in thrift's pre-apache days and was met with approval, but then fell off the radar, so I'm trying again.)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.