Commit 4315e8c2 authored by Michael Paquier's avatar Michael Paquier

Refactor ObjectAddress field assignments in more places

This is a follow-up commit similar to 68de1440, with more places in the
backend code simplified with the macros able to assign values to the
fields of ObjectAddress.  The code paths changed here could be
transitioned later into using more grouping when inserting dependency
records, simplifying this future work.

Author: Daniel Gustafsson, Michael Paquier
Discussion: https://postgr.es/m/20190213182737.mxn6hkdxwrzgxk35@alap3.anarazel.de
parent a69e041d
...@@ -818,21 +818,15 @@ AddNewAttributeTuples(Oid new_rel_oid, ...@@ -818,21 +818,15 @@ AddNewAttributeTuples(Oid new_rel_oid,
InsertPgAttributeTuple(rel, attr, (Datum) 0, indstate); InsertPgAttributeTuple(rel, attr, (Datum) 0, indstate);
/* Add dependency info */ /* Add dependency info */
myself.classId = RelationRelationId; ObjectAddressSubSet(myself, RelationRelationId, new_rel_oid, i + 1);
myself.objectId = new_rel_oid; ObjectAddressSet(referenced, TypeRelationId, attr->atttypid);
myself.objectSubId = i + 1;
referenced.classId = TypeRelationId;
referenced.objectId = attr->atttypid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
/* The default collation is pinned, so don't bother recording it */ /* The default collation is pinned, so don't bother recording it */
if (OidIsValid(attr->attcollation) && if (OidIsValid(attr->attcollation) &&
attr->attcollation != DEFAULT_COLLATION_OID) attr->attcollation != DEFAULT_COLLATION_OID)
{ {
referenced.classId = CollationRelationId; ObjectAddressSet(referenced, CollationRelationId, attr->attcollation);
referenced.objectId = attr->attcollation;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
} }
......
...@@ -1030,9 +1030,7 @@ index_create(Relation heapRelation, ...@@ -1030,9 +1030,7 @@ index_create(Relation heapRelation,
ObjectAddress myself, ObjectAddress myself,
referenced; referenced;
myself.classId = RelationRelationId; ObjectAddressSet(myself, RelationRelationId, indexRelationId);
myself.objectId = indexRelationId;
myself.objectSubId = 0;
if ((flags & INDEX_CREATE_ADD_CONSTRAINT) != 0) if ((flags & INDEX_CREATE_ADD_CONSTRAINT) != 0)
{ {
...@@ -1072,12 +1070,10 @@ index_create(Relation heapRelation, ...@@ -1072,12 +1070,10 @@ index_create(Relation heapRelation,
{ {
if (indexInfo->ii_IndexAttrNumbers[i] != 0) if (indexInfo->ii_IndexAttrNumbers[i] != 0)
{ {
referenced.classId = RelationRelationId; ObjectAddressSubSet(referenced, RelationRelationId,
referenced.objectId = heapRelationId; heapRelationId,
referenced.objectSubId = indexInfo->ii_IndexAttrNumbers[i]; indexInfo->ii_IndexAttrNumbers[i]);
recordDependencyOn(&myself, &referenced, DEPENDENCY_AUTO); recordDependencyOn(&myself, &referenced, DEPENDENCY_AUTO);
have_simple_col = true; have_simple_col = true;
} }
} }
...@@ -1090,10 +1086,8 @@ index_create(Relation heapRelation, ...@@ -1090,10 +1086,8 @@ index_create(Relation heapRelation,
*/ */
if (!have_simple_col) if (!have_simple_col)
{ {
referenced.classId = RelationRelationId; ObjectAddressSet(referenced, RelationRelationId,
referenced.objectId = heapRelationId; heapRelationId);
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_AUTO); recordDependencyOn(&myself, &referenced, DEPENDENCY_AUTO);
} }
} }
...@@ -1106,16 +1100,10 @@ index_create(Relation heapRelation, ...@@ -1106,16 +1100,10 @@ index_create(Relation heapRelation,
*/ */
if (OidIsValid(parentIndexRelid)) if (OidIsValid(parentIndexRelid))
{ {
referenced.classId = RelationRelationId; ObjectAddressSet(referenced, RelationRelationId, parentIndexRelid);
referenced.objectId = parentIndexRelid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_PARTITION_PRI); recordDependencyOn(&myself, &referenced, DEPENDENCY_PARTITION_PRI);
referenced.classId = RelationRelationId; ObjectAddressSet(referenced, RelationRelationId, heapRelationId);
referenced.objectId = heapRelationId;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_PARTITION_SEC); recordDependencyOn(&myself, &referenced, DEPENDENCY_PARTITION_SEC);
} }
...@@ -1126,10 +1114,8 @@ index_create(Relation heapRelation, ...@@ -1126,10 +1114,8 @@ index_create(Relation heapRelation,
if (OidIsValid(collationObjectId[i]) && if (OidIsValid(collationObjectId[i]) &&
collationObjectId[i] != DEFAULT_COLLATION_OID) collationObjectId[i] != DEFAULT_COLLATION_OID)
{ {
referenced.classId = CollationRelationId; ObjectAddressSet(referenced, CollationRelationId,
referenced.objectId = collationObjectId[i]; collationObjectId[i]);
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
} }
...@@ -1137,10 +1123,7 @@ index_create(Relation heapRelation, ...@@ -1137,10 +1123,7 @@ index_create(Relation heapRelation,
/* Store dependency on operator classes */ /* Store dependency on operator classes */
for (i = 0; i < indexInfo->ii_NumIndexKeyAttrs; i++) for (i = 0; i < indexInfo->ii_NumIndexKeyAttrs; i++)
{ {
referenced.classId = OperatorClassRelationId; ObjectAddressSet(referenced, OperatorClassRelationId, classObjectId[i]);
referenced.objectId = classObjectId[i];
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
......
...@@ -742,80 +742,62 @@ AggregateCreate(const char *aggName, ...@@ -742,80 +742,62 @@ AggregateCreate(const char *aggName,
*/ */
/* Depends on transition function */ /* Depends on transition function */
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, transfn);
referenced.objectId = transfn;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
/* Depends on final function, if any */ /* Depends on final function, if any */
if (OidIsValid(finalfn)) if (OidIsValid(finalfn))
{ {
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, finalfn);
referenced.objectId = finalfn;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Depends on combine function, if any */ /* Depends on combine function, if any */
if (OidIsValid(combinefn)) if (OidIsValid(combinefn))
{ {
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, combinefn);
referenced.objectId = combinefn;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Depends on serialization function, if any */ /* Depends on serialization function, if any */
if (OidIsValid(serialfn)) if (OidIsValid(serialfn))
{ {
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, serialfn);
referenced.objectId = serialfn;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Depends on deserialization function, if any */ /* Depends on deserialization function, if any */
if (OidIsValid(deserialfn)) if (OidIsValid(deserialfn))
{ {
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, deserialfn);
referenced.objectId = deserialfn;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Depends on forward transition function, if any */ /* Depends on forward transition function, if any */
if (OidIsValid(mtransfn)) if (OidIsValid(mtransfn))
{ {
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, mtransfn);
referenced.objectId = mtransfn;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Depends on inverse transition function, if any */ /* Depends on inverse transition function, if any */
if (OidIsValid(minvtransfn)) if (OidIsValid(minvtransfn))
{ {
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, minvtransfn);
referenced.objectId = minvtransfn;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Depends on final function, if any */ /* Depends on final function, if any */
if (OidIsValid(mfinalfn)) if (OidIsValid(mfinalfn))
{ {
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, mfinalfn);
referenced.objectId = mfinalfn;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Depends on sort operator, if any */ /* Depends on sort operator, if any */
if (OidIsValid(sortop)) if (OidIsValid(sortop))
{ {
referenced.classId = OperatorRelationId; ObjectAddressSet(referenced, OperatorRelationId, sortop);
referenced.objectId = sortop;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
......
...@@ -223,9 +223,7 @@ CreateConstraintEntry(const char *constraintName, ...@@ -223,9 +223,7 @@ CreateConstraintEntry(const char *constraintName,
CatalogTupleInsert(conDesc, tup); CatalogTupleInsert(conDesc, tup);
conobject.classId = ConstraintRelationId; ObjectAddressSet(conobject, ConstraintRelationId, conOid);
conobject.objectId = conOid;
conobject.objectSubId = 0;
table_close(conDesc, RowExclusiveLock); table_close(conDesc, RowExclusiveLock);
...@@ -237,21 +235,18 @@ CreateConstraintEntry(const char *constraintName, ...@@ -237,21 +235,18 @@ CreateConstraintEntry(const char *constraintName,
*/ */
ObjectAddress relobject; ObjectAddress relobject;
relobject.classId = RelationRelationId;
relobject.objectId = relId;
if (constraintNTotalKeys > 0) if (constraintNTotalKeys > 0)
{ {
for (i = 0; i < constraintNTotalKeys; i++) for (i = 0; i < constraintNTotalKeys; i++)
{ {
relobject.objectSubId = constraintKey[i]; ObjectAddressSubSet(relobject, RelationRelationId, relId,
constraintKey[i]);
recordDependencyOn(&conobject, &relobject, DEPENDENCY_AUTO); recordDependencyOn(&conobject, &relobject, DEPENDENCY_AUTO);
} }
} }
else else
{ {
relobject.objectSubId = 0; ObjectAddressSet(relobject, RelationRelationId, relId);
recordDependencyOn(&conobject, &relobject, DEPENDENCY_AUTO); recordDependencyOn(&conobject, &relobject, DEPENDENCY_AUTO);
} }
} }
...@@ -263,10 +258,7 @@ CreateConstraintEntry(const char *constraintName, ...@@ -263,10 +258,7 @@ CreateConstraintEntry(const char *constraintName,
*/ */
ObjectAddress domobject; ObjectAddress domobject;
domobject.classId = TypeRelationId; ObjectAddressSet(domobject, TypeRelationId, domainId);
domobject.objectId = domainId;
domobject.objectSubId = 0;
recordDependencyOn(&conobject, &domobject, DEPENDENCY_AUTO); recordDependencyOn(&conobject, &domobject, DEPENDENCY_AUTO);
} }
...@@ -278,21 +270,18 @@ CreateConstraintEntry(const char *constraintName, ...@@ -278,21 +270,18 @@ CreateConstraintEntry(const char *constraintName,
*/ */
ObjectAddress relobject; ObjectAddress relobject;
relobject.classId = RelationRelationId;
relobject.objectId = foreignRelId;
if (foreignNKeys > 0) if (foreignNKeys > 0)
{ {
for (i = 0; i < foreignNKeys; i++) for (i = 0; i < foreignNKeys; i++)
{ {
relobject.objectSubId = foreignKey[i]; ObjectAddressSubSet(relobject, RelationRelationId,
foreignRelId, foreignKey[i]);
recordDependencyOn(&conobject, &relobject, DEPENDENCY_NORMAL); recordDependencyOn(&conobject, &relobject, DEPENDENCY_NORMAL);
} }
} }
else else
{ {
relobject.objectSubId = 0; ObjectAddressSet(relobject, RelationRelationId, foreignRelId);
recordDependencyOn(&conobject, &relobject, DEPENDENCY_NORMAL); recordDependencyOn(&conobject, &relobject, DEPENDENCY_NORMAL);
} }
} }
...@@ -307,10 +296,7 @@ CreateConstraintEntry(const char *constraintName, ...@@ -307,10 +296,7 @@ CreateConstraintEntry(const char *constraintName,
*/ */
ObjectAddress relobject; ObjectAddress relobject;
relobject.classId = RelationRelationId; ObjectAddressSet(relobject, RelationRelationId, indexRelId);
relobject.objectId = indexRelId;
relobject.objectSubId = 0;
recordDependencyOn(&conobject, &relobject, DEPENDENCY_NORMAL); recordDependencyOn(&conobject, &relobject, DEPENDENCY_NORMAL);
} }
...@@ -722,9 +708,7 @@ AlterConstraintNamespaces(Oid ownerId, Oid oldNspId, ...@@ -722,9 +708,7 @@ AlterConstraintNamespaces(Oid ownerId, Oid oldNspId,
Form_pg_constraint conform = (Form_pg_constraint) GETSTRUCT(tup); Form_pg_constraint conform = (Form_pg_constraint) GETSTRUCT(tup);
ObjectAddress thisobj; ObjectAddress thisobj;
thisobj.classId = ConstraintRelationId; ObjectAddressSet(thisobj, ConstraintRelationId, conform->oid);
thisobj.objectId = conform->oid;
thisobj.objectSubId = 0;
if (object_address_present(&thisobj, objsMoved)) if (object_address_present(&thisobj, objsMoved))
continue; continue;
......
...@@ -776,9 +776,7 @@ makeOperatorDependencies(HeapTuple tuple, bool isUpdate) ...@@ -776,9 +776,7 @@ makeOperatorDependencies(HeapTuple tuple, bool isUpdate)
ObjectAddress myself, ObjectAddress myself,
referenced; referenced;
myself.classId = OperatorRelationId; ObjectAddressSet(myself, OperatorRelationId, oper->oid);
myself.objectId = oper->oid;
myself.objectSubId = 0;
/* /*
* If we are updating the operator, delete any existing entries, except * If we are updating the operator, delete any existing entries, except
...@@ -793,36 +791,28 @@ makeOperatorDependencies(HeapTuple tuple, bool isUpdate) ...@@ -793,36 +791,28 @@ makeOperatorDependencies(HeapTuple tuple, bool isUpdate)
/* Dependency on namespace */ /* Dependency on namespace */
if (OidIsValid(oper->oprnamespace)) if (OidIsValid(oper->oprnamespace))
{ {
referenced.classId = NamespaceRelationId; ObjectAddressSet(referenced, NamespaceRelationId, oper->oprnamespace);
referenced.objectId = oper->oprnamespace;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Dependency on left type */ /* Dependency on left type */
if (OidIsValid(oper->oprleft)) if (OidIsValid(oper->oprleft))
{ {
referenced.classId = TypeRelationId; ObjectAddressSet(referenced, TypeRelationId, oper->oprleft);
referenced.objectId = oper->oprleft;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Dependency on right type */ /* Dependency on right type */
if (OidIsValid(oper->oprright)) if (OidIsValid(oper->oprright))
{ {
referenced.classId = TypeRelationId; ObjectAddressSet(referenced, TypeRelationId, oper->oprright);
referenced.objectId = oper->oprright;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Dependency on result type */ /* Dependency on result type */
if (OidIsValid(oper->oprresult)) if (OidIsValid(oper->oprresult))
{ {
referenced.classId = TypeRelationId; ObjectAddressSet(referenced, TypeRelationId, oper->oprresult);
referenced.objectId = oper->oprresult;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
...@@ -838,27 +828,21 @@ makeOperatorDependencies(HeapTuple tuple, bool isUpdate) ...@@ -838,27 +828,21 @@ makeOperatorDependencies(HeapTuple tuple, bool isUpdate)
/* Dependency on implementation function */ /* Dependency on implementation function */
if (OidIsValid(oper->oprcode)) if (OidIsValid(oper->oprcode))
{ {
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, oper->oprcode);
referenced.objectId = oper->oprcode;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Dependency on restriction selectivity function */ /* Dependency on restriction selectivity function */
if (OidIsValid(oper->oprrest)) if (OidIsValid(oper->oprrest))
{ {
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, oper->oprrest);
referenced.objectId = oper->oprrest;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* Dependency on join selectivity function */ /* Dependency on join selectivity function */
if (OidIsValid(oper->oprjoin)) if (OidIsValid(oper->oprjoin))
{ {
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, oper->oprjoin);
referenced.objectId = oper->oprjoin;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
......
...@@ -585,51 +585,37 @@ ProcedureCreate(const char *procedureName, ...@@ -585,51 +585,37 @@ ProcedureCreate(const char *procedureName,
if (is_update) if (is_update)
deleteDependencyRecordsFor(ProcedureRelationId, retval, true); deleteDependencyRecordsFor(ProcedureRelationId, retval, true);
myself.classId = ProcedureRelationId; ObjectAddressSet(myself, ProcedureRelationId, retval);
myself.objectId = retval;
myself.objectSubId = 0;
/* dependency on namespace */ /* dependency on namespace */
referenced.classId = NamespaceRelationId; ObjectAddressSet(referenced, NamespaceRelationId, procNamespace);
referenced.objectId = procNamespace;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
/* dependency on implementation language */ /* dependency on implementation language */
referenced.classId = LanguageRelationId; ObjectAddressSet(referenced, LanguageRelationId, languageObjectId);
referenced.objectId = languageObjectId;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
/* dependency on return type */ /* dependency on return type */
referenced.classId = TypeRelationId; ObjectAddressSet(referenced, TypeRelationId, returnType);
referenced.objectId = returnType;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
/* dependency on transform used by return type, if any */ /* dependency on transform used by return type, if any */
if ((trfid = get_transform_oid(returnType, languageObjectId, true))) if ((trfid = get_transform_oid(returnType, languageObjectId, true)))
{ {
referenced.classId = TransformRelationId; ObjectAddressSet(referenced, TransformRelationId, trfid);
referenced.objectId = trfid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* dependency on parameter types */ /* dependency on parameter types */
for (i = 0; i < allParamCount; i++) for (i = 0; i < allParamCount; i++)
{ {
referenced.classId = TypeRelationId; ObjectAddressSet(referenced, TypeRelationId, allParams[i]);
referenced.objectId = allParams[i];
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
/* dependency on transform used by parameter type, if any */ /* dependency on transform used by parameter type, if any */
if ((trfid = get_transform_oid(allParams[i], languageObjectId, true))) if ((trfid = get_transform_oid(allParams[i], languageObjectId, true)))
{ {
referenced.classId = TransformRelationId; ObjectAddressSet(referenced, TransformRelationId, trfid);
referenced.objectId = trfid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
} }
...@@ -642,9 +628,7 @@ ProcedureCreate(const char *procedureName, ...@@ -642,9 +628,7 @@ ProcedureCreate(const char *procedureName,
/* dependency on support function, if any */ /* dependency on support function, if any */
if (OidIsValid(prosupport)) if (OidIsValid(prosupport))
{ {
referenced.classId = ProcedureRelationId; ObjectAddressSet(referenced, ProcedureRelationId, prosupport);
referenced.objectId = prosupport;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment