aa893970733f283ded63b3ea8ed1ddd43117be74
kate
  Thu Jan 9 21:55:11 2020 -0800
Fix problem with multi-view composites using hideEmptySubtracks. refs #23665

diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index 5c87cfd..ffa49eb 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -5217,31 +5217,31 @@
 boolean compositeHideEmptySubtracksSetting(struct trackDb *tdb, boolean *retDefault,
                                         char **retMultiBedFile, char **retSubtrackIdFile)
 /* Parse hideEmptySubtracks setting
  * Format:  hideEmptySubtracks on|default
  *              or
  *          hideEmptySubtracks on|default multiBed.bed subtrackIds.tab
  * where multiBed.bed is a bed3Sources bigBed, generated with bedtools multiinter
  *              post-processed by UCSC multiBed.pl tool
  *      subtrackIds.tab is a tab-sep file: id subtrackName
  *
  * Return TRUE if set to true/on/default.  retDefault is TRUE if set default, o/w FALSE
  */
 {
 if (!tdbIsComposite(tdb))
     return FALSE;
-char *hideEmpties = trackDbSetting(tdb, SUBTRACK_HIDE_EMPTY);
+char *hideEmpties = cloneString(trackDbSetting(tdb, SUBTRACK_HIDE_EMPTY));
 if (!hideEmpties)
     return FALSE;
 char *orig = cloneString(hideEmpties);
 char *words[3];
 int wordCount = chopByWhite(hideEmpties, words, ArraySize(words));
 char *mode = words[0];
 if (differentString(mode, "on") && differentString(mode, "true") &&
     differentString(mode, "default"))
         {
         warn("Track %s %s setting invalid: %s", tdb->track, SUBTRACK_HIDE_EMPTY, orig);
         return FALSE;
         }
 boolean deflt = sameString(mode, "default") ? TRUE : FALSE;
 if (retDefault)
     *retDefault = deflt;