Fixes to source_writer.cc.
authorMichael Case <mikecase@google.com>
Mon, 9 Apr 2018 15:19:52 +0000 (08:19 -0700)
committerMichael Case <mikecase@google.com>
Mon, 9 Apr 2018 15:19:52 +0000 (08:19 -0700)
- Fix memory leak in source_writer constructor.
- FIx test data having .java extension causing issues with internal
  linters. Changing to .txt extension.

tensorflow/java/BUILD
tensorflow/java/src/gen/cc/source_writer.cc
tensorflow/java/src/gen/cc/source_writer.h
tensorflow/java/src/gen/cc/source_writer_test.cc
tensorflow/java/src/gen/resources/test.snippet.java.txt [moved from tensorflow/java/src/gen/resources/test.snippet.java with 100% similarity]

index 1be4c83..4b558af 100644 (file)
@@ -312,7 +312,7 @@ tf_cc_test(
         "src/gen/cc/source_writer_test.cc",
     ],
     data = [
-        "src/gen/resources/test.snippet.java",
+        "src/gen/resources/test.snippet.java.txt",
     ],
     deps = [
         ":java_op_gen_lib",
index 214999a..c57389f 100644 (file)
@@ -23,10 +23,17 @@ namespace tensorflow {
 namespace java {
 
 SourceWriter::SourceWriter() {
-  // push an empty generic namespace at start, for simplification
+  // Push an empty generic namespace at start, for simplification.
   generic_namespaces_.push(new GenericNamespace());
 }
 
+SourceWriter::~SourceWriter() {
+  // Remove empty generic namespace added at start.
+  GenericNamespace* generic_namespace = generic_namespaces_.top();
+  generic_namespaces_.pop();
+  delete generic_namespace;
+}
+
 SourceWriter& SourceWriter::Indent(int tab) {
   left_margin_.resize(
       std::max(static_cast<int>(left_margin_.size() + tab), 0), ' ');
index 6abe13b..cb0e927 100644 (file)
@@ -32,7 +32,7 @@ namespace java {
 class SourceWriter {
  public:
   SourceWriter();
-  virtual ~SourceWriter() = default;
+  virtual ~SourceWriter();
 
   // Indents following lines with white spaces.
   //
index 6926a5a..cbde646 100644 (file)
@@ -259,7 +259,9 @@ TEST(StreamTest, Types) {
 
 TEST(StreamTest, FileSnippet) {
   SourceBufferWriter writer;
-  const string& fname = "tensorflow/java/src/gen/resources/test.snippet.java";
+  const string fname = tensorflow::io::JoinPath(
+      tensorflow::testing::TensorFlowSrcRoot(),
+      "java/src/gen/resources/test.snippet.java.txt");
 
   writer.WriteFromFile(fname)
         .BeginBlock()