aferrero2707 / PhotoFlow

A fully non-destructive photo retouching program providing a complete layer-based workflow including RAW image development.
http://aferrero2707.github.io/PhotoFlow
GNU General Public License v3.0
314 stars 36 forks source link

crash opening Lab_curves.pfi #6

Open hfiguiere opened 10 years ago

hfiguiere commented 10 years ago

Here is what I did.

$ gdb --args ./src/photoflow TestImages/Lab_curves.pfi 

And it crashed. See the gdb output

GNU gdb (GDB) Fedora 7.6.50.20130731-19.fc20
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
..
Reading symbols from /home/hub/source/PhotoFlow/src/photoflow...done.
(gdb) r
Starting program: /home/hub/source/PhotoFlow/src/photoflow TestImages/Lab_curves.pfi
gobject.pyc: gdb was not built with custom backtrace support, disabling.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Missing separate debuginfo for /lib64/libgraphite2.so.3
Try: yum --enablerepo='*debug*' install /usr/lib/debug/.build-id/90/82e46860379c3dff9004eb8c9834e50afbb528.debug
[New Thread 0x7fffefb3c700 (LWP 9560)]
Layer "background" extra inputs: 
PF::pf_file_loader(): creating operation of type imageread
PF::pf_file_loader(): operation created.
PF::pf_file_loader(): setting property "blend_mode" to "PF_BLEND_PASSTHROUGH"
PF::PropertyBase::set_str(): setting property "blend_mode" to value "PF_BLEND_PASSTHROUGH"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "intensity" to "1"
PF::PropertyBase::set_str(): setting property "intensity" to value "1"
PF::pf_file_loader(): setting property "opacity" to "1"
PF::PropertyBase::set_str(): setting property "opacity" to value "1"
PF::pf_file_loader(): setting property "grey_target_channel" to "Grey"
PF::PropertyBase::set_str(): setting property "grey_target_channel" to value "Grey"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "rgb_target_channel" to "RGB"
PF::PropertyBase::set_str(): setting property "rgb_target_channel" to value "RGB"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "lab_target_channel" to "Lab"
PF::PropertyBase::set_str(): setting property "lab_target_channel" to value "Lab"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "cmyk_target_channel" to "CMYK"
PF::PropertyBase::set_str(): setting property "cmyk_target_channel" to value "CMYK"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "file_name" to "../testimages/lena512color.jpg"
PF::PropertyBase::set_str(): setting property "file_name" to value "../testimages/lena512color.jpg"
PF::PFWidget::init(): called for property "intensity" of layer "background"
PF::PFWidget::init(): called for property "opacity" of layer "background"
PF::PFWidget::init(): called for property "blend_mode" of layer "background"
PF::Selector::get_value(): current value="Passthrough"
PF::PFWidget::init(): called for property "grey_target_channel" of layer "background"
PF::Selector::get_value(): current value="Grey"
PF::PFWidget::init(): called for property "rgb_target_channel" of layer "background"
PF::Selector::get_value(): current value="RGB"
PF::PFWidget::init(): called for property "lab_target_channel" of layer "background"
PF::Selector::get_value(): current value="Lab"
PF::PFWidget::init(): called for property "cmyk_target_channel" of layer "background"
PF::Selector::get_value(): current value="CMYK"
OperationConfigDialog::update() for background called
"sublayers" end: containers_stack.size()=1
"sublayers" end: layers_stack.size()=1
"sublayers" end: containers_stack.size()=1
"sublayers" end: layers_stack.size()=1
"sublayers" end: containers_stack.size()=1
"sublayers" end: layers_stack.size()=1
"layer" end: layers_stack.size()=0
Layer "Lab Curves" extra inputs: 
PF::pf_file_loader(): creating operation of type blender
PF::pf_file_loader(): operation created.
PF::pf_file_loader(): setting property "blend_mode" to "PF_BLEND_PASSTHROUGH"
PF::PropertyBase::set_str(): setting property "blend_mode" to value "PF_BLEND_PASSTHROUGH"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "intensity" to "1"
PF::PropertyBase::set_str(): setting property "intensity" to value "1"
PF::pf_file_loader(): setting property "opacity" to "1"
PF::PropertyBase::set_str(): setting property "opacity" to value "1"
PF::pf_file_loader(): setting property "grey_target_channel" to "Grey"
PF::PropertyBase::set_str(): setting property "grey_target_channel" to value "Grey"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "rgb_target_channel" to "RGB"
PF::PropertyBase::set_str(): setting property "rgb_target_channel" to value "RGB"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "lab_target_channel" to "Lab"
PF::PropertyBase::set_str(): setting property "lab_target_channel" to value "Lab"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "cmyk_target_channel" to "CMYK"
PF::PropertyBase::set_str(): setting property "cmyk_target_channel" to value "CMYK"
PF::PropertyBase::from_stream(): is_enum()=1
PF::PFWidget::init(): called for property "intensity" of layer "Lab Curves"
PF::PFWidget::init(): called for property "opacity" of layer "Lab Curves"
PF::PFWidget::init(): called for property "blend_mode" of layer "Lab Curves"
PF::Selector::get_value(): current value="Passthrough"
PF::PFWidget::init(): called for property "grey_target_channel" of layer "Lab Curves"
PF::Selector::get_value(): current value="Grey"
PF::PFWidget::init(): called for property "rgb_target_channel" of layer "Lab Curves"
PF::Selector::get_value(): current value="RGB"
PF::PFWidget::init(): called for property "lab_target_channel" of layer "Lab Curves"
PF::Selector::get_value(): current value="Lab"
PF::PFWidget::init(): called for property "cmyk_target_channel" of layer "Lab Curves"
PF::Selector::get_value(): current value="CMYK"
OperationConfigDialog::update() for Lab Curves called
"sublayers" end: containers_stack.size()=1
"sublayers" end: layers_stack.size()=1
"sublayers" end: containers_stack.size()=1
"sublayers" end: layers_stack.size()=1
Layer "Lab conversion" extra inputs: 
PF::pf_file_loader(): creating operation of type convert2lab
PF::pf_file_loader(): operation created.
PF::pf_file_loader(): setting property "blend_mode" to "PF_BLEND_PASSTHROUGH"
PF::PropertyBase::set_str(): setting property "blend_mode" to value "PF_BLEND_PASSTHROUGH"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "intensity" to "1"
PF::PropertyBase::set_str(): setting property "intensity" to value "1"
PF::pf_file_loader(): setting property "opacity" to "1"
PF::PropertyBase::set_str(): setting property "opacity" to value "1"
PF::pf_file_loader(): setting property "grey_target_channel" to "Grey"
PF::PropertyBase::set_str(): setting property "grey_target_channel" to value "Grey"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "rgb_target_channel" to "RGB"
PF::PropertyBase::set_str(): setting property "rgb_target_channel" to value "RGB"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "lab_target_channel" to "Lab"
PF::PropertyBase::set_str(): setting property "lab_target_channel" to value "Lab"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "cmyk_target_channel" to "CMYK"
PF::PropertyBase::set_str(): setting property "cmyk_target_channel" to value "CMYK"
PF::PropertyBase::from_stream(): is_enum()=1
PF::PFWidget::init(): called for property "intensity" of layer "Lab conversion"
PF::PFWidget::init(): called for property "opacity" of layer "Lab conversion"
PF::PFWidget::init(): called for property "blend_mode" of layer "Lab conversion"
PF::Selector::get_value(): current value="Passthrough"
PF::PFWidget::init(): called for property "grey_target_channel" of layer "Lab conversion"
PF::Selector::get_value(): current value="Grey"
PF::PFWidget::init(): called for property "rgb_target_channel" of layer "Lab conversion"
PF::Selector::get_value(): current value="RGB"
PF::PFWidget::init(): called for property "lab_target_channel" of layer "Lab conversion"
PF::Selector::get_value(): current value="Lab"
PF::PFWidget::init(): called for property "cmyk_target_channel" of layer "Lab conversion"
PF::Selector::get_value(): current value="CMYK"
OperationConfigDialog::update() for Lab conversion called
"sublayers" end: containers_stack.size()=2
"sublayers" end: layers_stack.size()=2
"sublayers" end: containers_stack.size()=2
"sublayers" end: layers_stack.size()=2
"sublayers" end: containers_stack.size()=2
"sublayers" end: layers_stack.size()=2
"layer" end: layers_stack.size()=1
Layer "curves adjustment" extra inputs: 
PF::pf_file_loader(): creating operation of type curves
PF::pf_file_loader(): operation created.
PF::pf_file_loader(): setting property "blend_mode" to "PF_BLEND_PASSTHROUGH"
PF::PropertyBase::set_str(): setting property "blend_mode" to value "PF_BLEND_PASSTHROUGH"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "intensity" to "0.5"
PF::PropertyBase::set_str(): setting property "intensity" to value "0.5"
PF::pf_file_loader(): setting property "opacity" to "1"
PF::PropertyBase::set_str(): setting property "opacity" to value "1"
PF::pf_file_loader(): setting property "grey_target_channel" to "Grey"
PF::PropertyBase::set_str(): setting property "grey_target_channel" to value "Grey"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "rgb_target_channel" to "RGB"
PF::PropertyBase::set_str(): setting property "rgb_target_channel" to value "RGB"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "lab_target_channel" to "L"
PF::PropertyBase::set_str(): setting property "lab_target_channel" to value "L"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "cmyk_target_channel" to "CMYK"
PF::PropertyBase::set_str(): setting property "cmyk_target_channel" to value "CMYK"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "grey_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "grey_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "RGB_curve" to "4 0 0 0.26 0.1 0.75 0.9 1 1"
PF::PropertyBase::set_str(): setting property "RGB_curve" to value "4 0 0 0.26 0.1 0.75 0.9 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 0.26, 0.1 ): points.size()=1
PF::SplineCurve::add_point( 0.75, 0.9 ): points.size()=2
PF::SplineCurve::add_point( 1, 1 ): points.size()=3
PF::pf_file_loader(): setting property "R_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "R_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "G_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "G_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "B_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "B_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "L_curve" to "4 0 0 0.25 0.1 0.75 0.9 1 1"
PF::PropertyBase::set_str(): setting property "L_curve" to value "4 0 0 0.25 0.1 0.75 0.9 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 0.25, 0.1 ): points.size()=1
PF::SplineCurve::add_point( 0.75, 0.9 ): points.size()=2
PF::SplineCurve::add_point( 1, 1 ): points.size()=3
PF::pf_file_loader(): setting property "a_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "a_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "b_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "b_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "C_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "C_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "M_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "M_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "Y_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "Y_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "K_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "K_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "RGB_active_curve" to "RGB"
PF::PropertyBase::set_str(): setting property "RGB_active_curve" to value "RGB"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "Lab_active_curve" to "L"
PF::PropertyBase::set_str(): setting property "Lab_active_curve" to value "L"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "CMYK_active_curve" to "C"
PF::PropertyBase::set_str(): setting property "CMYK_active_curve" to value "C"
PF::PropertyBase::from_stream(): is_enum()=1
PF::PFWidget::init(): called for property "intensity" of layer "curves adjustment"
PF::PFWidget::init(): called for property "opacity" of layer "curves adjustment"
PF::PFWidget::init(): called for property "blend_mode" of layer "curves adjustment"
PF::Selector::get_value(): current value="Passthrough"
PF::PFWidget::init(): called for property "grey_target_channel" of layer "curves adjustment"
PF::Selector::get_value(): current value="Grey"
PF::PFWidget::init(): called for property "rgb_target_channel" of layer "curves adjustment"
PF::Selector::get_value(): current value="RGB"
PF::PFWidget::init(): called for property "lab_target_channel" of layer "curves adjustment"
PF::Selector::get_value(): current value="L"
PF::PFWidget::init(): called for property "cmyk_target_channel" of layer "curves adjustment"
PF::Selector::get_value(): current value="CMYK"
PF::PFWidget::init(): called for property "grey_curve" of layer "curves adjustment"
PF::PFWidget::init(): called for property "RGB_curve" of layer "curves adjustment"
PF::PFWidget::init(): called for property "R_curve" of layer "curves adjustment"
PF::PFWidget::init(): called for property "G_curve" of layer "curves adjustment"
PF::PFWidget::init(): called for property "B_curve" of layer "curves adjustment"
PF::PFWidget::init(): called for property "L_curve" of layer "curves adjustment"
PF::PFWidget::init(): called for property "a_curve" of layer "curves adjustment"
PF::PFWidget::init(): called for property "b_curve" of layer "curves adjustment"
CurvesConfigDialog::update() for curves adjustment called
OperationConfigDialog::update() for curves adjustment called
"sublayers" end: containers_stack.size()=2
"sublayers" end: layers_stack.size()=2
"sublayers" end: containers_stack.size()=2
"sublayers" end: layers_stack.size()=2
"sublayers" end: containers_stack.size()=2
"sublayers" end: layers_stack.size()=2
"layer" end: layers_stack.size()=1
Layer "Lab saturation" extra inputs: 
PF::pf_file_loader(): creating operation of type curves
PF::pf_file_loader(): operation created.
PF::pf_file_loader(): setting property "blend_mode" to "PF_BLEND_PASSTHROUGH"
PF::PropertyBase::set_str(): setting property "blend_mode" to value "PF_BLEND_PASSTHROUGH"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "intensity" to "0.3"
PF::PropertyBase::set_str(): setting property "intensity" to value "0.3"
PF::pf_file_loader(): setting property "opacity" to "1"
PF::PropertyBase::set_str(): setting property "opacity" to value "1"
PF::pf_file_loader(): setting property "grey_target_channel" to "Grey"
PF::PropertyBase::set_str(): setting property "grey_target_channel" to value "Grey"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "rgb_target_channel" to "RGB"
PF::PropertyBase::set_str(): setting property "rgb_target_channel" to value "RGB"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "lab_target_channel" to "Lab"
PF::PropertyBase::set_str(): setting property "lab_target_channel" to value "Lab"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "cmyk_target_channel" to "CMYK"
PF::PropertyBase::set_str(): setting property "cmyk_target_channel" to value "CMYK"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "grey_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "grey_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "RGB_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "RGB_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "R_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "R_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "G_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "G_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "B_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "B_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "L_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "L_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "a_curve" to "2 0.2 0 0.8 1"
PF::PropertyBase::set_str(): setting property "a_curve" to value "2 0.2 0 0.8 1"
PF::SplineCurve::add_point( 0.2, 0 ): points.size()=0
PF::SplineCurve::add_point( 0.8, 1 ): points.size()=1
PF::pf_file_loader(): setting property "b_curve" to "2 0.2 0 0.8 1"
PF::PropertyBase::set_str(): setting property "b_curve" to value "2 0.2 0 0.8 1"
PF::SplineCurve::add_point( 0.2, 0 ): points.size()=0
PF::SplineCurve::add_point( 0.8, 1 ): points.size()=1
PF::pf_file_loader(): setting property "C_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "C_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "M_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "M_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "Y_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "Y_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "K_curve" to "2 0 0 1 1"
PF::PropertyBase::set_str(): setting property "K_curve" to value "2 0 0 1 1"
PF::SplineCurve::add_point( 0, 0 ): points.size()=0
PF::SplineCurve::add_point( 1, 1 ): points.size()=1
PF::pf_file_loader(): setting property "RGB_active_curve" to "RGB"
PF::PropertyBase::set_str(): setting property "RGB_active_curve" to value "RGB"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "Lab_active_curve" to "L"
PF::PropertyBase::set_str(): setting property "Lab_active_curve" to value "L"
PF::PropertyBase::from_stream(): is_enum()=1
PF::pf_file_loader(): setting property "CMYK_active_curve" to "C"
PF::PropertyBase::set_str(): setting property "CMYK_active_curve" to value "C"
PF::PropertyBase::from_stream(): is_enum()=1
PF::PFWidget::init(): called for property "intensity" of layer "Lab saturation"
PF::PFWidget::init(): called for property "opacity" of layer "Lab saturation"
PF::PFWidget::init(): called for property "blend_mode" of layer "Lab saturation"
PF::Selector::get_value(): current value="Passthrough"
PF::PFWidget::init(): called for property "grey_target_channel" of layer "Lab saturation"
PF::Selector::get_value(): current value="Grey"
PF::PFWidget::init(): called for property "rgb_target_channel" of layer "Lab saturation"
PF::Selector::get_value(): current value="RGB"
PF::PFWidget::init(): called for property "lab_target_channel" of layer "Lab saturation"
PF::Selector::get_value(): current value="Lab"
PF::PFWidget::init(): called for property "cmyk_target_channel" of layer "Lab saturation"
PF::Selector::get_value(): current value="CMYK"
PF::PFWidget::init(): called for property "grey_curve" of layer "Lab saturation"
PF::PFWidget::init(): called for property "RGB_curve" of layer "Lab saturation"
PF::PFWidget::init(): called for property "R_curve" of layer "Lab saturation"
PF::PFWidget::init(): called for property "G_curve" of layer "Lab saturation"
PF::PFWidget::init(): called for property "B_curve" of layer "Lab saturation"
PF::PFWidget::init(): called for property "L_curve" of layer "Lab saturation"
PF::PFWidget::init(): called for property "a_curve" of layer "Lab saturation"
PF::PFWidget::init(): called for property "b_curve" of layer "Lab saturation"
CurvesConfigDialog::update() for Lab saturation called
OperationConfigDialog::update() for Lab saturation called
"sublayers" end: containers_stack.size()=2
"sublayers" end: layers_stack.size()=2
"sublayers" end: containers_stack.size()=2
"sublayers" end: layers_stack.size()=2
"sublayers" end: containers_stack.size()=2
"sublayers" end: layers_stack.size()=2
"layer" end: layers_stack.size()=1
"sublayers" end: containers_stack.size()=1
"sublayers" end: layers_stack.size()=1
"layer" end: layers_stack.size()=0
PF::Image::update_async(): called, rebuilding=0
PF::Image::update_async(): installing idle callback
PF::Image::update_async(): called, rebuilding=0
PF::Image::update_async(): installing idle callback
LayerWidget::on_switch_page( 0 ) called.
Selected layer id: -1
DrawingArea size: 895,568
PF::View::update(): sink #0 -> processing=0
PF::image_rebuild_callback(): pending=0
PF::LayerManager::rebuild_prepare(): layers.size()=2
PF::image_rebuild_callback(): updating view #0
PF::LayerManager::rebuild_chain(): rebuilding layer "background"
PF::LayerManager::rebuild_chain(): setting format for layer background to 2
Layer "background"  imap_layers.size()=0  omap_layers.size()=0
PF::PropertyBase::set_str(): setting property "intensity" to value "1"
PF::PropertyBase::set_str(): setting property "opacity" to value "1"
selected value=PF_BLEND_PASSTHROUGH
PF::PropertyBase::set_str(): setting property "blend_mode" to value "PF_BLEND_PASSTHROUGH"
PF::PropertyBase::from_stream(): is_enum()=1
selected value=Grey
PF::PropertyBase::set_str(): setting property "grey_target_channel" to value "Grey"
PF::PropertyBase::from_stream(): is_enum()=1
selected value=RGB
PF::PropertyBase::set_str(): setting property "rgb_target_channel" to value "RGB"
PF::PropertyBase::from_stream(): is_enum()=1
selected value=Lab
PF::PropertyBase::set_str(): setting property "lab_target_channel" to value "Lab"
PF::PropertyBase::from_stream(): is_enum()=1
selected value=CMYK
PF::PropertyBase::set_str(): setting property "cmyk_target_channel" to value "CMYK"
PF::PropertyBase::from_stream(): is_enum()=1
Building layer "background"...
WARNING: NULL image from layer "background"
... done.
OperationConfigDialog::update() for background called
PF::LayerManager::rebuild_chain(): rebuilding layer "Lab Curves"
PF::LayerManager::rebuild_chain(): setting format for layer Lab Curves to 2
Layer "Lab Curves"  imap_layers.size()=0  omap_layers.size()=0

Program received signal SIGSEGV, Segmentation fault.
Python Exception <type 'exceptions.IndexError'> list index out of range: 
0x00000000008392b4 in PF::LayerManager::rebuild_chain (this=0xfb1e18, view=0xfb4980, cs=PF::PF_COLORSPACE_RGB, width=100, height=100, list=std::list, previous_layer=0x0)
    at /home/hub/source/PhotoFlow/src/base/layermanager.cc:571
571                   l->sublayers, NULL );
Missing separate debuginfos, use: debuginfo-install ImageMagick-libs-6.8.6.3-4.fc20.x86_64 OpenEXR-libs-1.7.1-6.fc20.x86_64 adwaita-gtk3-theme-3.12.0-1.fc20.x86_64 at-spi2-atk-2.12.1-1.fc20.x86_64 at-spi2-core-2.12.0-2.fc20.x86_64 bzip2-libs-1.0.6-9.fc20.x86_64 cfitsio-3.350-2.fc20.x86_64 expat-2.1.0-7.fc20.x86_64 fftw-libs-double-3.3.4-1.fc20.x86_64 gvfs-1.20.1-1.fc20.x86_64 harfbuzz-0.9.27-1.fc20.x86_64 hdf5-1.8.11-6.fc20.x86_64 ilmbase-1.0.3-7.fc20.x86_64 jbigkit-libs-2.0-10.fc20.x86_64 lcms2-2.6-1.fc20.x86_64 libXau-1.0.8-2.fc20.x86_64 libXcursor-1.1.14-2.fc20.x86_64 libXi-1.7.2-2.fc20.x86_64 libXinerama-1.1.3-2.fc20.x86_64 libXrandr-1.4.1-2.fc20.x86_64 libXrender-0.9.8-2.fc20.x86_64 libXt-1.1.4-7.fc20.x86_64 libXxf86vm-1.1.3-2.fc20.x86_64 libbluray-0.5.0-2.fc20.x86_64 libexif-0.6.21-6.fc20.x86_64 libogg-1.3.0-6.fc20.x86_64 librsvg2-2.40.2-1.fc20.x86_64 libselinux-2.2.1-6.fc20.x86_64 libtiff-4.0.3-14.fc20.x86_64 libuuid-2.24.2-1.fc20.x86_64 libvorbis-1.3.4-1.fc20.x86_64 libwayland-client-1.4.0-1.fc20.x86_64 libwayland-cursor-1.4.0-1.fc20.x86_64 libwayland-server-1.4.0-1.fc20.x86_64 libwebp-0.3.1-3.fc20.x86_64 libxkbcommon-0.3.1-1.fc20.x86_64 libxml++-2.37.1-1.fc20.x86_64 matio-1.5.1-4.fc20.x86_64 openjpeg-libs-1.5.1-8.fc20.x86_64 openslide-3.4.0-1.fc20.x86_64 orc-0.4.18-1.fc20.x86_64 pcre-8.33-4.fc20.x86_64 pixman-0.30.0-3.fc20.x86_64 systemd-libs-208-16.fc20.x86_64 vips-7.38.5-2.fc20.x86_64 xz-libs-5.1.2-8alpha.fc20.x86_64
(gdb) where
Python Exception <type 'exceptions.IndexError'> list index out of range: 
#0  0x00000000008392b4 in PF::LayerManager::rebuild_chain (this=0xfb1e18, view=0xfb4980, cs=PF::PF_COLORSPACE_RGB, width=100, height=100, list=std::list, previous_layer=0x0)
    at /home/hub/source/PhotoFlow/src/base/layermanager.cc:571
#1  0x000000000083987a in PF::LayerManager::rebuild (this=0xfb1e18, view=0xfb4980, cs=PF::PF_COLORSPACE_RGB, width=100, height=100) at /home/hub/source/PhotoFlow/src/base/layermanager.cc:636
#2  0x000000000083c84e in PF::image_rebuild_callback (data=0xfb1e10) at /home/hub/source/PhotoFlow/src/base/image.cc:128
#3  0x00000037f4e49c3a in g_main_dispatch (context=0xd32c90) at gmain.c:3064
#4  g_main_context_dispatch (context=context@entry=0xd32c90) at gmain.c:3663
#5  0x00000037f4e49f88 in g_main_context_iterate (context=0xd32c90, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3734
#6  0x00000037f4e4a25a in g_main_loop_run (loop=0x11317e0) at gmain.c:3928
#7  0x00000033135b54e5 in gtk_main () at gtkmain.c:1192
#8  0x0000003315d3d99d in Gtk::Main::run (window=...) at main.cc:398
#9  0x000000000056a428 in main (argc=2, argv=0x7fffffffe018) at /home/hub/source/PhotoFlow/src/main.cc:83
(gdb) 
aferrero2707 commented 10 years ago

Oooppss! This one is actually the result of a bad input file specification in Lab_curves.pfi. I fixed the sample file in the TestImages folder and I took the opportunity to rename it as curves.pfi, since it is more an example of how the curves tool works in general in photoflow.

You should download the updated version of testimages.zip if you want to try it.

To see it at work, open the "curves.pfi" file and then double-click on the "RGB/Lab S-curve" layer: this will pop-up the corresponding configuration dialog. Now toggle the visibility of the "Lab conversion" layer on and off: you should see a different graph in the curves dialog depending whether the Lab conversion is performed or not. Moreover, you will see that the overall result is slightly different in the RGB and Lab cases (with a personal preference with the Lab processing, as it does not get oversaturated).

This shows two features of photoflow:

In any case, the handling of missing input image files needs definitely to be improved, as it should not lead to a segfault. I'll see how to fix that.

hfiguiere commented 10 years ago

It shouldn't crash anyway.

aferrero2707 commented 10 years ago

I totally agree... I'll keep the issue open until it gets fixed.