From: Joakim Jalap <joakim.jalap@fastmail.com>
To: emacs-devel@gnu.org
Subject: Overlay tree. Stuck again
Date: Thu, 12 Jan 2017 22:10:44 +0100 [thread overview]
Message-ID: <874m14rnl7.fsf@fastmail.com> (raw)
Hello Emacs Devs.
As ever, I've been hacking on the overlay tree branch. Now it's turned
sour again though.
For those it may concern this is the problem: The overlays in the tree
are ordered first by their start position, if that is the same we look
at the end position, if that is also equal we order by memory address.
However the nodes can be updated "externally" from the trees point of
view. For example if there is a delete in the buffer those overlays
which were in the deleted portion of the buffer will now be crowded at
the from_char of the delete. But those could have any address, so they
will probably be out of order. The problem is how to get them in order
again.
As far as I've gotten is to gather all the affected nodes (which I think
are only those of length zero which start (and end) at from_char) into
an array and sort that. But I can't figure out how to get them into the
tree again while keeping all the pointers correct.
My feeble attempts can be seen at
https://github.com/jockej/emacs-mirror1, branch arne-without-parent.
I've been wrestling with this for a while now. I'm starting to think
this whole approach is... not so good. But if anyone has a brilliant
idea I'd be glad to hear it :)
Happy hacking!
-- Joakim
next reply other threads:[~2017-01-12 21:10 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-12 21:10 Joakim Jalap [this message]
2017-01-13 8:12 ` Overlay tree. Stuck again Eli Zaretskii
2017-01-13 11:56 ` Joakim Jalap
2017-01-13 13:22 ` Fabrice Popineau
2017-01-13 14:20 ` Joakim Jalap
2017-01-13 13:54 ` Eli Zaretskii
2017-01-13 14:26 ` Joakim Jalap
2017-02-03 8:27 ` Andreas Politz
2017-02-03 8:28 ` Andreas Politz
2017-02-03 12:35 ` Joakim Jalap
2017-02-03 8:28 ` Andreas Politz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874m14rnl7.fsf@fastmail.com \
--to=joakim.jalap@fastmail.com \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).