| 1 |
#DPATCHLEVEL=0
|
| 2 |
--- qtruby/ChangeLog (.../tags/KDE/3.5.0/kdebindings) (revision 486318)
|
| 3 |
+++ qtruby/ChangeLog (.../branches/KDE/3.5/kdebindings) (revision 486318)
|
| 4 |
@@ -1,3 +1,19 @@
|
| 5 |
+2005-12-06 Richard Dale <Richard_Dale@tipitina.demon.co.uk>
|
| 6 |
+
|
| 7 |
+ * QtRuby didn't work with versions of ruby > 1.8.3, as it didn't call
|
| 8 |
+ initialize methods correctly. It used the rb_respond_to() method
|
| 9 |
+ to check it a newly created qt instance responded to :initialize.
|
| 10 |
+ However, in newer versions of ruby rb_responds_to() ignores
|
| 11 |
+ private methods such as initialize(). The solution was to just remove
|
| 12 |
+ the test, as it was redundant anyway.
|
| 13 |
+ * Fixes problem reported by Hans Fugel and Caleb Tennis.
|
| 14 |
+
|
| 15 |
+2005-11-21 Richard Dale <Richard_Dale@tipitina.demon.co.uk>
|
| 16 |
+
|
| 17 |
+ * When dispose() was used to delete a ruby instance, the mapping between
|
| 18 |
+ the C++ ptr and corresponding ruby instance was not being removed, and
|
| 19 |
+ this caused a crash. Fixes problem reported by Christopher Chan-Nui.
|
| 20 |
+
|
| 21 |
2005-11-04 Richard Dale <Richard_Dale@tipitina.demon.co.uk>
|
| 22 |
|
| 23 |
* 'signed int&' types were not being matched or marshalled correctly
|
| 24 |
--- qtruby/rubylib/qtruby/Qt.cpp (.../tags/KDE/3.5.0/kdebindings) (revision 486318)
|
| 25 |
+++ qtruby/rubylib/qtruby/Qt.cpp (.../branches/KDE/3.5/kdebindings) (revision 486318)
|
| 26 |
@@ -1563,10 +1563,7 @@
|
| 27 |
}
|
| 28 |
|
| 29 |
VALUE result = rb_funcall2(qt_internal_module, rb_intern("try_initialize"), argc+1, temp_stack);
|
| 30 |
-
|
| 31 |
- if (rb_respond_to(result, rb_intern("initialize")) != 0) {
|
| 32 |
rb_obj_call_init(result, argc, argv);
|
| 33 |
- }
|
| 34 |
|
| 35 |
free(temp_stack);
|
| 36 |
return result;
|
| 37 |
@@ -2098,8 +2095,13 @@
|
| 38 |
{
|
| 39 |
smokeruby_object *o = value_obj_info(self);
|
| 40 |
if(!o || !o->ptr) { return Qnil; }
|
| 41 |
+
|
| 42 |
+ const char *className = o->smoke->classes[o->classId].className;
|
| 43 |
+ if(do_debug & qtdb_gc) printf("Deleting (%s*)%p\n", className, o->ptr);
|
| 44 |
|
| 45 |
- const char *className = o->smoke->classes[o->classId].className;
|
| 46 |
+ unmapPointer(o, o->classId, 0);
|
| 47 |
+ object_count--;
|
| 48 |
+
|
| 49 |
char *methodName = new char[strlen(className) + 2];
|
| 50 |
methodName[0] = '~';
|
| 51 |
strcpy(methodName + 1, className);
|