for (inner_idx = 0; !success && inner_idx < checking->nreferences; inner_idx++)
{
- CHECK_IMAGE_VISIT (checking->references[inner_idx]->image);
+ // Assembly references are lazy-loaded and thus allowed to be NULL.
+ // If they are NULL, we don't care about them for this search, because their images haven't impacted ref_count yet.
+ if (checking->references[inner_idx])
+ {
+ CHECK_IMAGE_VISIT (checking->references[inner_idx]->image);
+ }
}
mono_image_unlock (checking);
if (to->images[to_idx] == mono_defaults.corlib)
seen = TRUE;
- // For each item in to->images, scan over from->images looking for it.
+ // For each item in to->images, scan over from->images seeking a path to it.
for (from_idx = 0; !seen && from_idx < from->nimages; from_idx++)
{
- if (to->images[to_idx] == from->images[from_idx])
+ if (check_image_may_reference_image (from->images[from_idx], to->images[to_idx]))
seen = TRUE;
}
export CFLAGS="-ggdb3 -O2"
fi
-if [[ ${CI_TAGS} == *'coop-gc'* ]]; then EXTRA_CONF_FLAGS="${EXTRA_CONF_FLAGS} --with-cooperative-gc=yes"; export MONO_CHECK_MODE=gc,thread; fi
+if [[ ${CI_TAGS} == *'coop-gc'* ]]; then EXTRA_CONF_FLAGS="${EXTRA_CONF_FLAGS} --with-cooperative-gc=yes"; fi
+
+if [[ ${CI_TAGS} == *'checked-coop'* ]]; then EXTRA_CONF_FLAGS="${EXTRA_CONF_FLAGS} --enable-checked-build=gc,thread"; export MONO_CHECK_MODE=gc,thread; fi
+if [[ ${CI_TAGS} == *'checked-all'* ]]; then EXTRA_CONF_FLAGS="${EXTRA_CONF_FLAGS} --enable-checked-build=all"; export MONO_CHECK_MODE=all; fi
if [[ ${label} == 'osx-i386' ]]; then EXTRA_CONF_FLAGS="${EXTRA_CONF_FLAGS} --with-libgdiplus=/Library/Frameworks/Mono.framework/Versions/Current/lib/libgdiplus.dylib --build=i386-apple-darwin11.2.0"; fi
if [[ ${label} == 'osx-amd64' ]]; then EXTRA_CONF_FLAGS="${EXTRA_CONF_FLAGS} --with-libgdiplus=/Library/Frameworks/Mono.framework/Versions/Current/lib/libgdiplus.dylib "; fi