After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 760307 - Warnings and lock ups when using "copy to"
Warnings and lock ups when using "copy to"
Status: RESOLVED FIXED
Product: nautilus
Classification: Core
Component: Cut Copy Paste Undo
3.18.x
Other Linux
: Normal normal
: 3.18
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-01-08 09:00 UTC by Sebastien Bacher
Modified: 2016-03-09 16:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
placesview: avoid symbol conflicts (79.75 KB, patch)
2016-02-22 12:22 UTC, Carlos Soriano
committed Details | Review
placesview: auto generate code (106.17 KB, patch)
2016-03-09 16:14 UTC, Carlos Soriano
committed Details | Review

Description Sebastien Bacher 2016-01-08 09:00:46 UTC
Using nautilus 3.18.4
- mount another partition
- go to a directory on the partition you just mounted
- select a file and use "copy to"

those warnings are printed

"  GLib-GObject-WARNING **: cannot register existing type 'GtkPlacesView'

 GLib-GObject-WARNING **: cannot add private field to invalid (non-instantiatable) type '<invalid>'

 g_once_init_leave: assertion 'result != 0' failed"

- try to do the same on another file

-> nautilus locks up
Comment 1 Carlos Soriano 2016-02-22 12:22:38 UTC
Created attachment 321828 [details] [review]
placesview: avoid symbol conflicts

Copy pasting the code from gtk+ has the downside that symbol conflicts
occur when the file chooser is shown, for example, when performing a
move to action.

Only way to dealing with it is either make this public on gtk+ or
renaming the types. We don't want to make it public yet, so the only
option for now is renaming.

Is a tedious task and I hope it won't be needed in the future.
For now, rename the types manually.
Comment 2 Carlos Soriano 2016-02-24 10:23:57 UTC
Attachment 321828 [details] pushed as 82a27ab - placesview: avoid symbol conflicts
Comment 3 Carlos Soriano 2016-03-09 16:14:42 UTC
Created attachment 323520 [details] [review]
placesview: auto generate code

We have been manually copying the code inside nautilus since we
introduced the places view.

It has been a pain to maintain, mostly because we needed to remove the
bits that only work inside gtk+ and instead either remove them or make
a substitution. But that was doable.

However, it reached a new level when we realized that we use the file
chooser inside nautilus, for the "move to" and "copy to" actions, which
create makes symbols clash. So we needed to rename all the symbols in
those files.

Instead of making it manually, create a shell script that fetches gtk+
repository and make the appropriate substitutions, deletions and what
not.
Comment 4 Carlos Soriano 2016-03-09 16:18:08 UTC
Comment on attachment 323520 [details] [review]
placesview: auto generate code

This uses automatic conversion.

Attachment 323520 [details] pushed as 0fec6f2 - placesview: auto generate code