< prev index next >

src/share/vm/adlc/dfa.cpp

Print this page
rev 11179 : 8140594: Various minor code improvements (compiler)
Reviewed-by: thartmann

@@ -714,44 +714,39 @@
 
 const char *Expr::compute_external(const Expr *c1, const Expr *c2) {
   const char * result = NULL;
 
   // Preserve use of external name which has a zero value
-  if( c1->_external_name != NULL ) {
-    sprintf( string_buffer, "%s", c1->as_string());
-    if( !c2->is_zero() ) {
-      strcat( string_buffer, "+");
-      strcat( string_buffer, c2->as_string());
+  if (c1->_external_name != NULL) {
+    if (c2->is_zero()) {
+      snprintf(string_buffer, STRING_BUFFER_LENGTH, "%s", c1->as_string());
+    } else {
+      snprintf(string_buffer, STRING_BUFFER_LENGTH, "%s + %s", c1->as_string(), c2->as_string());
     }
     result = strdup(string_buffer);
-  }
-  else if( c2->_external_name != NULL ) {
-    if( !c1->is_zero() ) {
-      sprintf( string_buffer, "%s", c1->as_string());
-      strcat( string_buffer, " + ");
+  } else if (c2->_external_name != NULL) {
+    if (!c1->is_zero()) {
+      snprintf(string_buffer, STRING_BUFFER_LENGTH, "%s + %s", c1->as_string(), c2->_external_name);
     } else {
-      string_buffer[0] = '\0';
+      snprintf(string_buffer, STRING_BUFFER_LENGTH, "%s", c2->_external_name);
     }
-    strcat( string_buffer, c2->_external_name );
     result = strdup(string_buffer);
   }
   return result;
 }
 
 const char *Expr::compute_expr(const Expr *c1, const Expr *c2) {
-  if( !c1->is_zero() ) {
-    sprintf( string_buffer, "%s", c1->_expr);
-    if( !c2->is_zero() ) {
-      strcat( string_buffer, "+");
-      strcat( string_buffer, c2->_expr);
-    }
-  }
-  else if( !c2->is_zero() ) {
-    sprintf( string_buffer, "%s", c2->_expr);
+  if (!c1->is_zero()) {
+    if (c2->is_zero()) {
+      snprintf(string_buffer, STRING_BUFFER_LENGTH, "%s", c1->_expr);
+    } else {
+      snprintf(string_buffer, STRING_BUFFER_LENGTH, "%s + %s", c1->_expr, c2->_expr);
   }
-  else {
-    sprintf( string_buffer, "0");
+  } else if (!c2->is_zero()) {
+    sprintf(string_buffer, "%s", c2->_expr);
+  } else {
+    sprintf(string_buffer, "0");
   }
   char *cost = strdup(string_buffer);
 
   return cost;
 }
< prev index next >