# Test for #23489: memory leak in TNaming_NamedShape destructor pload OCAF # take some big file to be loaded set file [locate_data_file Bottom.brep] set listmem {} for {set i 1} {$i < 10} {incr i} { # load big shape restore $file a # add shape to new OCAF document NewDocument D MDTV-Standard # add shape to document SetShape D 0:1 a # Note: if ForgetAll or Undo is called here, memory is correctly freed! # ForgetAll D 0:1 # close document Close D # unload shape (replace by small one) vertex a 0 0 0 # check memory usage (with tolerance equal to half page size) lappend listmem [expr [meminfo w] / 1024] if { [checktrend $listmem 0 256 "Memory leak detected"] } { puts "No memory leak, $i iterations" break } }