Changeset 5786 for trunk/archive/scripts/src/phase2/psAdditionals.c
- Timestamp:
- Dec 13, 2005, 5:47:35 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/archive/scripts/src/phase2/psAdditionals.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/archive/scripts/src/phase2/psAdditionals.c
r5651 r5786 5 5 6 6 7 psMetadata *p sMetadataCopy(psMetadata *out,8 const psMetadata *in)7 psMetadata *pap_psMetadataCopy(psMetadata *out, 8 const psMetadata *in) 9 9 { 10 10 PS_ASSERT_PTR_NON_NULL(in,NULL); … … 20 20 // Need to look for MULTI, which won't be picked up using the iterator. 21 21 psMetadataItem *multiCheckItem = psMetadataLookup(in, inItem->name); 22 int multiFlag = 0; // Flag to indicate MULTI or not22 unsigned int flag = PS_META_REPLACE; // Flag to indicate MULTI; otherwise, replace 23 23 if (multiCheckItem->type == PS_DATA_METADATA_MULTI) { 24 multiFlag = PS_DATA_METADATA_MULTI; 25 } 24 psTrace(__func__, 10, "MULTI: %s (%s)\n", inItem->name, inItem->comment); 25 flag = PS_DATA_METADATA_MULTI; 26 } 27 28 psTrace(__func__, 5, "Copying %s (%s)...\n", inItem->name, inItem->comment); 26 29 27 30 #define PS_METADATA_COPY_CASE(NAME,TYPE) \ 28 31 case PS_TYPE_##NAME: \ 29 psMetadataAdd(out, PS_LIST_TAIL, inItem->name, PS_TYPE_##NAME | multiFlag, inItem->comment, \ 30 inItem->data.TYPE); \ 32 if (! psMetadataAdd(out, PS_LIST_TAIL, inItem->name, PS_TYPE_##NAME | flag, inItem->comment, \ 33 inItem->data.TYPE)) { \ 34 psErrorStackPrint(stderr, "Error copying %s (%s) in the metadata\n", inItem->name, \ 35 inItem->comment); \ 36 } \ 31 37 break; 32 38 … … 34 40 // Numerical types 35 41 PS_METADATA_COPY_CASE(BOOL,B); 36 PS_METADATA_COPY_CASE(S8, S8);37 PS_METADATA_COPY_CASE(S16, S16);38 PS_METADATA_COPY_CASE(S32, S32);39 PS_METADATA_COPY_CASE(U8, U8);40 PS_METADATA_COPY_CASE(U16, U16);41 PS_METADATA_COPY_CASE(U32, U32);42 PS_METADATA_COPY_CASE(F32, F32);43 PS_METADATA_COPY_CASE(F64, F64);42 PS_METADATA_COPY_CASE(S8,S8); 43 PS_METADATA_COPY_CASE(S16,S16); 44 PS_METADATA_COPY_CASE(S32,S32); 45 PS_METADATA_COPY_CASE(U8,U8); 46 PS_METADATA_COPY_CASE(U16,U16); 47 PS_METADATA_COPY_CASE(U32,U32); 48 PS_METADATA_COPY_CASE(F32,F32); 49 PS_METADATA_COPY_CASE(F64,F64); 44 50 45 51 // String: relying on the fact that this will copy the string, not point at it. 46 52 case PS_DATA_STRING: 47 psMetadataAdd(out, PS_LIST_TAIL, inItem->name, PS_DATA_STRING | multiFlag, inItem->comment,53 psMetadataAdd(out, PS_LIST_TAIL, inItem->name, PS_DATA_STRING | flag, inItem->comment, 48 54 inItem->data.V); 49 55 break; … … 52 58 case PS_DATA_METADATA: 53 59 { 54 psMetadata *metadata = p sMetadataCopy(NULL, inItem->data.md);55 psMetadataAdd(out, PS_LIST_TAIL, inItem->name, PS_DATA_METADATA | multiFlag, inItem->comment,60 psMetadata *metadata = pap_psMetadataCopy(NULL, inItem->data.md); 61 psMetadataAdd(out, PS_LIST_TAIL, inItem->name, PS_DATA_METADATA | flag, inItem->comment, 56 62 metadata); 57 63 break; … … 60 66 default: 61 67 numPointers++; 62 psMetadataItemAlloc(inItem->name, inItem->type, inItem->comment, inItem->data.V); 68 psTrace(__func__, 10, "Copying a pointer in the metadata: %x\n", inItem->type); 69 psMetadataAdd(out, PS_LIST_TAIL, inItem->name, inItem->type | flag, inItem->comment, 70 inItem->data.V); 63 71 break; 64 72 } … … 68 76 if (numPointers > 0) { 69 77 psLogMsg(__func__, PS_LOG_WARN, "Forced to copy %d pointers when copying metadata. Updating the " 70 "copied psMetadata will affect the original!\n" );78 "copied psMetadata will affect the original!\n", numPointers); 71 79 } 72 80
Note:
See TracChangeset
for help on using the changeset viewer.
