Opened 6 years ago
Closed 5 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 , 6 years ago
| Attachment: | ScreenSaver-8118-debug-13-05-2014-10-04-27.report added |
|---|
comment:1 by , 6 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 , 6 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 , 6 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 , 6 years ago
It seems it happens here: we have a division by zero when the rect width and height are zero.
comment:5 by , 6 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 , 6 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 , 6 years ago
Please retest in >= hrev47223, the crash should be fixed.
The views are laid out before the preview starts.
comment:9 by , 6 years ago
| Blocking: | 10842 added |
|---|
follow-up: 12 comment:11 by , 6 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 , 6 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 , 6 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
comment:14 by , 6 years ago
| Resolution: | fixed |
|---|---|
| Status: | closed → reopened |
The fix only hides the issue. Affects many other screensavers (Gravity is an example).
comment:15 by , 6 years ago
| Owner: | changed from to |
|---|---|
| Status: | reopened → assigned |
comment:16 by , 5 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
All screensavers fixed now.



ScreenSaver crash dump