[ 
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.

Reply via email to