Print is less badly broken. Read is less badly broken. GC is too aggressive.
This commit is contained in:
parent
22b0160a26
commit
63906fe817
19 changed files with 489 additions and 303 deletions
|
|
@ -56,15 +56,17 @@ struct pso_pointer make_exception( struct pso_pointer frame_pointer ) {
|
|||
|
||||
struct pso_pointer result = allocate( frame_pointer, EXCEPTIONTAG, 3 );
|
||||
|
||||
if ( !c_nilp( result ) && !exceptionp( result ) ) {
|
||||
if ( exceptionp( result ) ) {
|
||||
struct pso3 *object = ( struct pso3 * ) pointer_to_object( result );
|
||||
|
||||
object->payload.exception.message = inc_ref(message);
|
||||
object->payload.exception.message = inc_ref( message );
|
||||
object->payload.exception.stack =
|
||||
stackp( frame_pointer ) ? inc_ref(frame_pointer) : nil;
|
||||
stackp( frame_pointer ) ? inc_ref( frame_pointer ) : nil;
|
||||
object->payload.exception.meta = ( consp( meta )
|
||||
|| hashtabp( meta ) ) ? inc_ref(meta) : nil;
|
||||
object->payload.exception.cause = exceptionp( cause ) ? inc_ref(cause) : nil;
|
||||
|| hashtabp( meta ) ) ?
|
||||
inc_ref( meta ) : nil;
|
||||
object->payload.exception.cause =
|
||||
exceptionp( cause ) ? inc_ref( cause ) : nil;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue