[Swift-devel] deep field bug

Mihael Hategan hategan at mcs.anl.gov
Sun Mar 28 23:17:42 CDT 2010


Mike (and possibly others) have been experiencing a bit of a problem
with a certain type of script.

The basic idea is an app returning a complex structure. The example Mike
gave was (irrelevant stuff removed):

type filestruct {
  file filefield;
}

app (filestruct fs[]) touchem () { touchem; }

Where fs is mapped properly with a fixed array mapper.

The problem with that is that closedataset (which is called when touchem
is done) only closes fs and fs[*], but not fs[*].filefield. For some
reason the method used internally is closeChildren().

Now, it seems quite obvious that that's bogus and a deep close should
be done instead when returning from an app. Furthermore, I see no need
for closeChildren() to ever be called on its own (other than perhaps by
a deep close). So I'm sending this email to see if anybody (Ben that is)
is of a different opinion.

In the mean-time, for those who want to test a possible solution (and
please run the whole test suite in the process):
http://www.mcs.anl.gov/~hategan/deepfieldbug.diff

(you need to apply it in swift/src/org/griphyn/vdl).




More information about the Swift-devel mailing list