diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-07-28 00:41:45 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-07-28 00:41:45 +0200 |
commit | 7bfc26749662e3a3227037cce4a24748343b50be (patch) | |
tree | 2bd0ad79d43b2e72407792d30cac97e5fb8f825d /openbsc/src/gsm_subscriber.c | |
parent | b49248bf48b0856e3b156810681ea3fca44c728a (diff) |
move allocation of talloc contexts into link-time constructor
This is much more optimal than checking if the context exists every
time we allocate the respective object.
Diffstat (limited to 'openbsc/src/gsm_subscriber.c')
-rw-r--r-- | openbsc/src/gsm_subscriber.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/openbsc/src/gsm_subscriber.c b/openbsc/src/gsm_subscriber.c index e89290623..748015693 100644 --- a/openbsc/src/gsm_subscriber.c +++ b/openbsc/src/gsm_subscriber.c @@ -103,10 +103,6 @@ struct gsm_subscriber *subscr_alloc(void) { struct gsm_subscriber *s; - if (!tall_subscr_ctx) - tall_subscr_ctx = talloc_named_const(tall_bsc_ctx, 1, - "subscriber"); - s = talloc(tall_subscr_ctx, struct gsm_subscriber); if (!s) return NULL; @@ -213,10 +209,6 @@ void subscr_get_channel(struct gsm_subscriber *subscr, { struct subscr_request *request; - if (!tall_sub_req_ctx) - tall_sub_req_ctx = talloc_named_const(tall_bsc_ctx, 1, - "subscr_request"); - request = talloc(tall_sub_req_ctx, struct subscr_request); if (!request) { if (cbfn) @@ -273,3 +265,11 @@ void subscr_put_channel(struct gsm_lchan *lchan) subscr_send_paging_request(lchan->subscr); } + +static __attribute__((constructor)) void on_dso_load_subscr(void) +{ + tall_subscr_ctx = talloc_named_const(tall_bsc_ctx, 1, "subscriber"); + + tall_sub_req_ctx = talloc_named_const(tall_bsc_ctx, 1, + "subscr_request"); +} |