• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1diff --git a/source/common/locid.cpp b/source/common/locid.cpp
2index 64ff63f3..888b3d35 100644
3--- a/source/common/locid.cpp
4+++ b/source/common/locid.cpp
5@@ -2689,11 +2689,11 @@ Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErro
6         }
7         uprv_strcpy(newFullName, fullName);
8         if (fullName != fullNameBuffer) {
9-            // if full Name is already on the heap, need to free it.
10-            uprv_free(fullName);
11             if (baseName == fullName) {
12                 baseName = newFullName; // baseName should not point to freed memory.
13             }
14+            // if full Name is already on the heap, need to free it.
15+            uprv_free(fullName);
16         }
17         fullName = newFullName;
18         status = U_ZERO_ERROR;
19