summaryrefslogtreecommitdiff
path: root/fitz/obj_dict.c
diff options
context:
space:
mode:
Diffstat (limited to 'fitz/obj_dict.c')
-rw-r--r--fitz/obj_dict.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/fitz/obj_dict.c b/fitz/obj_dict.c
index 24f24e56..6dfc3a64 100644
--- a/fitz/obj_dict.c
+++ b/fitz/obj_dict.c
@@ -181,6 +181,7 @@ growdict(fz_obj *obj)
int
fz_dictlen(fz_obj *obj)
{
+ obj = fz_resolveindirect(obj);
if (!fz_isdict(obj))
return 0;
return obj->u.d.len;
@@ -189,6 +190,8 @@ fz_dictlen(fz_obj *obj)
fz_obj *
fz_dictgetkey(fz_obj *obj, int i)
{
+ obj = fz_resolveindirect(obj);
+
if (!fz_isdict(obj))
return nil;
@@ -201,6 +204,8 @@ fz_dictgetkey(fz_obj *obj, int i)
fz_obj *
fz_dictgetval(fz_obj *obj, int i)
{
+ obj = fz_resolveindirect(obj);
+
if (!fz_isdict(obj))
return nil;
@@ -245,6 +250,8 @@ fz_dictgets(fz_obj *obj, char *key)
{
int i;
+ obj = fz_resolveindirect(obj);
+
if (!fz_isdict(obj))
return nil;
@@ -282,6 +289,8 @@ fz_dictput(fz_obj *obj, fz_obj *key, fz_obj *val)
char *s;
int i;
+ obj = fz_resolveindirect(obj);
+
if (!fz_isdict(obj))
return fz_throw("assert: not a dict (%s)", fz_objkindstr(obj));
@@ -342,6 +351,8 @@ fz_dictdels(fz_obj *obj, char *key)
{
int i;
+ obj = fz_resolveindirect(obj);
+
if (!fz_isdict(obj))
return fz_throw("assert: not a dict (%s)", fz_objkindstr(obj));
@@ -370,10 +381,12 @@ fz_dictdel(fz_obj *obj, fz_obj *key)
}
void
-fz_dropdict(fz_obj *obj)
+fz_freedict(fz_obj *obj)
{
int i;
+ obj = fz_resolveindirect(obj);
+
if (!fz_isdict(obj))
return;
@@ -391,6 +404,7 @@ fz_dropdict(fz_obj *obj)
void
fz_sortdict(fz_obj *obj)
{
+ obj = fz_resolveindirect(obj);
if (!fz_isdict(obj))
return;
if (!obj->u.d.sorted)