Mercurial > pidgin
view src/protocols/zephyr/ZGetLocs.c @ 7763:dc79649b829d
[gaim-migrate @ 8408]
This is an implementation of immutable, reference-counted strings. It
is exceedingly trivial, I have no idea why I didn't do this long
ago... PLEASE use these anywhere you pass around strings that may be
stuck in multiple places; I'm not sure that it will save us too much
heap holistically, but it should prevent having to make a hojillion
twenty-byte allocations and free them immediately.
committer: Tailor Script <tailor@pidgin.im>
author | Ethan Blanton <elb@pidgin.im> |
---|---|
date | Fri, 05 Dec 2003 16:56:03 +0000 |
parents | 424a40f12a6c |
children | 43d6c08d7e96 |
line wrap: on
line source
/* This file is part of the Project Athena Zephyr Notification System. * It contains source for the ZGetLocations function. * * Created by: Robert French * * $Source$ * $Author: warmenhoven $ * * Copyright (c) 1987 by the Massachusetts Institute of Technology. * For copying and distribution information, see the file * "mit-copyright.h". */ /* $Header$ */ #ifndef lint static char rcsid_ZGetLocations_c[] = "$Header$"; #endif #include <internal.h> #define min(a,b) ((a)<(b)?(a):(b)) Code_t ZGetLocations(location, numlocs) ZLocations_t *location; int *numlocs; { int i; if (!__locate_list) return (ZERR_NOLOCATIONS); if (__locate_next == __locate_num) return (ZERR_NOMORELOCS); for (i=0;i<min(*numlocs, __locate_num-__locate_next);i++) location[i] = __locate_list[i+__locate_next]; if (__locate_num-__locate_next < *numlocs) *numlocs = __locate_num-__locate_next; __locate_next += *numlocs; return (ZERR_NONE); }