@@ -467,15 +467,12 @@ static int module_in_worklist(jl_module_t *mod)
467467
468468static int jl_prune_tcache (jl_typemap_entry_t * ml , void * closure )
469469{
470- if (!jl_is_leaf_type ((jl_value_t * )ml -> sig )) {
471- jl_value_t * ret = ml -> func .value ;
472- if (jl_is_lambda_info (ret )) {
473- jl_array_t * code = ((jl_lambda_info_t * )ret )-> code ;
474- if (jl_is_array (code ) && jl_array_len (code ) > 500 ) {
475- ml -> func .value = ((jl_lambda_info_t * )ret )-> rettype ;
476- jl_gc_wb (ml , ml -> func .value );
477- }
478- }
470+ jl_value_t * ret = ml -> func .value ;
471+ if (jl_is_lambda_info (ret ) &&
472+ ((!jl_is_leaf_type ((jl_value_t * )ml -> sig ) && !((jl_lambda_info_t * )ret )-> inlineable ) ||
473+ ((jl_lambda_info_t * )ret )-> code == jl_nothing )) {
474+ ml -> func .value = ((jl_lambda_info_t * )ret )-> rettype ;
475+ jl_gc_wb (ml , ml -> func .value );
479476 }
480477 return 1 ;
481478}
@@ -1476,7 +1473,7 @@ static jl_value_t *jl_deserialize_value_(ios_t *s, jl_value_t *vtag, jl_value_t
14761473 NWORDS (sizeof (jl_lambda_info_t )));
14771474 if (usetable )
14781475 arraylist_push (& backref_list , li );
1479- li -> code = ( jl_array_t * ) jl_deserialize_value (s , ( jl_value_t * * ) & li -> code ); jl_gc_wb (li , li -> code );
1476+ li -> code = jl_deserialize_value (s , & li -> code ); jl_gc_wb (li , li -> code );
14801477 li -> slotnames = (jl_array_t * )jl_deserialize_value (s , (jl_value_t * * )& li -> slotnames ); jl_gc_wb (li , li -> slotnames );
14811478 li -> slottypes = jl_deserialize_value (s , & li -> slottypes ); jl_gc_wb (li , li -> slottypes );
14821479 li -> slotflags = (jl_array_t * )jl_deserialize_value (s , (jl_value_t * * )& li -> slotflags ); jl_gc_wb (li , li -> slotflags );
@@ -2076,6 +2073,7 @@ JL_DLLEXPORT jl_array_t *jl_compress_ast(jl_lambda_info_t *li, jl_array_t *ast)
20762073{
20772074 JL_LOCK (& dump_lock ); // Might GC
20782075 assert (jl_is_lambda_info (li ));
2076+ assert (jl_is_array (ast ));
20792077 DUMP_MODES last_mode = mode ;
20802078 mode = MODE_AST ;
20812079 ios_t dest ;
0 commit comments