On Sat, 2019-05-04 at 09:47 +0430, Vahid Bashiri via dia-list wrote: > Hi all > I made a skim of file "diagram.c" and in the > function diagram_selected_break_external there are little things that > might lead to erroneous behavior in case that multiple objects > connected to single connection point. I am not sure about it being a > bug so I am posting here in case someone take a closer look. > - line 708 "break; /* Not connected */" > after finding first unconnected object it doesn't go on with other > objects connected to that CP. > I think a "continue" might solve the problem. > -line 750 "list = g_list_next(list);" > need to run only if the previous "if" statement doesn't run because > we modify the list with > g_list_previous inside that "if" statement and the g_list_next > will result in skipping some objects on the list. It looks like an > "else" might solve the problem.
I'm not completely sure what your saying here and GitLab would be a
better venue, but here goes
You seem to be concerned we are breaking out of a loop to soon, but I
don't thing we do:
[...]
698 list = dia->data->selected;
699 while (list != NULL) { <- I think this is the
loop you think we are breaking out of, which would be bad
700 obj = (DiaObject *)list->data;
701
702 /* Break connections between this object and objects not
selected: */
703 for (i=0;i<obj->num_handles;i++) { <- But we are actually
breaking out of this loop
704 ConnectionPoint *con_point;
705 con_point = obj->handles[i]->connected_to;
706
707 if ( con_point == NULL )
708 break; /* Not connected */ <- Break works on both
for and while loops
709
710 other_obj = con_point->object; <- If we didn't break
this would SEGFAULT
[...]
717 }
[...]
750 list = g_list_next(list);
751 }
[...]
It's quite likely I've completely misunderstood your message though
> _______________________________________________dia-list mailing
> [email protected]
> https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.gnome.org%2Fmailman%2Flistinfo%2Fdia-list&data=02%7C01%7C%7Cc18b3cf0a95d4a0324e008d6d04fd8d3%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636925438687171491&sdata=Wwz5N0ki9NLThFUimnusrRzF%2BV7bDYDda3STp4aXQcM%3D&reserved=0
> FAQ at
> https://nam02.safelinks.protection.outlook.com/?url=http%3A%2F%2Flive.gnome.org%2FDia%2FFaq&data=02%7C01%7C%7Cc18b3cf0a95d4a0324e008d6d04fd8d3%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636925438687171491&sdata=ixAVJCHCXMcT3SJiFZNepwF%2FT8KajrWAY%2BR3Umser0E%3D&reserved=0
> Main page at
> https://nam02.safelinks.protection.outlook.com/?url=http%3A%2F%2Flive.gnome.org%2FDia&data=02%7C01%7C%7Cc18b3cf0a95d4a0324e008d6d04fd8d3%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636925438687171491&sdata=ZLBS6ZuZ%2BeQwt6uREvRznJKeiBFInJDZZjC1qLtAXME%3D&reserved=0
>
--
Zander Brown <[email protected]>
GNOME Design Tooling (Icon Preview)
Dia Diagram Editor
signature.asc
Description: This is a digitally signed message part
_______________________________________________ dia-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/dia-list FAQ at http://live.gnome.org/Dia/Faq Main page at http://live.gnome.org/Dia
