8fe5712649e5da23ba5e4a0416fbea08fa75451a kate Tue Apr 23 17:04:45 2019 -0700 Fix UI matrix bug ignoring subgroup members > 256. refs #23366 diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 7732f74..47d6e0b 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -2631,33 +2631,33 @@ 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]; +char *words[512]; count = chopLine(members->setting, words); -assert(count <= ArraySize(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)) @@ -3099,33 +3099,33 @@ // gets all the subgroup membership for a child track { membership_t *membership = tdbExtrasMembership(childTdb); if (membership != NULL) return membership; // Already retrieved, so don't do it again membership = needMem(sizeof(membership_t)); membership->setting = cloneString(trackDbSetting(childTdb, "subGroups")); if (membership->setting == NULL) { freeMem(membership); return NULL; } int ix,cnt; -char *words[SMALLBUF]; +char *words[512]; cnt = chopLine(membership->setting, words); -assert(cnt <= ArraySize(words)); +assert(cnt < ArraySize(words)); if (cnt <= 0) { freeMem(membership->setting); freeMem(membership); return NULL; } membership->subgroups = needMem(cnt*sizeof(char*)); membership->membership = needMem(cnt*sizeof(char*)); membership->titles = needMem(cnt*sizeof(char*)); for (ix = 0,membership->count=0; ix < cnt; ix++) { char *name,*value; if (parseAssignment(words[ix], &name, &value)) { membership->subgroups[membership->count] = name;