@@ -728,29 +728,26 @@ addToLibrary({
728728 * Passing a NULL callback function to a emscripten_set_socket_*_callback call
729729 * will deregister the callback registered for that Event.
730730 */
731- $_setNetworkCallback__deps : [ '$stackSave ' , '$stackRestore ' , '$stringToUTF8OnStack' ] ,
731+ $_setNetworkCallback__deps : [ '$withStackSave ' , '$callUserCallback ' , '$stringToUTF8OnStack' ] ,
732732 $_setNetworkCallback : ( event , userData , callback ) => {
733733 function _callback ( data ) {
734- try {
734+ callUserCallback ( ( ) => {
735735 if ( event === 'error' ) {
736- var sp = stackSave ( ) ;
737- var msg = stringToUTF8OnStack ( data [ 2 ] ) ;
738- { { { makeDynCall ( 'viiii' , 'callback' ) } } } ( data [ 0 ] , data [ 1 ] , msg , userData ) ;
739- stackRestore ( sp ) ;
736+ withStackSave ( ( ) => {
737+ var msg = stringToUTF8OnStack ( data [ 2 ] ) ;
738+ { { { makeDynCall ( 'viiii' , 'callback' ) } } } ( data [ 0 ] , data [ 1 ] , msg , userData ) ;
739+ } ) ;
740740 } else {
741741 { { { makeDynCall ( 'vii' , 'callback' ) } } } ( data , userData ) ;
742742 }
743- } catch ( e ) {
744- if ( ! ( e instanceof ExitStatus ) ) {
745- if ( e && typeof e == 'object' && e . stack ) err ( 'exception thrown: ' + [ e , e . stack ] ) ;
746- throw e ;
747- }
748- }
743+ } ) ;
749744 } ;
750745
751- // FIXME(sbc): This has no corresponding Pop so will currently keep the
752- // runtime alive indefinitely.
753- { { { runtimeKeepalivePush ( ) } } }
746+ if ( callback ) {
747+ { { { runtimeKeepalivePush ( ) } } }
748+ } else {
749+ { { { runtimeKeepalivePop ( ) } } }
750+ }
754751 SOCKFS . on ( event , callback ? _callback : null ) ;
755752 } ,
756753 emscripten_set_socket_error_callback__deps : [ '$_setNetworkCallback' ] ,
0 commit comments