summaryrefslogtreecommitdiff
path: root/glib
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2010-09-12 11:42:03 +0200
committerCarlos Garcia Campos <carlosgc@gnome.org>2010-09-12 11:42:03 +0200
commit53324502898ae5fbbb21a4fb819e4a84acdc1a64 (patch)
tree8716cb395bf194e55adaf34a0d9a93b23f72c157 /glib
parentdfc6ea7877635212aa7c5f7ade07af4aa9467e96 (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.cc15
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) {