> The refcounting logic is unsafe as written; correct refcounting in the
> multithreaded case can be subtle and not something I would recommend
> attempting on your own.
Note that I didn't change any of this code - I simply moved it around. I intentionally kept the branch API stable. I don't think it would be a good idea to block the merging of this branch because of this issue.
I agree however, that we could just as well use full GObjects everywhere we use custom boxed types (DatabaseInfo, DocumentInfo, and StructField as far as I recall). But we can work on this in master now that Rodrigo branched off the 0.5 series.
I have a bunch of API-breaking comments as well, but we should probably discuss such matters on the mailing list.
> The refcounting logic is unsafe as written; correct refcounting in the
> multithreaded case can be subtle and not something I would recommend
> attempting on your own.
Note that I didn't change any of this code - I simply moved it around. I intentionally kept the branch API stable. I don't think it would be a good idea to block the merging of this branch because of this issue.
I agree however, that we could just as well use full GObjects everywhere we use custom boxed types (DatabaseInfo, DocumentInfo, and StructField as far as I recall). But we can work on this in master now that Rodrigo branched off the 0.5 series.
I have a bunch of API-breaking comments as well, but we should probably discuss such matters on the mailing list.