Opened 11 years ago
Closed 10 years ago
#10832 closed bug (fixed)
[IFS] Divide error in IFSSaver::_Init(BRect)
Reported by: | dexterkidd | Owned by: | jessicah |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Add-Ons/Screen Savers | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | #10842 | |
Platform: | x86 |
Description (last modified by )
After I installed some Chinese fonts: simsun, microsoft yahei, wqy zenhei, wqy bitmapsong in /boot/system/non-packaged/data/fonts/ and change haiku's appearance and WebPositive's main font I could not start ScreenSaver preference. Every time I get a crash when I open ScreenSaver.
Attachments (1)
Change History (17)
by , 11 years ago
Attachment: | ScreenSaver-8118-debug-13-05-2014-10-04-27.report added |
---|
comment:1 by , 11 years ago
Component: | Preferences/ScreenSaver → Add-Ons/Screen Savers |
---|---|
Description: | modified (diff) |
Owner: | changed from | to
Status: | new → assigned |
Summary: | Can not open screensaver in preference,hrev47213 → [IFS] Divide error in IFSSaver::_Init(BRect) |
From the crash report it looks like it's IFS screensaver which cause the crash. Could you attach your /boot/home/config/settings/ScreenSaver_settings?
follow-up: 3 comment:2 by , 11 years ago
I've looked at the code, but don't understand where it would divide anything in IFSSaver::_Init(BRect). The IFS constructor would not be inlined either, I believe. And if something confuses the locking code, I would think the real bug is not where it crashes.
comment:3 by , 11 years ago
Replying to stippi:
I've looked at the code, but don't understand where it would divide anything in IFSSaver::_Init(BRect). The IFS constructor would not be inlined either, I believe. And if something confuses the locking code, I would think the real bug is not where it crashes.
It's actually crashing in the IFS constructor, its symbol simply isn't properly demangled (__3IFSG5BRect + 0x2d6
).
comment:4 by , 11 years ago
It seems it happens here: we have a division by zero when the rect width and height are zero.
comment:5 by , 11 years ago
Yes. And thanks! Should be fixed in hrev47221. Of course, this only fixes symptoms. The fact remains that the rect is invalid, I didn't investigate that. I looked over the code in IFS to make sure it works properly when exiting the constructor early. I'll leave the ticket open, since I didn't test the change, and would like more feedback on what happens now.
comment:6 by , 11 years ago
Owner: | changed from | to
---|
The rect is the bounds of the view passed to StartSaver. I guess the screensaver preview is started too early, before the view is layouted?
comment:8 by , 11 years ago
Please retest in >= hrev47223, the crash should be fixed.
The views are laid out before the preview starts.
comment:9 by , 11 years ago
Blocking: | 10842 added |
---|
follow-up: 12 comment:11 by , 11 years ago
It is fixed when Screensaver app is started with IFS previously selected but if Flurry is selected, starting ScreenSaver causes a very similar crash. I am not certain if it is the same. I have a debug from the crash. I will upload it if it looks the same.
comment:12 by , 11 years ago
Replying to HAL:
It is fixed when Screensaver app is started with IFS previously selected but if Flurry is selected, starting ScreenSaver causes a very similar crash. I am not certain if it is the same. I have a debug from the crash. I will upload it if it looks the same.
No I think this is a different bug: segment violation.
comment:13 by , 11 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:14 by , 10 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
The fix only hides the issue. Affects many other screensavers (Gravity is an example).
comment:15 by , 10 years ago
Owner: | changed from | to
---|---|
Status: | reopened → assigned |
comment:16 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
All screensavers fixed now.
ScreenSaver crash dump