Skip to content
This repository has been archived by the owner on May 25, 2020. It is now read-only.

Edje caching #14

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

Edje caching #14

wants to merge 6 commits into from

Conversation

zmike
Copy link
Collaborator

@zmike zmike commented Jul 2, 2019

This is the same series from phab with updates based on previous review

@Bluebugs

Mike Blumenkrantz added 2 commits June 28, 2019 15:27
this is an internal function which is never used

Differential Revision: https://phab.enlightenment.org/D9205
this simplifies the process of manipulating lists inside hashes with a
non-copied key

@feature

Differential Revision: https://phab.enlightenment.org/D9206
}
it = eina_hash_iterator_data_new(collect);
EINA_ITERATOR_FOREACH(it, l)
EINA_LIST_FOREACH(l, ll, eud)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can I get a block starting before the EINA_LIST_FOREACH?

}
it = eina_hash_iterator_data_new(ed->user_defined);
EINA_ITERATOR_FOREACH(it, l)
EINA_LIST_FOREACH(l, ll, eud)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get a block starting before the EINA_LIST_FOREACH?

EINA_LIST_FREE(eud->u.text_style.props, prop)
free(prop);
}
break;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That indentation is weird.

Mike Blumenkrantz added 4 commits July 5, 2019 09:03
this is where all user-added data (e.g., swallowed objects, table/box packs,
text strings) are stored. with this patch, it is now a hash by part name,
storing a list of user-defined data for that part

this simplifies a bit of code by deconstructing some list walks, and
should end up being slightly faster for large edje objects with lots of
user-defined data

ideally no functional changes

Differential Revision: https://phab.enlightenment.org/D9208
this was being stored as regular text when it was actually markup

@fix

Differential Revision: https://phab.enlightenment.org/D9209
… set

this adds explicit handling for things like:

efl_add(SOMECLASS, parent,
  efl_text_set(efl_added, "my text")
);

on edje-inheriting objects.

note that it's still impossible to do something like
efl_add(SOMECLASS, parent,
  efl_text_set(efl_part(efl_added, "somepart"), "my text")
);

also add a unit test to verify common behaviors

@feature

Differential Revision: https://phab.enlightenment.org/D9210
this only occurs when the same text parts don't exist in the new layout,
which is an extremely unlikely scenario

Differential Revision: https://phab.enlightenment.org/D9211
lauromoura pushed a commit to lauromoura/efl-tmp that referenced this pull request Nov 26, 2019
This reverts commit 2f676a6.

This causes segv's in edje_cc - i suspect the eet changes (or in combo
to how they are used in edje):

AddressSanitizer:DEADLYSIGNAL
=================================================================
==8991==ERROR: AddressSanitizer: SEGV on unknown address 0x000001010000 (pc 0xffff9f002604 bp 0xfffffa747700 sp 0xfffffa747700 T0)
==8991==The signal is caused by a READ memory access.
    #0 0xffff9f002600 in _eet_hash_gen ../src/lib/eet/eet_utils.c:25
    Enlightenment#1 0xffff9efdd024 in eet_dictionary_string_add ../src/lib/eet/eet_dictionary.c:103
    Enlightenment#2 0xffff9efbe324 in eet_data_put_string ../src/lib/eet/eet_data.c:849
    Enlightenment#3 0xffff9efc1c4c in eet_data_put_type ../src/lib/eet/eet_data.c:1427
    Enlightenment#4 0xffff9efd9128 in eet_data_put_unknown ../src/lib/eet/eet_data.c:4730
    Enlightenment#5 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
    Enlightenment#6 0xffff9efd5958 in eet_data_put_variant ../src/lib/eet/eet_data.c:4309
    Enlightenment#7 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
    Enlightenment#8 0xffff9efd9270 in eet_data_put_unknown ../src/lib/eet/eet_data.c:4739
    Enlightenment#9 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
    Enlightenment#10 0xffff9efd8ca0 in eet_data_put_array ../src/lib/eet/eet_data.c:4692
    Enlightenment#11 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
    Enlightenment#12 0xffff9efc7768 in eet_data_write_cipher ../src/lib/eet/eet_data.c:2403
    Enlightenment#13 0xffff9efc78a4 in eet_data_write ../src/lib/eet/eet_data.c:2420
    Enlightenment#14 0xaaaabb151dcc in data_thread_group ../src/bin/edje/edje_cc_out.c:2045
    Enlightenment#15 0xaaaabb152130 in data_write_groups ../src/bin/edje/edje_cc_out.c:2086
    Enlightenment#16 0xaaaabb157734 in data_write ../src/bin/edje/edje_cc_out.c:2866
    Enlightenment#17 0xaaaabb14122c in main ../src/bin/edje/edje_cc.c:456
    Enlightenment#18 0xffff9dbd92a0 in __libc_start_main (/usr/lib/aarch64-linux-gnu/libc.so.6+0x242a0)
    Enlightenment#19 0xaaaabb13ea00  (/home/raster/C/git/efl/build/src/bin/edje/edje_cc+0x38a00)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ../src/lib/eet/eet_utils.c:25 in _eet_hash_gen
==8991==ABORTING
Aborted (core dumped)

When compiling breaks... it's certainly time to revert ASAP :(
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants