diff options
author | Dan Gudmundsson <[email protected]> | 2013-01-25 15:56:56 +0100 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2013-01-25 15:56:56 +0100 |
commit | 76648221ddada894b5442c490ea3d9e909320d86 (patch) | |
tree | de8016ed3c9cd40c1098d784ccdcacc0884b6d54 /lib/wx/c_src/wxe_driver.c | |
parent | 697e9178b8c9dc825e221f2750afac516478976a (diff) | |
parent | fd745d01d7efcb11af434acbdbdf2bac11d039c0 (diff) | |
download | otp-76648221ddada894b5442c490ea3d9e909320d86.tar.gz otp-76648221ddada894b5442c490ea3d9e909320d86.tar.bz2 otp-76648221ddada894b5442c490ea3d9e909320d86.zip |
Merge branch 'dgud/wx/depr-driver-if'
* dgud/wx/depr-driver-if:
Document howto build wxWidgets on mac
wx: Fix crash in glu tesselate
wx: Remove deprecated driver_send_term usage
wx: Removed wx internal event
Diffstat (limited to 'lib/wx/c_src/wxe_driver.c')
-rw-r--r-- | lib/wx/c_src/wxe_driver.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/wx/c_src/wxe_driver.c b/lib/wx/c_src/wxe_driver.c index d1ed252ec0..4d3aa577bf 100644 --- a/lib/wx/c_src/wxe_driver.c +++ b/lib/wx/c_src/wxe_driver.c @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2011. All Rights Reserved. + * Copyright Ericsson AB 2008-2013. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -100,7 +100,8 @@ int wxe_driver_load() return -1; } -ErlDrvPort WXE_DRV_PORT = 0; +ErlDrvPort WXE_DRV_PORT_HANDLE = 0; +ErlDrvTermData WXE_DRV_PORT = 0; static ErlDrvData wxe_driver_start(ErlDrvPort port, char *buff) @@ -114,17 +115,20 @@ wxe_driver_start(ErlDrvPort port, char *buff) fprintf(stderr, " Couldn't alloc mem\r\n"); return(ERL_DRV_ERROR_GENERAL); /* ENOMEM */ } else { + ErlDrvTermData term_port = driver_mk_port(port); set_port_control_flags(port, PORT_CONTROL_FLAG_BINARY); data->driver_data = NULL; data->bin = NULL; - data->port = port; + data->port_handle = port; + data->port = term_port; data->pdl = driver_pdl_create(port); - if(WXE_DRV_PORT == 0) { + if(WXE_DRV_PORT_HANDLE == 0) { for(; *buff != 32; buff++); buff++; erl_wx_privdir = strdup(buff); - WXE_DRV_PORT = port; + WXE_DRV_PORT_HANDLE = port; + WXE_DRV_PORT = term_port; wxe_master = data; if(!(start_native_gui(data) == 1)) return(ERL_DRV_ERROR_GENERAL); /* ENOMEM */ @@ -139,7 +143,7 @@ static void wxe_driver_stop(ErlDrvData handle) { wxe_data *sd = ((wxe_data *)handle); - if(sd->port != WXE_DRV_PORT) { + if(sd->port_handle != WXE_DRV_PORT_HANDLE) { // fprintf(stderr, "%s:%d: STOP \r\n", __FILE__,__LINE__); meta_command(DELETE_PORT,sd); free(handle); @@ -194,7 +198,7 @@ void wxe_process_died(ErlDrvData handle, ErlDrvMonitor *monitor) push_command(WXE_CB_RETURN,NULL,0,sd); /* ErlDrvTermData pid; */ -/* pid = driver_get_monitored_process(sd->port, monitor); */ +/* pid = driver_get_monitored_process(sd->port_handle, monitor); */ /* fprintf(stderr, "Process died %d \r\n", (int) pid); */ } @@ -210,7 +214,7 @@ standard_outputv(ErlDrvData drv_data, ErlIOVec* ev) binref = driver_alloc(sizeof(WXEBinRef)); binref->base = ev->iov[1].iov_base; binref->size = ev->iov[1].iov_len; - binref->from = driver_caller(sd->port); + binref->from = driver_caller(sd->port_handle); bin = ev->binv[1]; driver_binary_inc_refc(bin); /* Otherwise it could get deallocated */ binref->bin = bin; @@ -220,7 +224,7 @@ standard_outputv(ErlDrvData drv_data, ErlIOVec* ev) binref = driver_alloc(sizeof(WXEBinRef)); binref->base = NULL; binref->size = 0; - binref->from = driver_caller(sd->port); + binref->from = driver_caller(sd->port_handle); binref->bin = NULL; binref->next = sd->bin; sd->bin = binref; |