servo / core-foundation-rs

Rust bindings to Core Foundation and other low level libraries on Mac OS X and iOS
Other
991 stars 216 forks source link

Panic on assert!(!result.is_null()) #644

Open Python3-8 opened 10 months ago

Python3-8 commented 10 months ago

I recently wrote this program which edits an image and copies it to the clipboard with the arboard crate. I noticed this issue, where I get an assertion error with images of certain dimensions: image This image (1030x693) causes the above error: image When my program tries to copy its edited version to the clipboard, it's 1030x1030. I'm sure that this is specific to dimensions, because the program finishes successfully with this image (1030x694): image I found this line to be the one causing this panic, and the worst part is, I can't even use std::panic::catch_unwind because arboard's Clipboard struct doesn't implement UnwindSafe. I would appreciate any help.

jrmuizel commented 10 months ago

You'll need to find out why the call to CGImageCreate is failing. It seems to work for me locally:

target/debug/sqframe -i 283549138-b31ee63e-c52c-4dd5-9e29-b71bfdbe9354.png`
Opened image from "283549138-b31ee63e-c52c-4dd5-9e29-b71bfdbe9354.png"
Decoded image
Creating blurred background...
Upscale: done
Square crop: done
Gaussian blur: done
Background created
Constructing final image...
Done!
Overwrite clipboard content with edited image? [y/n]: y
Edited image copied to clipboard!
Python3-8 commented 10 months ago

Hey, thanks for replying and I'm sorry for not replying for so long. I've been busy with school and have exams coming up. I'm completely new to Rust, and I've never used C, so I have no idea where to start to research this problem. Do you have any suggestions, or ideas for me?