Remove meth_num in ex_data_impl.c.
It's unnecessary and Windows was unhappy about the signed/unsigned
comparisons.
Change-Id: If2c4a20de48a2cddb0a4e0ca01e84eef91b155db
Reviewed-on: https://boringssl-review.googlesource.com/1863
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/ex_data_impl.c b/crypto/ex_data_impl.c
index ddc6b8a..972e85a 100644
--- a/crypto/ex_data_impl.c
+++ b/crypto/ex_data_impl.c
@@ -130,8 +130,6 @@
typedef struct st_ex_class_item {
STACK_OF(CRYPTO_EX_DATA_FUNCS) *meth;
int class_value;
- /* TODO(fork): isn't |meth_num| just the length of |meth|? */
- int meth_num;
} EX_CLASS_ITEM;
static LHASH_OF(EX_CLASS_ITEM) *global_classes = NULL;
@@ -215,7 +213,6 @@
class_item = OPENSSL_malloc(sizeof(EX_CLASS_ITEM));
if (class_item) {
class_item->class_value = class_value;
- class_item->meth_num = 0;
class_item->meth = sk_CRYPTO_EX_DATA_FUNCS_new_null();
if (class_item->meth != NULL) {
EX_CLASS_ITEM *old_data;
@@ -265,17 +262,14 @@
funcs->free_func = free_func;
CRYPTO_w_lock(CRYPTO_LOCK_EX_DATA);
- /* TODO(fork): this loop appears to only ever run once. */
- while (sk_CRYPTO_EX_DATA_FUNCS_num(item->meth) <= item->meth_num) {
- if (!sk_CRYPTO_EX_DATA_FUNCS_push(item->meth, NULL)) {
- OPENSSL_PUT_ERROR(CRYPTO, get_new_index, ERR_R_MALLOC_FAILURE);
- OPENSSL_free(funcs);
- goto err;
- }
+
+ if (!sk_CRYPTO_EX_DATA_FUNCS_push(item->meth, funcs)) {
+ OPENSSL_PUT_ERROR(CRYPTO, get_new_index, ERR_R_MALLOC_FAILURE);
+ OPENSSL_free(funcs);
+ goto err;
}
- ret = item->meth_num++;
- (void)sk_CRYPTO_EX_DATA_FUNCS_set(item->meth, ret, funcs);
+ ret = sk_CRYPTO_EX_DATA_FUNCS_num(item->meth) - 1;
err:
CRYPTO_w_unlock(CRYPTO_LOCK_EX_DATA);