Re: custom model rows-reordered marshal



Kevin Ryde wrote:
With a perl custom treemodel and a perl connected rows-reordered signal,
there seems to be a gremlin in the way $model->rows_reordered reaches
the signal handler.  [...

I wonder if it might be something like

      * xs/GtkTreeModel.xs (gtk2perl_tree_model_rows_reordered_marshal):
      Call gtk_tree_model_iter_n_children before building the stack, in case
      it's a Perl class and calls out to ITER_N_CHILDREN.  This fixes
      clobbering of instance and treepath args to a Perl rows-reordered
      handler connected on a Perl model.
      * t/GtkTreeModelIface.t: Exercise rows-reordered marshalling.

Yeah, I think you're right.  When we call out to
gtk_tree_model_iter_n_children and thus eventually ITER_N_CHILDREN, our local
stack *pointer* is not modified (since it's local), but the actual stack
contents are, and this is what you saw.

Committed to both branches.  Thanks!  (Unfortunately, I didn't see the
ChangeLog entry you wrote up early enough to use it for the commit.  Sorry.)

-- 
Bye,
-Torsten



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]