Merge branch 'release-4-5-patches'
authorTeemu Murtola <teemu.murtola@gmail.com>
Fri, 19 Apr 2013 03:50:37 +0000 (06:50 +0300)
committerTeemu Murtola <teemu.murtola@gmail.com>
Fri, 19 Apr 2013 03:50:37 +0000 (06:50 +0300)
Tested that the selection fixes work also in release-4-6.

Conflicts:
src/gmxlib/selection/compiler.c (trivial)

Change-Id: Ib679b1babaf29457c13ca1f10fde5a612ddc3055

1  2 
src/gmxlib/selection/compiler.c
src/gmxlib/selection/evaluate.c

index 0ccb548d3e2a7902c927c06433b8747680fda2b7,a10bd7a4911b81f86c4831cacd1ad197c42df264..326635cdd0d866d1e463d5b5d70bdeb1706de4f9
@@@ -2485,12 -2511,23 +2525,23 @@@ postprocess_item_subexpressions(t_selel
          && !(sel->cdata->flags & SEL_CDATA_SIMPLESUBEXPR)
          && (sel->cdata->flags & SEL_CDATA_FULLEVAL))
      {
 -        sel->flags |= SEL_ALLOCVAL;
 -        sel->flags |= (sel->child->flags & SEL_ALLOCDATA);
 -        sel->v.nalloc = sel->child->v.nalloc;
 -        sel->child->flags &= ~(SEL_ALLOCVAL | SEL_ALLOCDATA);
 +        sel->flags          |= SEL_ALLOCVAL;
 +        sel->flags          |= (sel->child->flags & SEL_ALLOCDATA);
 +        sel->v.nalloc        = sel->child->v.nalloc;
 +        sel->child->flags   &= ~(SEL_ALLOCVAL | SEL_ALLOCDATA);
          sel->child->v.nalloc = -1;
      }
+     /* For static subexpressions with a dynamic evaluation group, there is
+      * no need to evaluate them again, as the SEL_SUBEXPRREF takes care of
+      * everything during evaluation. */
+     if (sel->type == SEL_SUBEXPR
+         && (sel->cdata->flags & SEL_CDATA_SIMPLESUBEXPR)
+         && (sel->cdata->flags & SEL_CDATA_STATICMULTIEVALSUBEXPR))
+     {
+         sel->evaluate        = NULL;
+         sel->cdata->evaluate = NULL;
+     }
  }
  
  
Simple merge