Use std::string for ConstantExpression::*value() methods.

Bug: 31633795 memory leaks are partly fixed

Test: `mma`

Change-Id: Ia9275b86ca6d7445f4832994b5a70a2e93993eb1
diff --git a/ConstantExpression.h b/ConstantExpression.h
index fe2d572..fc36bb7 100644
--- a/ConstantExpression.h
+++ b/ConstantExpression.h
@@ -50,15 +50,15 @@
                        const ConstantExpression *falseVal);
 
     /* Original expression. */
-    const char *expr() const;
+    std::string expr() const;
     /* Evaluated result in a string form. */
-    const char *value() const;
+    std::string value() const;
     /* Evaluated result in a string form, with given contextual kind. */
-    const char *cppValue(ScalarType::Kind castKind) const;
+    std::string cppValue(ScalarType::Kind castKind) const;
     /* Evaluated result in a string form, with given contextual kind. */
-    const char *javaValue(ScalarType::Kind castKind) const;
+    std::string javaValue(ScalarType::Kind castKind) const;
     /* Original expression with type. */
-    const char *description() const;
+    std::string description() const;
 
 private:
     /* The formatted expression. */
@@ -76,7 +76,7 @@
      * Assumes mType != kConstExprUnknown */
     template <typename T> T cast() const;
     /* Helper function for value(ScalarType::Kind) */
-    const char *value0(ScalarType::Kind castKind) const;
+    std::string value0(ScalarType::Kind castKind) const;
 
     DISALLOW_COPY_AND_ASSIGN(ConstantExpression);
 };