0689a6e26d5552dd64fdd4263985e1857236fd92
braney
  Wed Oct 31 12:21:17 2018 -0700
enable view caching on native tracks

diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index b90bb71..d9bb321 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -2596,47 +2596,57 @@
         return setting;
     }
 return NULL;
 }
 
 boolean subgroupingExists(struct trackDb *parentTdb, char *groupNameOrTag)
 // Does this parent track contain a particular subgrouping?
 {
 return (subgroupSettingByTagOrName(parentTdb,groupNameOrTag) != NULL);
 }
 
 static members_t *subgroupMembersGet(struct trackDb *parentTdb, char *groupNameOrTag)
 // Parse a subGroup setting line into tag,title, names(optional) and values(optional),
 // returning the count of members or 0
 {
+static members_t nullMember;   // place holder for NULL
 members_t *members  = tdbExtrasMembers(parentTdb, groupNameOrTag);
 if (members != NULL)
+    {
+    if (members == &nullMember)
+        return NULL;
     return members;
+    }
+
 
 int ix,count;
 char *setting = subgroupSettingByTagOrName(parentTdb, groupNameOrTag);
 if (setting == NULL)
+    {
+    tdbExtrasMembersSet(parentTdb, groupNameOrTag, &nullMember);
     return NULL;
+    }
 members = needMem(sizeof(members_t));
 members->setting = cloneString(setting);
 char *words[SMALLBUF];
 count = chopLine(members->setting, words);
 assert(count <= ArraySize(words));
 if (count <= 1)
     {
     freeMem(members->setting);
     freeMem(members);
+    tdbExtrasMembersSet(parentTdb, groupNameOrTag, &nullMember);
     return NULL;
     }
 members->groupTag   = words[0];
 members->groupTitle = strSwapChar(words[1],'_',' '); // Titles replace '_' with space
 members->tags       = needMem(count*sizeof(char*));
 members->titles     = needMem(count*sizeof(char*));
 for (ix = 2,members->count=0; ix < count; ix++)
     {
     char *name,*value;
     if (parseAssignment(words[ix], &name, &value))
 	{
 	members->tags[members->count]  = tagEncode(name);
 	members->titles[members->count] = strSwapChar(value,'_',' ');
 	members->count++;
 	}