1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 19:50:24 +02:00

Remove the "has finalizer?" bit from pointer objects.

* libguile/foreign.h (SCM_POINTER_HAS_FINALIZER): Remove.

* libguile/foreign.c (scm_from_pointer): Store nothing more than
  `scm_tc7_pointer' in the type slot.
This commit is contained in:
Ludovic Courtès 2011-01-30 22:05:21 +01:00
parent 1f4f7674bc
commit 690a0112e5
2 changed files with 2 additions and 7 deletions

View file

@ -133,10 +133,7 @@ scm_from_pointer (void *ptr, scm_t_pointer_finalizer finalizer)
ret = null_pointer; ret = null_pointer;
else else
{ {
scm_t_bits type; ret = scm_cell (scm_tc7_pointer, (scm_t_bits) ptr);
type = scm_tc7_pointer | (finalizer ? (1 << 16UL) : 0UL);
ret = scm_cell (type, (scm_t_bits) ptr);
if (finalizer) if (finalizer)
{ {

View file

@ -1,7 +1,7 @@
#ifndef SCM_FOREIGN_H #ifndef SCM_FOREIGN_H
#define SCM_FOREIGN_H #define SCM_FOREIGN_H
/* Copyright (C) 2010 Free Software Foundation, Inc. /* Copyright (C) 2010, 2011 Free Software Foundation, Inc.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License * modify it under the terms of the GNU Lesser General Public License
@ -55,8 +55,6 @@ typedef void (*scm_t_pointer_finalizer) (void *);
SCM_MAKE_VALIDATE (pos, x, POINTER_P) SCM_MAKE_VALIDATE (pos, x, POINTER_P)
#define SCM_POINTER_VALUE(x) \ #define SCM_POINTER_VALUE(x) \
((void *) SCM_CELL_WORD_1 (x)) ((void *) SCM_CELL_WORD_1 (x))
#define SCM_POINTER_HAS_FINALIZER(x) \
((SCM_CELL_WORD_0 (x) >> 16) & 0x1)
SCM_API SCM scm_from_pointer (void *, scm_t_pointer_finalizer); SCM_API SCM scm_from_pointer (void *, scm_t_pointer_finalizer);