<feed xmlns='http://www.w3.org/2005/Atom'>
<title>atril/backend/epub, branch v1.22.3</title>
<subtitle>MATE document viewer</subtitle>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/'/>
<entry>
<title>epub: allow to save epub documents</title>
<updated>2018-03-16T16:51:25+00:00</updated>
<author>
<name>raveit65</name>
<email>mate@raveit.de</email>
</author>
<published>2018-03-09T18:10:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=1f6278d8158b56707b412281d46e1ec06fe1a4fc'/>
<id>1f6278d8158b56707b412281d46e1ec06fe1a4fc</id>
<content type='text'>
inspired by:
https://github.com/linuxmint/xreader/commit/63a28f
https://github.com/linuxmint/xreader/issues/165
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
inspired by:
https://github.com/linuxmint/xreader/commit/63a28f
https://github.com/linuxmint/xreader/issues/165
</pre>
</div>
</content>
</entry>
<entry>
<title>epub:  fix loading epub thumbnails</title>
<updated>2018-03-16T16:51:25+00:00</updated>
<author>
<name>Mickael Albertus</name>
<email>mickael.albertus@gmail.com</email>
</author>
<published>2018-02-03T10:20:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=ea3dfb136d28635f874a5a2e3955da7f6e80d8d8'/>
<id>ea3dfb136d28635f874a5a2e3955da7f6e80d8d8</id>
<content type='text'>
origin commit:
https://github.com/linuxmint/xreader/commit/6ed0ee1

Note: origin commit causes some serious build warnings,
......fixed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
origin commit:
https://github.com/linuxmint/xreader/commit/6ed0ee1

Note: origin commit causes some serious build warnings,
......fixed.
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: make minizip support more BSD variants</title>
<updated>2018-01-16T12:07:18+00:00</updated>
<author>
<name>monsta</name>
<email>monsta@inbox.ru</email>
</author>
<published>2018-01-16T12:07:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=598ecb43a96e03b470c9e74b43dc1bc37f52bad5'/>
<id>598ecb43a96e03b470c9e74b43dc1bc37f52bad5</id>
<content type='text'>
closes https://github.com/mate-desktop/atril/issues/290 which has the original patch
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
closes https://github.com/mate-desktop/atril/issues/290 which has the original patch
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix crash for epubs when accessibility is enabled</title>
<updated>2015-12-17T01:47:17+00:00</updated>
<author>
<name>Andrey Gursky</name>
<email>andrey.gursky@e-mail.ua</email>
</author>
<published>2015-12-17T01:47:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=5a804cf0b43d5b852581534bec21317450b6a866'/>
<id>5a804cf0b43d5b852581534bec21317450b6a866</id>
<content type='text'>
Once epub support has been implemented, atril crashes with all epubs.
Backtrace for 1.10.2+repack1-1 (Debian Stretch):

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd26d2700 (LWP 22276)]
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in  ()
#1  0x00007ffff755914e in ev_job_page_data_run (job=0x9e3850 [EvJobPageData]) at ev-jobs.c:762
#2  0x00007ffff755a85a in ev_job_thread_proxy (job=0x9e3850 [EvJobPageData]) at ev-job-scheduler.c:184
#3  0x00007ffff755a85a in ev_job_thread_proxy (data=&lt;optimized out&gt;) at ev-job-scheduler.c:217
#4  0x00007ffff14e1955 in g_thread_proxy (data=0x7fff84002280) at /build/glib2.0-VKSJTv/glib2.0-2.46.1/./glib/gthread.c:778
#5  0x00007ffff08690a4 in start_thread (arg=0x7fffd26d2700) at pthread_create.c:309
#6  0x00007ffff059e06d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb)

It turns out it couldn't really work since one function pointer is
uninitialized. But nobody complained. Thus I investigated it further,
why it fails only for me. First, I tried a gtk3 version. And it works
properly, but the broken code is not hit at all. Due to the threaded
design, it was harder to figure out, why. Here is the code path:

--&gt;
ev_window_load_job_cb          (shell/ev-window.c) --&gt;
ev_document_model_set_document (libview/ev-document-model.c) --&gt;
ev_view_document_changed_cb    (libview/ev-view.c) --&gt;
setup_caches                   (libview/ev-view.c) --&gt;

        if (ev_view_is_a11y_enabled (view)) {
                ev_page_cache_set_flags();
        }

ev_page_cache_set_flags        (libview/ev-page-cache.c) --&gt;
ev_page_cache_set_page_range   (libview/ev-page-cache.c) --&gt;

        data-&gt;job = ev_job_page_data_new (cache-&gt;document, i, flags);
        ...
        ev_job_scheduler_push_job (data-&gt;job, EV_JOB_PRIORITY_NONE);

...

--&gt;
ev_job_thread_proxy            (libview/ev-job-scheduler.c) --&gt;
ev_job_page_data_run           (libview/ev-jobs.c) --&gt;
ev_document_links_get_links    (libdocument/ev-document-links.c) --&gt;

        EvDocumentLinksInterface *iface = EV_DOCUMENT_LINKS_GET_IFACE (document_links);
        return iface-&gt;get_links (document_links, page);

(get_links == NULL) --&gt; crash

As one can see it depends on the accessibility. And it is enabled on my
box.

It can be reproduced with
gsettings set org.mate.interface accessibility true
(mate logout and login)

Why the enabled accessibility is not discovered by the gtk3 version is
another story. My question [1] was motivated by this.

[1] https://github.com/mate-desktop/atril/issues/171
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Once epub support has been implemented, atril crashes with all epubs.
Backtrace for 1.10.2+repack1-1 (Debian Stretch):

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd26d2700 (LWP 22276)]
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in  ()
#1  0x00007ffff755914e in ev_job_page_data_run (job=0x9e3850 [EvJobPageData]) at ev-jobs.c:762
#2  0x00007ffff755a85a in ev_job_thread_proxy (job=0x9e3850 [EvJobPageData]) at ev-job-scheduler.c:184
#3  0x00007ffff755a85a in ev_job_thread_proxy (data=&lt;optimized out&gt;) at ev-job-scheduler.c:217
#4  0x00007ffff14e1955 in g_thread_proxy (data=0x7fff84002280) at /build/glib2.0-VKSJTv/glib2.0-2.46.1/./glib/gthread.c:778
#5  0x00007ffff08690a4 in start_thread (arg=0x7fffd26d2700) at pthread_create.c:309
#6  0x00007ffff059e06d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb)

It turns out it couldn't really work since one function pointer is
uninitialized. But nobody complained. Thus I investigated it further,
why it fails only for me. First, I tried a gtk3 version. And it works
properly, but the broken code is not hit at all. Due to the threaded
design, it was harder to figure out, why. Here is the code path:

--&gt;
ev_window_load_job_cb          (shell/ev-window.c) --&gt;
ev_document_model_set_document (libview/ev-document-model.c) --&gt;
ev_view_document_changed_cb    (libview/ev-view.c) --&gt;
setup_caches                   (libview/ev-view.c) --&gt;

        if (ev_view_is_a11y_enabled (view)) {
                ev_page_cache_set_flags();
        }

ev_page_cache_set_flags        (libview/ev-page-cache.c) --&gt;
ev_page_cache_set_page_range   (libview/ev-page-cache.c) --&gt;

        data-&gt;job = ev_job_page_data_new (cache-&gt;document, i, flags);
        ...
        ev_job_scheduler_push_job (data-&gt;job, EV_JOB_PRIORITY_NONE);

...

--&gt;
ev_job_thread_proxy            (libview/ev-job-scheduler.c) --&gt;
ev_job_page_data_run           (libview/ev-jobs.c) --&gt;
ev_document_links_get_links    (libdocument/ev-document-links.c) --&gt;

        EvDocumentLinksInterface *iface = EV_DOCUMENT_LINKS_GET_IFACE (document_links);
        return iface-&gt;get_links (document_links, page);

(get_links == NULL) --&gt; crash

As one can see it depends on the accessibility. And it is enabled on my
box.

It can be reproduced with
gsettings set org.mate.interface accessibility true
(mate logout and login)

Why the enabled accessibility is not discovered by the gtk3 version is
another story. My question [1] was motivated by this.

[1] https://github.com/mate-desktop/atril/issues/171
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: drop embedded MathJax in favor of using distro-packaged one</title>
<updated>2015-09-10T11:08:14+00:00</updated>
<author>
<name>monsta</name>
<email>monsta@inbox.ru</email>
</author>
<published>2015-09-10T11:08:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=d2f1cf64a6c026e79955966b85f9141e69a3404a'/>
<id>d2f1cf64a6c026e79955966b85f9141e69a3404a</id>
<content type='text'>
closes https://github.com/mate-desktop/atril/issues/158
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
closes https://github.com/mate-desktop/atril/issues/158
</pre>
</div>
</content>
</entry>
<entry>
<title>fix careless hack: don't do double-free, avoid weird crashes</title>
<updated>2015-01-22T08:04:53+00:00</updated>
<author>
<name>Monsta</name>
<email>monsta@inbox.ru</email>
</author>
<published>2015-01-21T12:25:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=e2f5dc440589e1c29e5ceae59ea785ff0e512dc7'/>
<id>e2f5dc440589e1c29e5ceae59ea785ff0e512dc7</id>
<content type='text'>
because backends manager frees that var already.

actually, adding ev_backends_manager_get_backends_dir to the public
API was still careless. backends manager and epub document jobs seem
to be in the different threads, and there's no mutex seen anywhere
around. luckily, what we have here is just a reading of a variable
that has been assigned only once (in backends_dir function), so it's
not as catastrophic as it would be if it was e.g. concurrent writing
without a mutex.

Closes https://github.com/mate-desktop/atril/pull/124
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
because backends manager frees that var already.

actually, adding ev_backends_manager_get_backends_dir to the public
API was still careless. backends manager and epub document jobs seem
to be in the different threads, and there's no mutex seen anywhere
around. luckily, what we have here is just a reading of a variable
that has been assigned only once (in backends_dir function), so it's
not as catastrophic as it would be if it was e.g. concurrent writing
without a mutex.

Closes https://github.com/mate-desktop/atril/pull/124
</pre>
</div>
</content>
</entry>
<entry>
<title>epub: Fix some typos</title>
<updated>2014-12-29T12:37:46+00:00</updated>
<author>
<name>infirit</name>
<email>infirit@gmail.com</email>
</author>
<published>2014-12-29T12:37:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=c330e38212140a008e77a58bba46af73635e706c'/>
<id>c330e38212140a008e77a58bba46af73635e706c</id>
<content type='text'>
Thanks to tibbi &lt;tibbbi2@gmail.com&gt; for spotting them.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Thanks to tibbi &lt;tibbbi2@gmail.com&gt; for spotting them.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix some more leaks and stuff</title>
<updated>2014-12-10T01:37:54+00:00</updated>
<author>
<name>Monsta</name>
<email>monsta@inbox.ru</email>
</author>
<published>2014-12-09T08:54:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=de5565a08db58d9ce48a3a3c74e21120965dd5f0'/>
<id>de5565a08db58d9ce48a3a3c74e21120965dd5f0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>don't leak memory</title>
<updated>2014-12-08T20:46:03+00:00</updated>
<author>
<name>Monsta</name>
<email>monsta@inbox.ru</email>
</author>
<published>2014-11-24T13:59:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=ee69f4fc0c077a676c1f975d67615887996981d5'/>
<id>ee69f4fc0c077a676c1f975d67615887996981d5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>removed some code that had no effect</title>
<updated>2014-12-08T20:46:03+00:00</updated>
<author>
<name>monsta</name>
<email>monsta@inbox.ru</email>
</author>
<published>2014-11-25T18:34:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/atril/commit/?id=3c712b1b86425d051f4e51b8fc457e9f8b2b7384'/>
<id>3c712b1b86425d051f4e51b8fc457e9f8b2b7384</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
