:orphan: # PetscObjectListRemoveReference Calls `PetscObjectDereference()` on an object in the list immediately but keeps a pointer to the object in the list. ## Synopsis ``` PetscErrorCode PetscObjectListRemoveReference(PetscObjectList *fl, const char name[]) ``` ## Input Parameters - ***fl -*** the object list - ***name -*** the name to use for the object ## Notes Use `PetscObjectListAdd`(`PetscObjectList`,const char name[],NULL) to truly remove the object from the list Use this routine ONLY if you know that the object referenced will remain in existence until the pointing object is destroyed ## Developer Note This is to handle some cases that otherwise would result in having circular references so reference counts never got to zero ## See Also `PetscObjectListDestroy()`, `PetscObjectListFind()`, `PetscObjectListDuplicate()`, `PetscObjectListReverseFind()`, `PetscObjectListDuplicate()`, `PetscObject`, `PetscObjectListAdd()` ## Level developer ## Location src/sys/objects/olist.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/objects/olist.c) [Index of all Sys routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)