---
name: "dictModifyValue"
section: "3"
platform: "linux"
package: "clearsilver-dev"
version: "0.10.5-6+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://carta.tech/man/dictModifyValue"
---

# dictModifyValue(3)

create/modify an item.

## NAME

dictModifyValue  - create/modify an item.

## SYNOPSIS

```
#include <util/dict.h>
```

```
NEOERR *dictModifyValue(dictCtx dict, const char *id, dictNewValueCB new_cb,
                     dictUpdateValueCB update, void *rock);
```

## ARGUMENTS

dict - dictionary to add pair to.\
 id - identifier of value\
 new - function to call to create new value (may be NULL)\
 update - function to call to modify value (if NULL, the old\
 value is freed, and \<new\> is used)\
 rock - context to pass to \<new\> or \<update\>.

## DESCRIPTION

Finds \<id\>'s value and calls \<update\>.  If \<id\> is not in \<dict\>, calls \<new\> to obtain a new value.

MT-Level: Safe if \<dict\> thread-safe.

## RETURN VALUE

None.

## SEE ALSO

[**dictDestroy**(3)](/man/dictDestroy/3.md), [**dictCleanup**(3)](/man/dictCleanup/3.md), [**dictReleaseLock**(3)](/man/dictReleaseLock/3.md), [**dictRemove**(3)](/man/dictRemove/3.md), [**dictNext**(3)](/man/dictNext/3.md), [**dictCreate**(3)](/man/dictCreate/3.md), [**dictSetValue**(3)](/man/dictSetValue/3.md), [**dictModifyValue**(3)](/man/dictModifyValue/3.md), **dictSearch**
