[PATCH 1/3] darray: Add darray_insert() to insert a value at a specified index

Damien Grassart <[email protected]> Tue, 29 Aug 2017 12:08:40 +0200
Newsgroups org.ozlabs.lists.ccan
Message-ID <[email protected]>
VGhpcyBtb2R1bGUgY3VycmVudGx5IHN1cHBvcnRzIHJlbW92aW5nIGJ1dCBub3QgaW5zZXJ0aW5n
IGF0IGEKc3BlY2lmaWVkIGluZGV4LCBzbyB0aGlzIGFkZHMgdGhhdCBhbG9uZyB3aXRoIHNvbWUg
dGVzdHMuIEluc2VydGluZyBhCnZhbHVlIG1vdmVzIGFsbCBleGlzdGluZyBkYXRhIGJleW9uZCBp
bmRleCBvdmVyIG9uZSBlbGVtZW50LgoKU2lnbmVkLW9mZi1ieTogRGFtaWVuIEdyYXNzYXJ0IDxk
YW1pZW5AZ3Jhc3NhcnQuY29tPgotLS0KIGNjYW4vZGFycmF5L2RhcnJheS5oICAgfCAgNyArKysr
KysrCiBjY2FuL2RhcnJheS90ZXN0L3J1bi5jIHwgMjIgKysrKysrKysrKysrKysrKysrKystLQog
MiBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL2NjYW4vZGFycmF5L2RhcnJheS5oIGIvY2Nhbi9kYXJyYXkvZGFycmF5LmgKaW5kZXgg
NzUxMTI0MTkuLmZjYTIwYjhhIDEwMDY0NAotLS0gYS9jY2FuL2RhcnJheS9kYXJyYXkuaAorKysg
Yi9jY2FuL2RhcnJheS9kYXJyYXkuaApAQCAtNTYsNiArNTYsNyBAQAogICoKICAqICAgICB2b2lk
ICAgZGFycmF5X2FwcGVuZChkYXJyYXkoVCkgYXJyLCBUIGl0ZW0pOwogICogICAgIHZvaWQgICBk
YXJyYXlfcHJlcGVuZChkYXJyYXkoVCkgYXJyLCBUIGl0ZW0pOworICogICAgIHZvaWQgICBkYXJy
YXlfaW5zZXJ0KGRhcnJheShUKSBhcnIsIHNpemVfdCBpbmRleCwgVCBpdGVtKTsKICAqICAgICB2
b2lkICAgZGFycmF5X3B1c2goZGFycmF5KFQpIGFyciwgVCBpdGVtKTsgLy8gc2FtZSBhcyBkYXJy
YXlfYXBwZW5kCiAgKgogICogSW5zZXJ0aW9uIChtdWx0aXBsZSBpdGVtcyk6CkBAIC0xNjksNiAr
MTcwLDEyIEBAIHR5cGVkZWYgZGFycmF5KHVuc2lnbmVkIGxvbmcpICBkYXJyYXlfdWxvbmc7CiAJ
CW1lbW1vdmUoKGFycikuaXRlbSsxLCAoYXJyKS5pdGVtLCAoKGFycikuc2l6ZS0xKSpzaXplb2Yo
KihhcnIpLml0ZW0pKTsgXAogCQkoYXJyKS5pdGVtWzBdID0gKF9fVkFfQVJHU19fKTsgXAogCX0g
d2hpbGUoMCkKKyNkZWZpbmUgZGFycmF5X2luc2VydChhcnIsIGluZGV4LCAuLi4pIGRvIHsgXAor
CQlzaXplX3QgX19pbmRleCA9IGluZGV4OyBcCisJCWRhcnJheV9yZXNpemUoYXJyLCAoYXJyKS5z
aXplKzEpOyBcCisJCW1lbW1vdmUoKGFycikuaXRlbStfX2luZGV4KzEsIChhcnIpLml0ZW0rX19p
bmRleCwgKChhcnIpLnNpemUtX19pbmRleC0xKSpzaXplb2YoKihhcnIpLml0ZW0pKTsgXAorCQko
YXJyKS5pdGVtW19faW5kZXhdID0gKF9fVkFfQVJHU19fKTsgXAorCX0gd2hpbGUoMCkKICNkZWZp
bmUgZGFycmF5X3B1c2goYXJyLCAuLi4pIGRhcnJheV9hcHBlbmQoYXJyLCBfX1ZBX0FSR1NfXykK
IAogCmRpZmYgLS1naXQgYS9jY2FuL2RhcnJheS90ZXN0L3J1bi5jIGIvY2Nhbi9kYXJyYXkvdGVz
dC9ydW4uYwppbmRleCAzZDk2ZmE1Ni4uNTg4OGFmNjAgMTAwNjQ0Ci0tLSBhL2NjYW4vZGFycmF5
L3Rlc3QvcnVuLmMKKysrIGIvY2Nhbi9kYXJyYXkvdGVzdC9ydW4uYwpAQCAtMzgsNyArMzgsNyBA
QCBpbnQgbWFpbih2b2lkKSB7CiAJdHJhY2UoIkdlbmVyYXRpbmcgYW1hbGdhbXMgKGludGVybmFs
KSIpOwogCWdlbmVyYXRlQW1hbGdhbXMoKTsKIAkKLQlwbGFuX3Rlc3RzKDQxKTsKKwlwbGFuX3Rl
c3RzKDQ3KTsKIAkKIAl0ZXN0TGl0cygpOwogCQpAQCAtNzAsNyArNzAsMjUgQEAgaW50IG1haW4o
dm9pZCkgewogCQlvazEoZGFycmF5X3NpemUoYXJyKSA9PSAwKTsKIAl9CiAJcmVzZXQoYXJyKTsK
LQkKKworCXRlc3RpbmcoZGFycmF5X2luc2VydCk7CisJeworCQlzaXplX3QgbWlkZGxlX2k7CisK
KwkJZm9yIChpPTA7IGkgPCBBUlJBWV9TSVpFKGxvdHNPZk51bWJlcnMpOyBpKyspCisJCQlkYXJy
YXlfaW5zZXJ0KGFyciwgaSwgbG90c09mTnVtYmVyc1tpXSk7CisJCW9rMShkYXJyYXlfc2l6ZShh
cnIpID09IEFSUkFZX1NJWkUobG90c09mTnVtYmVycykpOworCQlvazEoZGFycmF5X2FsbG9jKGFy
cikgPj0gZGFycmF5X3NpemUoYXJyKSk7CisJCW9rMSghbWVtY21wKGFyci5pdGVtLCBsb3RzT2ZO
dW1iZXJzLCBzaXplb2YobG90c09mTnVtYmVycykpKTsKKworCQltaWRkbGVfaSA9IEFSUkFZX1NJ
WkUobG90c09mTnVtYmVycykgLyAyOworCQlkYXJyYXlfaW5zZXJ0KGFyciwgbWlkZGxlX2ksIDQy
KTsKKwkJb2sxKGRhcnJheV9zaXplKGFycikgPT0gQVJSQVlfU0laRShsb3RzT2ZOdW1iZXJzKSAr
IDEpOworCQlvazEoYXJyLml0ZW1bbWlkZGxlX2ldID09IDQyKTsKKwkJb2sxKGFyci5pdGVtW21p
ZGRsZV9pICsgMV0gPT0gbG90c09mTnVtYmVyc1ttaWRkbGVfaV0pOworCX0KKwlyZXNldChhcnIp
OworCiAJdGVzdGluZyhkYXJyYXlfZnJvbV9jLCBkYXJyYXlfZm9yZWFjaCwgZGFycmF5X2ZvcmVh
Y2hfcmV2ZXJzZSk7CiAJewogCQlsb25nICAgKmk7Ci0tIAoyLjE0LjEKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmNjYW4gbWFpbGluZyBsaXN0CmNjYW5A
bGlzdHMub3psYWJzLm9yZwpodHRwczovL2xpc3RzLm96bGFicy5vcmcvbGlzdGluZm8vY2Nhbgo=