Some "forgotten" cleanups. Added a check for NULL in the constructor which avoids a crash in some cases.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9067 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2004-09-27 07:23:16 +00:00
parent b0881688c3
commit 6b06287720
+17 -12
View File
@@ -20,14 +20,15 @@
// WindowScreen commands // WindowScreen commands
#define WS_PROPOSE_MODE 0x00000102 #define WS_PROPOSE_MODE 0x00000102
#define WS_MOVE_DISPLAY 0x00000108 #define WS_MOVE_DISPLAY 0x00000108
#define WS_SET_FULLSCREEN 0x00000881
#define WS_GET_FRAMEBUFFER 0x00000eed #define WS_GET_FRAMEBUFFER 0x00000eed
#define WS_GET_ACCELERANT_NAME 0x00000ef4 #define WS_GET_ACCELERANT_NAME 0x00000ef4
#define WS_GET_DRIVER_NAME 0x00000ef5 #define WS_GET_DRIVER_NAME 0x00000ef5
#define WS_GET_DISPLAY_MODE 0x00000efd
#define WS_DISPLAY_UTILS 0x00000ef9 #define WS_DISPLAY_UTILS 0x00000ef9
#define WS_SET_LOCK_STATE 0x00000efb
#define WS_GET_DISPLAY_MODE 0x00000efd
#define WS_SWITCH_WORKSPACE 0x00000f26 #define WS_SWITCH_WORKSPACE 0x00000f26
#define WS_SET_PALETTE 0x00000f27 #define WS_SET_PALETTE 0x00000f27
#define WS_SET_FULLSCREEN 0x00000881
static const uint32 WS_SET_MOUSE_POSITION = 'Ismp'; static const uint32 WS_SET_MOUSE_POSITION = 'Ismp';
@@ -298,8 +299,10 @@ BWindowScreen::BWindowScreen(const char *title, uint32 space, status_t *error, b
uint32 attributes = 0; uint32 attributes = 0;
if (debug_enable) if (debug_enable)
attributes |= B_ENABLE_DEBUGGER; attributes |= B_ENABLE_DEBUGGER;
*error = InitData(space, attributes); status_t status = InitData(space, attributes);
if (error)
*error = status;
} }
@@ -310,7 +313,9 @@ BWindowScreen::BWindowScreen(const char *title, uint32 space, uint32 attributes,
B_CURRENT_WORKSPACE) B_CURRENT_WORKSPACE)
{ {
CALLED(); CALLED();
*error = InitData(space, attributes); status_t status = InitData(space, attributes);
if (error)
*error = status;
} }
@@ -747,8 +752,8 @@ BWindowScreen::InitData(uint32 space, uint32 attributes)
debug_first = true; debug_first = true;
debug_sem = create_sem(1, "WindowScreen debug sem"); debug_sem = create_sem(1, "WindowScreen debug sem");
old_space = (display_mode *)calloc(0x1, sizeof(display_mode)); old_space = (display_mode *)calloc(1, sizeof(display_mode));
new_space = (display_mode *)calloc(0x1, sizeof(display_mode)); new_space = (display_mode *)calloc(1, sizeof(display_mode));
screen.GetModeList(&mode_list, &mode_count); screen.GetModeList(&mode_list, &mode_count);
@@ -826,7 +831,7 @@ BWindowScreen::SetActiveState(int32 state)
be_app->ShowCursor(); be_app->ShowCursor();
if (activate_state) { if (activate_state) {
_BAppServerLink_ link; _BAppServerLink_ link;
link.fSession->swrite_l(0xF27); link.fSession->swrite_l(WS_SET_PALETTE);
link.fSession->swrite_l(screen_index); link.fSession->swrite_l(screen_index);
link.fSession->swrite_l(0); link.fSession->swrite_l(0);
link.fSession->swrite_l(255); link.fSession->swrite_l(255);
@@ -855,7 +860,7 @@ BWindowScreen::SetLockState(int32 state)
} }
_BAppServerLink_ link; _BAppServerLink_ link;
link.fSession->swrite_l(0x00000efb); link.fSession->swrite_l(WS_SET_LOCK_STATE);
link.fSession->swrite_l(screen_index); link.fSession->swrite_l(screen_index);
link.fSession->swrite_l(state); link.fSession->swrite_l(state);
link.fSession->swrite_l(server_token); link.fSession->swrite_l(server_token);
@@ -936,7 +941,7 @@ BWindowScreen::GetCardInfo()
card_info.flags = 0; card_info.flags = 0;
if (mode.flags & B_SCROLL) if (mode.flags & B_SCROLL)
card_info.flags = B_FRAME_BUFFER_CONTROL; card_info.flags |= B_FRAME_BUFFER_CONTROL;
if (mode.flags & B_PARALLEL_ACCESS) if (mode.flags & B_PARALLEL_ACCESS)
card_info.flags |= B_PARALLEL_BUFFER_ACCESS; card_info.flags |= B_PARALLEL_BUFFER_ACCESS;
@@ -1069,8 +1074,8 @@ BWindowScreen::InitClone()
// now get the symbol for GetAccelerantHook m_gah // now get the symbol for GetAccelerantHook m_gah
if (get_image_symbol(addon_image, "get_accelerant_hook", if (get_image_symbol(addon_image, "get_accelerant_hook",
B_SYMBOL_TYPE_ANY, (void **)&m_gah) < 0) B_SYMBOL_TYPE_ANY, (void **)&m_gah) < 0)
return B_ERROR; return B_ERROR;
// now use m_gah to get a pointer to the accelerant's clone accelerant // now use m_gah to get a pointer to the accelerant's clone accelerant
clone_accelerant clone = (clone_accelerant)m_gah(B_CLONE_ACCELERANT, 0); clone_accelerant clone = (clone_accelerant)m_gah(B_CLONE_ACCELERANT, 0);