} else if (layout->labeltype == LABEL_SENSITIVE) {
// Search for the first float or wrap inset in the iterator
size_t i = it.depth();
- InsetBase * in;
+ InsetBase * in = 0;
while (i > 0) {
--i;
- in = &it[i].inset();
- if (in->lyxCode() == InsetBase::FLOAT_CODE
- || in->lyxCode() == InsetBase::WRAP_CODE)
+ InsetBase::Code const code = it[i].inset().lyxCode();
+ if (code == InsetBase::FLOAT_CODE ||
+ code == InsetBase::WRAP_CODE) {
+ in = &it[i].inset();
break;
+ }
}
- docstring const & type = in->getInsetName();
+ // FIXME Can getInsetName() return an empty name for wide or
+ // float insets? If not we can put the definition of type
+ // inside the if (in) clause and use that instead of
+ // if (!type.empty()).
+ docstring type;
+ if (in)
+ type = in->getInsetName();
if (!type.empty()) {
Floating const & fl = textclass.floats().getType(to_ascii(type));