return pxd_builder_commit (&b);
}
-struct ccase *case_load (struct pxd_object *, const struct pxd *);
+struct ccase *
+case_load (struct pxd_object *object, const struct pxd *pxd)
+{
+ struct caseproto *proto;
+ struct pxd_parser p;
+ struct ccase *c;
+ size_t i;
+
+ pxd_parser_init (&p, object, pxd);
+
+ proto = caseproto_load (pxd_parser_get_link (&p), pxd);
+ c = case_create (proto);
+ for (i = 0; i < caseproto_get_n_widths (proto); i++)
+ pxd_parser_get_value (&p, case_data_rw_idx (c, i),
+ caseproto_get_width (proto, i));
+
+ caseproto_unref (proto);
+
+ pxd_parser_destroy (&p);
+
+ return c;
+}
/* Internal helper function for case_unshare. */
struct ccase *