diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2010-09-12 11:42:03 +0200 |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@gnome.org> | 2010-09-12 11:42:03 +0200 |
commit | 53324502898ae5fbbb21a4fb819e4a84acdc1a64 (patch) | |
tree | 8716cb395bf194e55adaf34a0d9a93b23f72c157 /glib | |
parent | dfc6ea7877635212aa7c5f7ade07af4aa9467e96 (diff) |
[glib] Fix a crash when building layer actions
Some layers are just the parent of others, but not actually a layer so
they don't have an optional content object. Fixes bug #30106.
Diffstat (limited to 'glib')
-rw-r--r-- | glib/poppler-action.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/glib/poppler-action.cc b/glib/poppler-action.cc index c076551a..bcb2d364 100644 --- a/glib/poppler-action.cc +++ b/glib/poppler-action.cc @@ -533,14 +533,17 @@ get_layer_for_ref (PopplerDocument *document, for (l = layers; l; l = g_list_next (l)) { Layer *layer = (Layer *)l->data; - Ref ocgRef = layer->oc->getRef(); - if (ref->num == ocgRef.num && ref->gen == ocgRef.gen) { - GList *rb_group = NULL; + if (layer->oc) { + Ref ocgRef = layer->oc->getRef(); - if (preserve_rb) - rb_group = _poppler_document_get_layer_rbgroup (document, layer); - return _poppler_layer_new (document, layer, rb_group); + if (ref->num == ocgRef.num && ref->gen == ocgRef.gen) { + GList *rb_group = NULL; + + if (preserve_rb) + rb_group = _poppler_document_get_layer_rbgroup (document, layer); + return _poppler_layer_new (document, layer, rb_group); + } } if (layer->kids) { |