|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/genam.h"#include "access/htup_details.h"#include "access/table.h"#include "access/xact.h"#include "catalog/catalog.h"#include "catalog/dependency.h"#include "catalog/heap.h"#include "catalog/index.h"#include "catalog/namespace.h"#include "catalog/objectaccess.h"#include "catalog/pg_am.h"#include "catalog/pg_amop.h"#include "catalog/pg_amproc.h"#include "catalog/pg_attrdef.h"#include "catalog/pg_authid.h"#include "catalog/pg_auth_members.h"#include "catalog/pg_cast.h"#include "catalog/pg_collation.h"#include "catalog/pg_constraint.h"#include "catalog/pg_conversion.h"#include "catalog/pg_database.h"#include "catalog/pg_default_acl.h"#include "catalog/pg_depend.h"#include "catalog/pg_event_trigger.h"#include "catalog/pg_extension.h"#include "catalog/pg_foreign_data_wrapper.h"#include "catalog/pg_foreign_server.h"#include "catalog/pg_init_privs.h"#include "catalog/pg_language.h"#include "catalog/pg_largeobject.h"#include "catalog/pg_namespace.h"#include "catalog/pg_opclass.h"#include "catalog/pg_operator.h"#include "catalog/pg_opfamily.h"#include "catalog/pg_parameter_acl.h"#include "catalog/pg_policy.h"#include "catalog/pg_proc.h"#include "catalog/pg_publication.h"#include "catalog/pg_publication_namespace.h"#include "catalog/pg_publication_rel.h"#include "catalog/pg_rewrite.h"#include "catalog/pg_statistic_ext.h"#include "catalog/pg_subscription.h"#include "catalog/pg_tablespace.h"#include "catalog/pg_transform.h"#include "catalog/pg_trigger.h"#include "catalog/pg_ts_config.h"#include "catalog/pg_ts_dict.h"#include "catalog/pg_ts_parser.h"#include "catalog/pg_ts_template.h"#include "catalog/pg_type.h"#include "catalog/pg_user_mapping.h"#include "commands/comment.h"#include "commands/defrem.h"#include "commands/event_trigger.h"#include "commands/extension.h"#include "commands/policy.h"#include "commands/publicationcmds.h"#include "commands/seclabel.h"#include "commands/sequence.h"#include "commands/trigger.h"#include "commands/typecmds.h"#include "funcapi.h"#include "miscadmin.h"#include "nodes/nodeFuncs.h"#include "parser/parsetree.h"#include "rewrite/rewriteRemove.h"#include "storage/lmgr.h"#include "utils/fmgroids.h"#include "utils/lsyscache.h"#include "utils/syscache.h"
Go to the source code of this file.
Data Structures | |
| struct | ObjectAddressExtra |
| struct | ObjectAddresses |
| struct | ObjectAddressStack |
| struct | ObjectAddressAndFlags |
| struct | find_expr_references_context |
Macros | |
| #define | DEPFLAG_ORIGINAL 0x0001 /* an original deletion target */ |
| #define | DEPFLAG_NORMAL 0x0002 /* reached via normal dependency */ |
| #define | DEPFLAG_AUTO 0x0004 /* reached via auto dependency */ |
| #define | DEPFLAG_INTERNAL 0x0008 /* reached via internal dependency */ |
| #define | DEPFLAG_PARTITION 0x0010 /* reached via partition dependency */ |
| #define | DEPFLAG_EXTENSION 0x0020 /* reached via extension dependency */ |
| #define | DEPFLAG_REVERSE 0x0040 /* reverse internal/extension link */ |
| #define | DEPFLAG_IS_PART 0x0080 /* has a partition dependency */ |
| #define | DEPFLAG_SUBOBJECT 0x0100 /* subobject of another deletable object */ |
| #define | MAX_REPORTED_DEPS 100 |
Typedefs | |
| typedef struct ObjectAddressStack | ObjectAddressStack |
Definition at line 104 of file dependency.c.
Definition at line 107 of file dependency.c.
Definition at line 105 of file dependency.c.
Definition at line 109 of file dependency.c.
Definition at line 103 of file dependency.c.
Definition at line 102 of file dependency.c.
Definition at line 106 of file dependency.c.
Definition at line 108 of file dependency.c.
Definition at line 110 of file dependency.c.
| #define MAX_REPORTED_DEPS 100 |
| void AcquireDeletionLock | ( | const ObjectAddress * | object, |
| int | flags | ||
| ) |
Definition at line 1546 of file dependency.c.
References AccessExclusiveLock, ObjectAddress::classId, fb(), ObjectAddressStack::flags, LockDatabaseObject(), LockRelationOid(), LockSharedObject(), ObjectAddressStack::object, ObjectAddress::objectId, PERFORM_DELETION_CONCURRENTLY, and ShareUpdateExclusiveLock.
Referenced by findDependentObjects(), performDeletion(), performDeletionCheck(), performMultipleDeletions(), and shdepDropOwned().
| void add_exact_object_address | ( | const ObjectAddress * | object, |
| ObjectAddresses * | addrs | ||
| ) |
Definition at line 2709 of file dependency.c.
References Assert, ObjectAddresses::extras, ObjectAddresses::maxrefs, ObjectAddresses::numrefs, ObjectAddressStack::object, ObjectAddresses::refs, and repalloc().
Referenced by AggregateCreate(), AlterConstraintNamespaces(), AlterIndexNamespaces(), AlterRelationNamespaceInternal(), AlterTypeNamespaceInternal(), ATExecDropColumn(), ATPostAlterTypeCleanup(), CastCreate(), CreateConstraintEntry(), CreateProceduralLanguage(), CreateTransform(), DropClonedTriggersFromPartition(), GenerateTypeDependencies(), heap_create_with_catalog(), index_create(), InsertExtensionTuple(), makeConfigurationDependencies(), makeDictionaryDependencies(), makeOperatorDependencies(), makeParserDependencies(), makeTSTemplateDependencies(), PreCommit_on_commit_actions(), ProcedureCreate(), RangeCreate(), recordDependencyOnSingleRelExpr(), ReindexRelationConcurrently(), RemoveInheritedConstraint(), RemoveObjects(), RemoveRelations(), shdepDropOwned(), and StorePartitionKey().
|
static |
Definition at line 2734 of file dependency.c.
References ObjectAddresses::extras, fb(), ObjectAddresses::maxrefs, ObjectAddresses::numrefs, ObjectAddressStack::object, palloc(), ObjectAddresses::refs, and repalloc().
Referenced by findDependentObjects().
|
static |
Definition at line 2682 of file dependency.c.
References Assert, ObjectAddress::classId, ObjectAddresses::extras, fb(), ObjectAddresses::maxrefs, ObjectAddresses::numrefs, ObjectAddress::objectId, ObjectAddress::objectSubId, ObjectAddresses::refs, and repalloc().
Referenced by find_expr_references_walker(), and process_function_rte_ref().
| void collectDependenciesOfExpr | ( | ObjectAddresses * | addrs, |
| Node * | expr, | ||
| List * | rtable | ||
| ) |
Definition at line 1646 of file dependency.c.
References find_expr_references_context::addrs, find_expr_references_walker(), list_make1, and find_expr_references_context::rtables.
Referenced by ProcedureCreate(), query_uses_temp_object(), and recordDependencyOnExpr().
|
static |
Definition at line 2961 of file dependency.c.
References BTEqualStrategyNumber, CatalogTupleDelete(), ObjectAddress::classId, fb(), HeapTupleIsValid, Int32GetDatum(), ObjectAddressStack::object, ObjectAddress::objectId, ObjectIdGetDatum(), ObjectAddress::objectSubId, RowExclusiveLock, ScanKeyInit(), systable_beginscan(), systable_endscan(), systable_getnext(), HeapTupleData::t_self, table_close(), and table_open().
Referenced by deleteOneObject().
|
static |
Definition at line 186 of file dependency.c.
References deleteOneObject(), DEPFLAG_NORMAL, DEPFLAG_ORIGINAL, DEPFLAG_REVERSE, EventTriggerSQLDropAddObject(), EventTriggerSupportsObject(), fb(), ObjectAddressExtra::flags, ObjectAddressStack::flags, i, PERFORM_DELETION_INTERNAL, PERFORM_DELETION_SKIP_ORIGINAL, and trackDroppedObjectsNeeded().
Referenced by performDeletion(), and performMultipleDeletions().
Definition at line 1296 of file dependency.c.
References BTEqualStrategyNumber, CatalogTupleDelete(), ObjectAddress::classId, CommandCounterIncrement(), DeleteComments(), DeleteInitPrivs(), DeleteSecurityLabel(), deleteSharedDependencyRecordsFor(), doDeletion(), fb(), ObjectAddressStack::flags, HeapTupleIsValid, Int32GetDatum(), InvokeObjectDropHookArg, ObjectAddressStack::object, ObjectAddress::objectId, ObjectIdGetDatum(), ObjectAddress::objectSubId, PERFORM_DELETION_CONCURRENTLY, RowExclusiveLock, ScanKeyInit(), systable_beginscan(), systable_endscan(), systable_getnext(), table_close(), and table_open().
Referenced by deleteObjectsInList().
|
static |
Definition at line 1402 of file dependency.c.
References Assert, ObjectAddress::classId, DeleteSequenceTuple(), DropObjectById(), elog, ERROR, fb(), ObjectAddressStack::flags, get_rel_relkind(), heap_drop_with_catalog(), index_drop(), LargeObjectDrop(), ObjectAddressStack::object, ObjectAddress::objectId, ObjectAddress::objectSubId, PERFORM_DELETION_CONCURRENT_LOCK, PERFORM_DELETION_CONCURRENTLY, RemoveAttrDefaultById(), RemoveAttributeById(), RemoveConstraintById(), RemoveExtensionById(), RemoveFunctionById(), RemoveOperatorById(), RemovePolicyById(), RemovePublicationById(), RemovePublicationRelById(), RemovePublicationSchemaById(), RemoveRewriteRuleById(), RemoveStatisticsById(), RemoveTriggerById(), RemoveTSConfigurationById(), and RemoveTypeById().
Referenced by deleteOneObject().
|
static |
Definition at line 1239 of file dependency.c.
References BTEqualStrategyNumber, CatalogTupleDelete(), ObjectAddress::classId, elog, ERROR, fb(), get_object_attnum_oid(), get_object_catcache_oid(), get_object_class_descr(), get_object_oid_index(), HeapTupleIsValid, ObjectAddressStack::object, ObjectAddress::objectId, ObjectIdGetDatum(), ReleaseSysCache(), RowExclusiveLock, ScanKeyInit(), SearchSysCache1(), systable_beginscan(), systable_endscan(), systable_getnext(), table_close(), and table_open().
Referenced by doDeletion().
|
static |
Definition at line 2560 of file dependency.c.
References Assert, ObjectAddresses::extras, fb(), ObjectAddresses::numrefs, object_address_comparator(), ObjectAddress::objectSubId, qsort, and ObjectAddresses::refs.
Referenced by record_object_address_dependencies(), recordDependencyOnExpr(), and recordDependencyOnSingleRelExpr().
|
static |
Definition at line 1780 of file dependency.c.
References add_object_address(), find_expr_references_context::addrs, Aggref::aggfnoid, CMD_INSERT, CMD_UPDATE, collid, Query::commandType, OnConflictExpr::constraint, Const::consttype, CTECycleClause::cycle_mark_collation, CTECycleClause::cycle_mark_neop, CTECycleClause::cycle_mark_type, DatumGetObjectId(), elog, ereport, errcode(), errmsg(), ERROR, expression_tree_walker, exprType(), fb(), find_expr_references_walker(), FuncExpr::funcid, get_typ_typrelid(), getBaseType(), i, InvalidAttrNumber, IsA, lcons(), lfirst, lfirst_int, lfirst_oid, list_delete_first(), list_length(), list_nth(), ObjectIdGetDatum(), OidIsValid, OpExpr::opno, ScalarArrayOpExpr::opno, Param::paramcollid, Param::paramtype, process_function_rte_ref(), QTW_EXAMINE_SORTGROUP, QTW_IGNORE_JOINALIASES, query_tree_walker, CoerceViaIO::resulttype, CoerceToDomain::resulttype, rt_fetch, Query::rtable, find_expr_references_context::rtables, RTE_FUNCTION, RTE_JOIN, RTE_NAMEDTUPLESTORE, RTE_RELATION, SearchSysCacheExists1, Query::targetList, Var::varattno, Var::varlevelsup, Var::varno, and WindowFunc::winfnoid.
Referenced by collectDependenciesOfExpr(), find_expr_references_walker(), and recordDependencyOnSingleRelExpr().
| bool find_temp_object | ( | const ObjectAddresses * | addrs, |
| bool | local_temp_okay, | ||
| ObjectAddress * | foundobj | ||
| ) |
Definition at line 2503 of file dependency.c.
References fb(), get_object_namespace(), i, isAnyTempNamespace(), isTempNamespace(), ObjectAddresses::numrefs, OidIsValid, and ObjectAddresses::refs.
Referenced by ProcedureCreate(), and query_uses_temp_object().
|
static |
Definition at line 483 of file dependency.c.
References AcquireDeletionLock(), add_exact_object_address_extra(), BTEqualStrategyNumber, check_stack_depth(), ObjectAddress::classId, creating_extension, CurrentExtensionObject, ObjectAddressExtra::dependee, DEPENDENCY_AUTO, DEPENDENCY_AUTO_EXTENSION, DEPENDENCY_EXTENSION, DEPENDENCY_INTERNAL, DEPENDENCY_NORMAL, DEPENDENCY_PARTITION_PRI, DEPENDENCY_PARTITION_SEC, DEPFLAG_AUTO, DEPFLAG_EXTENSION, DEPFLAG_INTERNAL, DEPFLAG_IS_PART, DEPFLAG_NORMAL, DEPFLAG_PARTITION, DEPFLAG_REVERSE, elog, ereport, errcode(), errhint(), errmsg(), ERROR, fb(), findDependentObjects(), ObjectAddressExtra::flags, ObjectAddressStack::flags, getObjectDescription(), GETSTRUCT(), HeapTupleIsValid, i, Int32GetDatum(), IsPinnedObject(), ObjectAddressStack::object, object_address_comparator(), object_address_present(), object_address_present_add_flags(), ObjectAddress::objectId, ObjectIdGetDatum(), ObjectAddress::objectSubId, OidIsValid, palloc_array, PERFORM_DELETION_SKIP_EXTENSIONS, pfree(), qsort, ReleaseDeletionLock(), repalloc(), ScanKeyInit(), stack_address_present_add_flags(), systable_beginscan(), systable_endscan(), systable_getnext(), and systable_recheck_tuple().
Referenced by findDependentObjects(), performDeletion(), performDeletionCheck(), and performMultipleDeletions().
| void free_object_addresses | ( | ObjectAddresses * | addrs | ) |
Definition at line 2949 of file dependency.c.
References ObjectAddresses::extras, pfree(), and ObjectAddresses::refs.
Referenced by AggregateCreate(), AlterTableNamespace(), AlterTypeNamespace(), ATExecDropColumn(), ATPostAlterTypeCleanup(), CastCreate(), CreateConstraintEntry(), CreateProceduralLanguage(), CreateTransform(), DropClonedTriggersFromPartition(), GenerateTypeDependencies(), heap_create_with_catalog(), index_create(), InsertExtensionTuple(), makeConfigurationDependencies(), makeDictionaryDependencies(), makeOperatorDependencies(), makeParserDependencies(), makeTSTemplateDependencies(), performDeletion(), performDeletionCheck(), performMultipleDeletions(), ProcedureCreate(), query_uses_temp_object(), RangeCreate(), recordDependencyOnExpr(), recordDependencyOnSingleRelExpr(), RemoveObjects(), RemoveRelations(), shdepDropOwned(), and StorePartitionKey().
| ObjectAddresses * new_object_addresses | ( | void | ) |
Definition at line 2664 of file dependency.c.
References ObjectAddresses::extras, fb(), ObjectAddresses::maxrefs, ObjectAddresses::numrefs, palloc_array, palloc_object, and ObjectAddresses::refs.
Referenced by AggregateCreate(), AlterExtensionNamespace(), AlterTableNamespace(), AlterTypeNamespace(), ATExecDropColumn(), ATPostAlterTypeCleanup(), CastCreate(), CreateConstraintEntry(), CreateProceduralLanguage(), CreateTransform(), DropClonedTriggersFromPartition(), GenerateTypeDependencies(), heap_create_with_catalog(), index_create(), InsertExtensionTuple(), makeConfigurationDependencies(), makeDictionaryDependencies(), makeOperatorDependencies(), makeParserDependencies(), makeTSTemplateDependencies(), performDeletion(), performDeletionCheck(), performMultipleDeletions(), PreCommit_on_commit_actions(), ProcedureCreate(), query_uses_temp_object(), RangeCreate(), recordDependencyOnExpr(), recordDependencyOnSingleRelExpr(), ReindexRelationConcurrently(), RemoveInheritedConstraint(), RemoveObjects(), RemoveRelations(), shdepDropOwned(), and StorePartitionKey().
Definition at line 2620 of file dependency.c.
Referenced by eliminate_duplicate_dependencies(), findDependentObjects(), and sort_object_addresses().
| bool object_address_present | ( | const ObjectAddress * | object, |
| const ObjectAddresses * | addrs | ||
| ) |
Definition at line 2769 of file dependency.c.
References ObjectAddress::classId, fb(), i, ObjectAddresses::numrefs, ObjectAddressStack::object, ObjectAddress::objectId, ObjectAddress::objectSubId, and ObjectAddresses::refs.
Referenced by AlterConstraintNamespaces(), AlterIndexNamespaces(), AlterRelationNamespaceInternal(), AlterTypeNamespaceInternal(), findDependentObjects(), and PreCommit_on_commit_actions().
|
static |
Definition at line 2795 of file dependency.c.
References ObjectAddress::classId, DEPFLAG_SUBOBJECT, ObjectAddresses::extras, fb(), ObjectAddressExtra::flags, ObjectAddressStack::flags, i, ObjectAddresses::numrefs, ObjectAddressStack::object, ObjectAddress::objectId, ObjectAddress::objectSubId, and ObjectAddresses::refs.
Referenced by findDependentObjects().
| void performDeletion | ( | const ObjectAddress * | object, |
| DropBehavior | behavior, | ||
| int | flags | ||
| ) |
Definition at line 274 of file dependency.c.
References AcquireDeletionLock(), deleteObjectsInList(), DEPFLAG_ORIGINAL, fb(), findDependentObjects(), ObjectAddressStack::flags, free_object_addresses(), new_object_addresses(), reportDependentObjects(), RowExclusiveLock, table_close(), and table_open().
Referenced by AlterDomainDropConstraint(), AlterDomainNotNull(), ATExecDropIdentity(), ATExecMergePartitions(), ATExecSplitPartition(), DetachPartitionFinalize(), do_autovacuum(), dropconstraint_internal(), DropForeignKeyConstraintTriggers(), dropOperators(), dropProcedures(), finish_heap_swap(), inv_drop(), PublicationDropSchemas(), PublicationDropTables(), RemoveAttrDefault(), RemoveTempRelations(), RemoveUserMapping(), and SetDefaultACL().
| void performDeletionCheck | ( | const ObjectAddress * | object, |
| DropBehavior | behavior, | ||
| int | flags | ||
| ) |
Definition at line 333 of file dependency.c.
References AcquireDeletionLock(), Assert, DEPFLAG_ORIGINAL, DROP_RESTRICT, fb(), findDependentObjects(), ObjectAddressStack::flags, free_object_addresses(), new_object_addresses(), reportDependentObjects(), RowExclusiveLock, table_close(), and table_open().
Referenced by ATExecMergePartitions(), and ATExecSplitPartition().
| void performMultipleDeletions | ( | const ObjectAddresses * | objects, |
| DropBehavior | behavior, | ||
| int | flags | ||
| ) |
Definition at line 383 of file dependency.c.
References AcquireDeletionLock(), deleteObjectsInList(), DEPFLAG_ORIGINAL, fb(), findDependentObjects(), ObjectAddressStack::flags, free_object_addresses(), i, new_object_addresses(), ObjectAddresses::numrefs, ObjectAddresses::refs, reportDependentObjects(), RowExclusiveLock, table_close(), and table_open().
Referenced by ATExecDropColumn(), ATPostAlterTypeCleanup(), DropClonedTriggersFromPartition(), PreCommit_on_commit_actions(), ReindexRelationConcurrently(), RemoveInheritedConstraint(), RemoveObjects(), RemoveRelations(), and shdepDropOwned().
|
static |
Definition at line 2429 of file dependency.c.
References add_object_address(), find_expr_references_context::addrs, Assert, attnum, ereport, errcode(), errmsg(), ERROR, fb(), RangeTblFunction::funcexpr, get_expr_result_tupdesc(), get_typ_typrelid(), lfirst, NIL, OidIsValid, and TupleDescData::tdtypeid.
Referenced by find_expr_references_walker().
| bool query_uses_temp_object | ( | Query * | query, |
| ObjectAddress * | temp_object | ||
| ) |
Definition at line 2538 of file dependency.c.
References collectDependenciesOfExpr(), fb(), find_temp_object(), free_object_addresses(), new_object_addresses(), and NIL.
Referenced by DefineView(), and transformCreateTableAsStmt().
| void record_object_address_dependencies | ( | const ObjectAddress * | depender, |
| ObjectAddresses * | referenced, | ||
| DependencyType | behavior | ||
| ) |
Definition at line 2918 of file dependency.c.
References eliminate_duplicate_dependencies(), fb(), and recordMultipleDependencies().
Referenced by AggregateCreate(), CastCreate(), CreateConstraintEntry(), CreateProceduralLanguage(), CreateTransform(), GenerateTypeDependencies(), heap_create_with_catalog(), index_create(), InsertExtensionTuple(), makeConfigurationDependencies(), makeDictionaryDependencies(), makeOperatorDependencies(), makeParserDependencies(), makeTSTemplateDependencies(), ProcedureCreate(), RangeCreate(), and StorePartitionKey().
| void recordDependencyOnExpr | ( | const ObjectAddress * | depender, |
| Node * | expr, | ||
| List * | rtable, | ||
| DependencyType | behavior | ||
| ) |
Definition at line 1603 of file dependency.c.
References collectDependenciesOfExpr(), eliminate_duplicate_dependencies(), fb(), free_object_addresses(), new_object_addresses(), ObjectAddresses::numrefs, recordMultipleDependencies(), and ObjectAddresses::refs.
Referenced by AlterPolicy(), CreatePolicy(), CreateTriggerFiringOn(), GenerateTypeDependencies(), and InsertRule().
| void recordDependencyOnSingleRelExpr | ( | const ObjectAddress * | depender, |
| Node * | expr, | ||
| Oid | relId, | ||
| DependencyType | behavior, | ||
| DependencyType | self_behavior, | ||
| bool | reverse_self | ||
| ) |
Definition at line 1678 of file dependency.c.
References AccessShareLock, add_exact_object_address(), find_expr_references_context::addrs, eliminate_duplicate_dependencies(), fb(), find_expr_references_walker(), free_object_addresses(), list_make1, new_object_addresses(), ObjectAddresses::numrefs, recordDependencyOn(), recordMultipleDependencies(), ObjectAddresses::refs, find_expr_references_context::rtables, and RTE_RELATION.
Referenced by CreateConstraintEntry(), CreateStatistics(), index_create(), publication_add_relation(), StoreAttrDefault(), and StorePartitionKey().
| void ReleaseDeletionLock | ( | const ObjectAddress * | object | ) |
Definition at line 1578 of file dependency.c.
References AccessExclusiveLock, ObjectAddress::classId, fb(), ObjectAddressStack::object, ObjectAddress::objectId, UnlockDatabaseObject(), and UnlockRelationOid().
Referenced by findDependentObjects(), and shdepDropOwned().
|
static |
Definition at line 1030 of file dependency.c.
References _, appendStringInfo(), appendStringInfoChar(), StringInfoData::data, DEBUG2, ObjectAddressExtra::dependee, DEPFLAG_AUTO, DEPFLAG_EXTENSION, DEPFLAG_INTERNAL, DEPFLAG_IS_PART, DEPFLAG_ORIGINAL, DEPFLAG_PARTITION, DEPFLAG_SUBOBJECT, DROP_CASCADE, DROP_RESTRICT, ereport, errcode(), errdetail_internal(), errdetail_log(), errhint(), errmsg(), errmsg_internal(), errmsg_plural(), ERROR, fb(), ObjectAddressExtra::flags, ObjectAddressStack::flags, getObjectDescription(), i, initStringInfo(), StringInfoData::len, MAX_REPORTED_DEPS, message_level_is_interesting(), ngettext, NOTICE, PERFORM_DELETION_QUIETLY, and pfree().
Referenced by performDeletion(), performDeletionCheck(), and performMultipleDeletions().
| void sort_object_addresses | ( | ObjectAddresses * | addrs | ) |
Definition at line 2937 of file dependency.c.
References ObjectAddresses::numrefs, object_address_comparator(), qsort, and ObjectAddresses::refs.
Referenced by shdepDropOwned().
|
static |
Definition at line 2868 of file dependency.c.
References ObjectAddress::classId, DEPFLAG_SUBOBJECT, fb(), ObjectAddressStack::flags, ObjectAddressStack::next, ObjectAddressStack::object, ObjectAddress::objectId, and ObjectAddress::objectSubId.
Referenced by findDependentObjects().