[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=