Repository: thrift
Updated Branches:
  refs/heads/master 9d803f512 -> 507075607


THRIFT-3210 (uncompileable) code generated for server events while are events 
not enabled
Client: Delphi
Patch: Jens Geyer


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/50707560
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/50707560
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/50707560

Branch: refs/heads/master
Commit: 507075607f511215cf9c403ff722202c1075dcef
Parents: 9d803f5
Author: Jens Geyer <[email protected]>
Authored: Mon Jun 29 11:30:40 2015 +0200
Committer: Jens Geyer <[email protected]>
Committed: Mon Jun 29 11:30:40 2015 +0200

----------------------------------------------------------------------
 compiler/cpp/src/generate/t_delphi_generator.cc | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/50707560/compiler/cpp/src/generate/t_delphi_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/generate/t_delphi_generator.cc 
b/compiler/cpp/src/generate/t_delphi_generator.cc
index 2684811..71c49d3 100644
--- a/compiler/cpp/src/generate/t_delphi_generator.cc
+++ b/compiler/cpp/src/generate/t_delphi_generator.cc
@@ -2430,14 +2430,18 @@ void 
t_delphi_generator::generate_process_function(t_service* tservice, t_functi
 
   indent_impl(s_service_impl) << "on E: Exception do begin" << endl;
   indent_up_impl();
-  indent_impl(s_service_impl) << "if events <> nil then 
events.UnhandledError(E);" << endl;
+  if(events_) {
+    indent_impl(s_service_impl) << "if events <> nil then 
events.UnhandledError(E);" << endl;
+  }
   if (!tfunction->is_oneway()) {
     indent_impl(s_service_impl) << "appx := TApplicationException.Create( "
                                    
"TApplicationException.TExceptionType.InternalError, E.Message);"
                                 << endl;
     indent_impl(s_service_impl) << "try" << endl;
     indent_up_impl();
-    indent_impl(s_service_impl) << "if events <> nil then events.PreWrite;" << 
endl;
+    if(events_) {
+      indent_impl(s_service_impl) << "if events <> nil then events.PreWrite;" 
<< endl;
+    }
     indent_impl(s_service_impl) << "msg := 
Thrift.Protocol.TMessageImpl.Create('"
                                 << tfunction->get_name() << "', 
TMessageType.Exception, seqid);"
                                 << endl;
@@ -2445,8 +2449,10 @@ void 
t_delphi_generator::generate_process_function(t_service* tservice, t_functi
     indent_impl(s_service_impl) << "appx.Write(oprot);" << endl;
     indent_impl(s_service_impl) << "oprot.WriteMessageEnd();" << endl;
     indent_impl(s_service_impl) << "oprot.Transport.Flush();" << endl;
-    indent_impl(s_service_impl) << "if events <> nil then events.PostWrite;" 
<< endl;
-    indent_impl(s_service_impl) << "Exit;" << endl;
+    if(events_) {
+      indent_impl(s_service_impl) << "if events <> nil then events.PostWrite;" 
<< endl;
+    }
+       indent_impl(s_service_impl) << "Exit;" << endl;
     indent_down_impl();
     indent_impl(s_service_impl) << "finally" << endl;
     indent_up_impl();

Reply via email to