diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/nodes/list.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/backend/nodes/list.c b/src/backend/nodes/list.c index a709d23ef1c..750ee5a7e55 100644 --- a/src/backend/nodes/list.c +++ b/src/backend/nodes/list.c @@ -1593,11 +1593,11 @@ list_copy_head(const List *oldlist, int len) { List *newlist; - len = Min(oldlist->length, len); - - if (len <= 0) + if (oldlist == NIL || len <= 0) return NIL; + len = Min(oldlist->length, len); + newlist = new_list(oldlist->type, len); memcpy(newlist->elements, oldlist->elements, len * sizeof(ListCell)); |