[macruby-changes] [4466] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Wed Aug 25 15:21:54 PDT 2010
Revision: 4466
http://trac.macosforge.org/projects/ruby/changeset/4466
Author: lsansonetti at apple.com
Date: 2010-08-25 15:21:53 -0700 (Wed, 25 Aug 2010)
Log Message:
-----------
fixed a bug in the BridgeSupport parser when dealing with circular dependencies + minor bug fixes
Modified Paths:
--------------
MacRuby/trunk/bridgesupport.cpp
MacRuby/trunk/bs.c
Modified: MacRuby/trunk/bridgesupport.cpp
===================================================================
--- MacRuby/trunk/bridgesupport.cpp 2010-08-25 20:56:08 UTC (rev 4465)
+++ MacRuby/trunk/bridgesupport.cpp 2010-08-25 22:21:53 UTC (rev 4466)
@@ -1007,8 +1007,8 @@
(const void *)name, NULL)) {
VALUE val = strchr(bs_enum->value, '.') != NULL
- ? rb_float_new(rb_cstr_to_dbl(bs_enum->value, 1))
- : rb_cstr_to_inum(bs_enum->value, 10, 1);
+ ? rb_float_new(rb_cstr_to_dbl(bs_enum->value, 0))
+ : rb_cstr_to_inum(bs_enum->value, 10, 0);
CFDictionarySetValue(rb_cObject_dict, (const void *)name,
(const void *)val);
}
Modified: MacRuby/trunk/bs.c
===================================================================
--- MacRuby/trunk/bs.c 2010-08-25 20:56:08 UTC (rev 4465)
+++ MacRuby/trunk/bs.c 2010-08-25 22:21:53 UTC (rev 4466)
@@ -464,6 +464,8 @@
}
}
+ CFArrayAppendValue(parser->loaded_paths, cf_path);
+
//printf("parsing %s\n", path);
#define BAIL(fmt, args...) \
@@ -556,6 +558,8 @@
depends_on_path = get_attribute(reader, "path");
CHECK_ATTRIBUTE(depends_on_path, "path");
+
+//printf("depends of %s\n", depends_on_path);
bs_path_found = bs_find_path(depends_on_path, bs_path,
sizeof bs_path);
@@ -734,7 +738,6 @@
bs_element_cftype_t *bs_cftype;
char *cftype_name;
char *cftype_type;
- char *cftype_gettypeid_func_name;
cftype_name = get_attribute(reader, "name");
CHECK_ATTRIBUTE(cftype_name, "name");
@@ -748,6 +751,11 @@
bs_cftype->name = cftype_name;
bs_cftype->type = cftype_type;
+#if 1
+ /* the type_id field isn't used in MacRuby */
+ bs_cftype->type_id = 0;
+#else
+ char *cftype_gettypeid_func_name;
cftype_gettypeid_func_name = get_attribute(reader, "gettypeid_func");
if (cftype_gettypeid_func_name != NULL) {
void *sym;
@@ -765,6 +773,7 @@
else {
bs_cftype->type_id = 0;
}
+#endif
bs_cftype->tollfree = get_attribute(reader, "tollfree");
@@ -1249,8 +1258,16 @@
xmlFreeTextReader(reader);
- if (success) {
- CFArrayAppendValue(parser->loaded_paths, cf_path);
+ if (!success) {
+ for (unsigned i = 0, count = CFArrayGetCount(parser->loaded_paths);
+ i < count; i++) {
+ CFStringRef s = CFArrayGetValueAtIndex(parser->loaded_paths, i);
+ if (CFStringCompare(cf_path, s, kCFCompareCaseInsensitive)
+ == kCFCompareEqualTo) {
+ CFArrayRemoveValueAtIndex(parser->loaded_paths, i);
+ break;
+ }
+ }
}
CFRelease(cf_path);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100825/2c443228/attachment-0001.html>
More information about the macruby-changes
mailing list