parsav  Diff

Differences From Artifact [3525ca58bc]:

To Artifact [a033243372]:


     9      9   	co: &lib.srv.convo,
    10     10   	actor: &lib.store.actor,
    11     11   	relationship: &lib.store.relationship
    12     12   ): pstr
    13     13   	var aux: lib.str.acc
    14     14   	var followed = false -- FIXME
    15     15   	if co.aid ~= 0 and co.who.id == actor.id then
    16         -		aux:compose('<a accesskey="a" class="button" href="/conf/profile?go=/@',actor.handle,'">alter</a>')
           16  +		aux:pcompose(&co.srv.pool,'<a accesskey="a" class="button" href="/conf/profile?go=/@',actor.handle,'">alter</a>')
    17     17   	elseif co.aid ~= 0 then
    18     18   		if not relationship.rel.follow() then
    19         -			aux:compose('<button accesskey="f" method="post" class="pos" name="act" value="follow">follow</button>')
           19  +			aux:pcompose(&co.srv.pool,'<button accesskey="f" method="post" class="pos" name="act" value="follow">follow</button>')
    20     20   		elseif relationship.rel.follow() then
    21         -			aux:compose('<button accesskey="f" method="post" class="neg" name="act" value="unfollow">unfollow</button>')
           21  +			aux:pcompose(&co.srv.pool,'<button accesskey="f" method="post" class="neg" name="act" value="unfollow">unfollow</button>')
    22     22   		end
    23     23   		aux:lpush('<a accesskey="h" class="button" href="/'):push(actor.xid,0):lpush('/chat">chat</a>')
    24     24   		if co.who.rights.powers:affect_users() and co.who:overpowers(actor) then
    25     25   			aux:lpush('<a accesskey="n" class="button" href="/'):push(actor.xid,0):lpush('/ctl">control</a>')
    26     26   		end
    27     27   	else
    28         -		aux:compose('<a accesskey="f" class="button" href="/', actor.xid, '/follow">remote follow</a>')
           28  +		aux:pcompose(&co.srv.pool,'<a accesskey="f" class="button" href="/', actor.xid, '/follow">remote follow</a>')
    29     29   	end
    30     30   	var auxp = aux:finalize()
    31     31   	var timestr: int8[26] lib.osclock.ctime_r(&actor.knownsince, &timestr[0])
    32     32   
    33     33   	var strfbuf: int8[28*4]
    34     34   	var stats = co.srv:actor_stats(actor.id)
    35     35   		var sn_posts     = cs(lib.math.decstr_friendly(stats.posts, &strfbuf[ [strfbuf.type.N - 1] ]))
    36     36   		var sn_follows   = cs(lib.math.decstr_friendly(stats.follows, sn_posts.ptr - 1))
    37     37   		var sn_followers = cs(lib.math.decstr_friendly(stats.followers, sn_follows.ptr - 1))
    38     38   		var sn_mutuals   = cs(lib.math.decstr_friendly(stats.mutuals, sn_followers.ptr - 1))
    39     39   	var bio = lib.str.plit '<em style="opacity:0.6">tall, dark, and mysterious</em>'
    40     40   	if actor.bio ~= nil then
    41         -		bio = lib.smackdown.html(cs(actor.bio),false)
           41  +		bio = lib.smackdown.html(&co.srv.pool,cs(actor.bio),false)
    42     42   	end
    43     43   	var fullname = lib.render.nym(actor,0,nil,false) defer fullname:free()
    44         -	var comments: lib.str.acc comments:init(64)
           44  +	var comments: lib.str.acc comments:pool(&co.srv.pool,64)
    45     45   
    46     46   	if co.srv.cfg.master == actor.id then
    47     47   		var foundertxt = lib.str.plit 'founder'
    48     48   		if co.srv.cfg.ui_cue_founder:ref() then
    49     49   			if co.srv.cfg.ui_cue_founder.ct == 0 -- empty string, suppress field
    50     50   				then foundertxt = pstr.null()
    51     51   				else foundertxt = co.srv.cfg.ui_cue_founder
................................................................................
    94     94   
    95     95   		remarks = '';
    96     96   
    97     97   		auxbtn = auxp;
    98     98   	}
    99     99   	if comments.sz > 0 then profile.remarks = comments:finalize() end
   100    100   
   101         -	var ret = profile:tostr()
   102         -	auxp:free() 
   103         -	if actor.bio ~= nil then bio:free() end
          101  +	var ret = profile:poolstr(&co.srv.pool)
          102  +	-- auxp:free() 
          103  +	--if actor.bio ~= nil then bio:free() end
   104    104   	if comments.sz > 0 then profile.remarks:free() end
   105    105   	return ret
   106    106   end
   107    107   
   108    108   return render_profile