[seed] xml: Expose xml._nodeProto
- From: Robert Carr <racarr src gnome org>
- To: svn-commits-list gnome org
- Subject: [seed] xml: Expose xml._nodeProto
- Date: Tue, 12 May 2009 15:15:15 -0400 (EDT)
commit bb30aa1ad3847b0254b01e18fa83660ef4bbc20d
Author: Robert Carr <racarr svn gnome org>
Date: Tue May 12 15:04:31 2009 -0400
xml: Expose xml._nodeProto
---
modules/libxml/libxml.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/modules/libxml/libxml.c b/modules/libxml/libxml.c
index 8ad584d..a780512 100644
--- a/modules/libxml/libxml.c
+++ b/modules/libxml/libxml.c
@@ -247,7 +247,7 @@ seed_xml_node_init (SeedContext ctx,
SeedObject object)
{
xmlNodePtr node = XML_NODE_PRIV (object);
- if (node->doc->_private)
+ if (node && node->doc->_private)
seed_value_protect (ctx, node->doc->_private);
}
@@ -255,6 +255,8 @@ static void
seed_xml_node_finalize (SeedObject object)
{
xmlNodePtr node = XML_NODE_PRIV (object);
+ if (!node)
+ return;
node->_private = NULL;
// This might be invalid.
if (node->doc->_private)
@@ -470,7 +472,13 @@ seed_libxml_define_stuff ()
seed_create_function (eng->context, "parseFile",
(SeedFunctionCallback) seed_xml_parse_file,
namespace_ref);
-
+
+ node_proto = seed_object_get_prototype (eng->context,
+ seed_make_object (eng->context,
+ xml_node_class,
+ NULL));
+ seed_make_object (eng->context, xml_node_class, NULL);
+ seed_object_set_property (eng->context, namespace_ref, "_nodeProto", node_proto);
seed_simple_evaluate (eng->context, "imports.extensions.xml", NULL);
}
@@ -479,6 +487,7 @@ seed_module_init(SeedEngine *local_eng)
{
eng = local_eng;
namespace_ref = seed_make_object (eng->context, NULL, NULL);
+ seed_value_protect (eng->context, namespace_ref);
seed_libxml_define_stuff();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]