Line data Source code
1 : /****************************************************************************** 2 : * 3 : * Project: ASI CEOS Translator 4 : * Purpose: Link list function replacements. 5 : * Author: Frank Warmerdam, warmerda@home.com 6 : * 7 : ****************************************************************************** 8 : * Copyright (c) 2000, Atlantis Scientific Inc 9 : * 10 : * SPDX-License-Identifier: MIT 11 : ****************************************************************************/ 12 : 13 : #include "ceos.h" 14 : 15 : /************************************************************************/ 16 : /* ceos2CreateLink() */ 17 : /************************************************************************/ 18 : 19 46 : Link_t *ceos2CreateLink(void *pObject) 20 : 21 : { 22 46 : Link_t *psLink = (Link_t *)CPLCalloc(sizeof(Link_t), 1); 23 : 24 46 : psLink->object = pObject; 25 : 26 46 : return psLink; 27 : } 28 : 29 : /************************************************************************/ 30 : /* DestroyList() */ 31 : /************************************************************************/ 32 : 33 8 : void DestroyList(Link_t *psList) 34 : 35 : { 36 54 : while (psList != NULL) 37 : { 38 46 : Link_t *psNext = psList->next; 39 : 40 46 : CPLFree(psList); 41 46 : psList = psNext; 42 : } 43 8 : } 44 : 45 : /************************************************************************/ 46 : /* InsertLink() */ 47 : /************************************************************************/ 48 : 49 40 : Link_t *InsertLink(Link_t *psList, Link_t *psLink) 50 : 51 : { 52 40 : psLink->next = psList; 53 : 54 40 : return psLink; 55 : } 56 : 57 : /************************************************************************/ 58 : /* AddLink() */ 59 : /************************************************************************/ 60 : 61 0 : Link_t *AddLink(Link_t *psList, Link_t *psLink) 62 : 63 : { 64 : Link_t *psNode; 65 : 66 0 : if (psList == NULL) 67 0 : return psLink; 68 : 69 0 : for (psNode = psList; psNode->next != NULL; psNode = psNode->next) 70 : { 71 : } 72 : 73 0 : psNode->next = psLink; 74 : 75 0 : return psList; 76 : }