12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429 |
- /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
- *vim: tabstop=4 shiftwidth=4 expandtab
- */
- /* This file gets installed, so we can't assume config.h is available */
- #ifdef HAVE_CONFIG_H
- #include "config.h"
- #endif
- #include "gimarshallingtests.h"
- #include <string.h>
- static void gi_marshalling_tests_boxed_struct_free (GIMarshallingTestsBoxedStruct *v);
- /* Booleans */
- gboolean
- gi_marshalling_tests_boolean_return_true (void)
- {
- return TRUE;
- }
- gboolean
- gi_marshalling_tests_boolean_return_false (void)
- {
- return FALSE;
- }
- void
- gi_marshalling_tests_boolean_in_true (gboolean v)
- {
- g_assert (v == TRUE);
- }
- void
- gi_marshalling_tests_boolean_in_false (gboolean v)
- {
- g_assert (v == FALSE);
- }
- /**
- * gi_marshalling_tests_boolean_out_true:
- * @v: (out):
- */
- void
- gi_marshalling_tests_boolean_out_true (gboolean *v)
- {
- *v = TRUE;
- }
- /**
- * gi_marshalling_tests_boolean_out_false:
- * @v: (out):
- */
- void
- gi_marshalling_tests_boolean_out_false (gboolean *v)
- {
- *v = FALSE;
- }
- /**
- * gi_marshalling_tests_boolean_inout_true_false:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_boolean_inout_true_false (gboolean *v)
- {
- g_assert (*v == TRUE);
- *v = FALSE;
- }
- /**
- * gi_marshalling_tests_boolean_inout_false_true:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_boolean_inout_false_true (gboolean *v)
- {
- g_assert (*v == FALSE);
- *v = TRUE;
- }
- /* Integers */
- gint8
- gi_marshalling_tests_int8_return_max (void)
- {
- return G_MAXINT8;
- }
- gint8
- gi_marshalling_tests_int8_return_min (void)
- {
- return G_MININT8;
- }
- void
- gi_marshalling_tests_int8_in_max (gint8 v)
- {
- g_assert_cmpint (v, ==, G_MAXINT8);
- }
- void
- gi_marshalling_tests_int8_in_min (gint8 v)
- {
- g_assert_cmpint (v, ==, G_MININT8);
- }
- /**
- * gi_marshalling_tests_int8_out_max:
- * @v: (out):
- */
- void
- gi_marshalling_tests_int8_out_max (gint8 *v)
- {
- *v = G_MAXINT8;
- }
- /**
- * gi_marshalling_tests_int8_out_min:
- * @v: (out):
- */
- void
- gi_marshalling_tests_int8_out_min (gint8 *v)
- {
- *v = G_MININT8;
- }
- /**
- * gi_marshalling_tests_int8_inout_max_min:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_int8_inout_max_min (gint8 *v)
- {
- g_assert_cmpint (*v, ==, G_MAXINT8);
- *v = G_MININT8;
- }
- /**
- * gi_marshalling_tests_int8_inout_min_max:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_int8_inout_min_max (gint8 *v)
- {
- g_assert_cmpint (*v, ==, G_MININT8);
- *v = G_MAXINT8;
- }
- guint8
- gi_marshalling_tests_uint8_return (void)
- {
- return G_MAXUINT8;
- }
- void
- gi_marshalling_tests_uint8_in (guint8 v)
- {
- g_assert_cmpuint (v, ==, G_MAXUINT8);
- }
- /**
- * gi_marshalling_tests_uint8_out:
- * @v: (out):
- */
- void
- gi_marshalling_tests_uint8_out (guint8 *v)
- {
- *v = G_MAXUINT8;
- }
- /**
- * gi_marshalling_tests_uint8_inout:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_uint8_inout (guint8 *v)
- {
- g_assert_cmpuint (*v, ==, G_MAXUINT8);
- *v = 0;
- }
- gint16
- gi_marshalling_tests_int16_return_max (void)
- {
- return G_MAXINT16;
- }
- gint16
- gi_marshalling_tests_int16_return_min (void)
- {
- return G_MININT16;
- }
- void
- gi_marshalling_tests_int16_in_max (gint16 v)
- {
- g_assert_cmpint (v, ==, G_MAXINT16);
- }
- void
- gi_marshalling_tests_int16_in_min (gint16 v)
- {
- g_assert_cmpint (v, ==, G_MININT16);
- }
- /**
- * gi_marshalling_tests_int16_out_max:
- * @v: (out):
- */
- void
- gi_marshalling_tests_int16_out_max (gint16 *v)
- {
- *v = G_MAXINT16;
- }
- /**
- * gi_marshalling_tests_int16_out_min:
- * @v: (out):
- */
- void
- gi_marshalling_tests_int16_out_min (gint16 *v)
- {
- *v = G_MININT16;
- }
- /**
- * gi_marshalling_tests_int16_inout_max_min:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_int16_inout_max_min (gint16 *v)
- {
- g_assert_cmpint (*v, ==, G_MAXINT16);
- *v = G_MININT16;
- }
- /**
- * gi_marshalling_tests_int16_inout_min_max:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_int16_inout_min_max (gint16 *v)
- {
- g_assert_cmpint (*v, ==, G_MININT16);
- *v = G_MAXINT16;
- }
- guint16
- gi_marshalling_tests_uint16_return (void)
- {
- return G_MAXUINT16;
- }
- void
- gi_marshalling_tests_uint16_in (guint16 v)
- {
- g_assert_cmpuint (v, ==, G_MAXUINT16);
- }
- /**
- * gi_marshalling_tests_uint16_out:
- * @v: (out):
- */
- void
- gi_marshalling_tests_uint16_out (guint16 *v)
- {
- *v = G_MAXUINT16;
- }
- /**
- * gi_marshalling_tests_uint16_inout:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_uint16_inout (guint16 *v)
- {
- g_assert_cmpuint (*v, ==, G_MAXUINT16);
- *v = 0;
- }
- gint32
- gi_marshalling_tests_int32_return_max (void)
- {
- return G_MAXINT32;
- }
- gint32
- gi_marshalling_tests_int32_return_min (void)
- {
- return G_MININT32;
- }
- void
- gi_marshalling_tests_int32_in_max (gint32 v)
- {
- g_assert_cmpint (v, ==, G_MAXINT32);
- }
- void
- gi_marshalling_tests_int32_in_min (gint32 v)
- {
- g_assert_cmpint (v, ==, G_MININT32);
- }
- /**
- * gi_marshalling_tests_int32_out_max:
- * @v: (out):
- */
- void
- gi_marshalling_tests_int32_out_max (gint32 *v)
- {
- *v = G_MAXINT32;
- }
- /**
- * gi_marshalling_tests_int32_out_min:
- * @v: (out):
- */
- void
- gi_marshalling_tests_int32_out_min (gint32 *v)
- {
- *v = G_MININT32;
- }
- /**
- * gi_marshalling_tests_int32_inout_max_min:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_int32_inout_max_min (gint32 *v)
- {
- g_assert_cmpint (*v, ==, G_MAXINT32);
- *v = G_MININT32;
- }
- /**
- * gi_marshalling_tests_int32_inout_min_max:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_int32_inout_min_max (gint32 *v)
- {
- g_assert_cmpint (*v, ==, G_MININT32);
- *v = G_MAXINT32;
- }
- guint32
- gi_marshalling_tests_uint32_return (void)
- {
- return G_MAXUINT32;
- }
- void
- gi_marshalling_tests_uint32_in (guint32 v)
- {
- g_assert_cmpuint (v, ==, G_MAXUINT32);
- }
- /**
- * gi_marshalling_tests_uint32_out:
- * @v: (out):
- */
- void
- gi_marshalling_tests_uint32_out (guint32 *v)
- {
- *v = G_MAXUINT32;
- }
- /**
- * gi_marshalling_tests_uint32_inout:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_uint32_inout (guint32 *v)
- {
- g_assert_cmpuint (*v, ==, G_MAXUINT32);
- *v = 0;
- }
- gint64
- gi_marshalling_tests_int64_return_max (void)
- {
- return G_MAXINT64;
- }
- gint64
- gi_marshalling_tests_int64_return_min (void)
- {
- return G_MININT64;
- }
- void
- gi_marshalling_tests_int64_in_max (gint64 v)
- {
- g_assert_cmpint (v, ==, G_MAXINT64);
- }
- void
- gi_marshalling_tests_int64_in_min (gint64 v)
- {
- g_assert_cmpint (v, ==, G_MININT64);
- }
- /**
- * gi_marshalling_tests_int64_out_max:
- * @v: (out):
- */
- void
- gi_marshalling_tests_int64_out_max (gint64 *v)
- {
- *v = G_MAXINT64;
- }
- /**
- * gi_marshalling_tests_int64_out_min:
- * @v: (out):
- */
- void
- gi_marshalling_tests_int64_out_min (gint64 *v)
- {
- *v = G_MININT64;
- }
- /**
- * gi_marshalling_tests_int64_inout_max_min:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_int64_inout_max_min (gint64 *v)
- {
- g_assert_cmpint (*v, ==, G_MAXINT64);
- *v = G_MININT64;
- }
- /**
- * gi_marshalling_tests_int64_inout_min_max:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_int64_inout_min_max (gint64 *v)
- {
- g_assert_cmpint (*v, ==, G_MININT64);
- *v = G_MAXINT64;
- }
- guint64
- gi_marshalling_tests_uint64_return (void)
- {
- return G_MAXUINT64;
- }
- void
- gi_marshalling_tests_uint64_in (guint64 v)
- {
- g_assert_cmpuint (v, ==, G_MAXUINT64);
- }
- /**
- * gi_marshalling_tests_uint64_out:
- * @v: (out):
- */
- void
- gi_marshalling_tests_uint64_out (guint64 *v)
- {
- *v = G_MAXUINT64;
- }
- /**
- * gi_marshalling_tests_uint64_inout:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_uint64_inout (guint64 *v)
- {
- g_assert_cmpuint (*v, ==, G_MAXUINT64);
- *v = 0;
- }
- gshort
- gi_marshalling_tests_short_return_max (void)
- {
- return G_MAXSHORT;
- }
- gshort
- gi_marshalling_tests_short_return_min (void)
- {
- return G_MINSHORT;
- }
- void
- gi_marshalling_tests_short_in_max (gshort short_)
- {
- g_assert_cmpint (short_, ==, G_MAXSHORT);
- }
- void
- gi_marshalling_tests_short_in_min (gshort short_)
- {
- g_assert_cmpint (short_, ==, G_MINSHORT);
- }
- /**
- * gi_marshalling_tests_short_out_max:
- * @short_: (out):
- */
- void
- gi_marshalling_tests_short_out_max (gshort *short_)
- {
- *short_ = G_MAXSHORT;
- }
- /**
- * gi_marshalling_tests_short_out_min:
- * @short_: (out):
- */
- void
- gi_marshalling_tests_short_out_min (gshort *short_)
- {
- *short_ = G_MINSHORT;
- }
- /**
- * gi_marshalling_tests_short_inout_max_min:
- * @short_: (inout):
- */
- void
- gi_marshalling_tests_short_inout_max_min (gshort *short_)
- {
- g_assert_cmpint (*short_, ==, G_MAXSHORT);
- *short_ = G_MINSHORT;
- }
- /**
- * gi_marshalling_tests_short_inout_min_max:
- * @short_: (inout):
- */
- void
- gi_marshalling_tests_short_inout_min_max (gshort *short_)
- {
- g_assert_cmpint (*short_, ==, G_MINSHORT);
- *short_ = G_MAXSHORT;
- }
- gushort
- gi_marshalling_tests_ushort_return (void)
- {
- return G_MAXUSHORT;
- }
- void
- gi_marshalling_tests_ushort_in (gushort ushort_)
- {
- g_assert_cmpuint (ushort_, ==, G_MAXUSHORT);
- }
- /**
- * gi_marshalling_tests_ushort_out:
- * @ushort_: (out):
- */
- void
- gi_marshalling_tests_ushort_out (gushort *ushort_)
- {
- *ushort_ = G_MAXUSHORT;
- }
- /**
- * gi_marshalling_tests_ushort_inout:
- * @ushort_: (inout):
- */
- void
- gi_marshalling_tests_ushort_inout (gushort *ushort_)
- {
- g_assert_cmpuint (*ushort_, ==, G_MAXUSHORT);
- *ushort_ = 0;
- }
- gint
- gi_marshalling_tests_int_return_max (void)
- {
- return G_MAXINT;
- }
- gint
- gi_marshalling_tests_int_return_min (void)
- {
- return G_MININT;
- }
- void
- gi_marshalling_tests_int_in_max (gint int_)
- {
- g_assert_cmpint (int_, ==, G_MAXINT);
- }
- void
- gi_marshalling_tests_int_in_min (gint int_)
- {
- g_assert_cmpint (int_, ==, G_MININT);
- }
- /**
- * gi_marshalling_tests_int_out_max:
- * @int_: (out):
- */
- void
- gi_marshalling_tests_int_out_max (gint *int_)
- {
- *int_ = G_MAXINT;
- }
- /**
- * gi_marshalling_tests_int_out_min:
- * @int_: (out):
- */
- void
- gi_marshalling_tests_int_out_min (gint *int_)
- {
- *int_ = G_MININT;
- }
- /**
- * gi_marshalling_tests_int_inout_max_min:
- * @int_: (inout):
- */
- void
- gi_marshalling_tests_int_inout_max_min (gint *int_)
- {
- g_assert_cmpint (*int_, ==, G_MAXINT);
- *int_ = G_MININT;
- }
- /**
- * gi_marshalling_tests_int_inout_min_max:
- * @int_: (inout):
- */
- void
- gi_marshalling_tests_int_inout_min_max (gint *int_)
- {
- g_assert_cmpint (*int_, ==, G_MININT);
- *int_ = G_MAXINT;
- }
- guint
- gi_marshalling_tests_uint_return (void)
- {
- return G_MAXUINT;
- }
- void
- gi_marshalling_tests_uint_in (guint uint_)
- {
- g_assert_cmpuint (uint_, ==, G_MAXUINT);
- }
- /**
- * gi_marshalling_tests_uint_out:
- * @uint_: (out):
- */
- void
- gi_marshalling_tests_uint_out (guint *uint_)
- {
- *uint_ = G_MAXUINT;
- }
- /**
- * gi_marshalling_tests_uint_inout:
- * @uint_: (inout):
- */
- void
- gi_marshalling_tests_uint_inout (guint *uint_)
- {
- g_assert_cmpuint (*uint_, ==, G_MAXUINT);
- *uint_ = 0;
- }
- glong
- gi_marshalling_tests_long_return_max (void)
- {
- return G_MAXLONG;
- }
- glong
- gi_marshalling_tests_long_return_min (void)
- {
- return G_MINLONG;
- }
- void
- gi_marshalling_tests_long_in_max (glong long_)
- {
- g_assert_cmpint (long_, ==, G_MAXLONG);
- }
- void
- gi_marshalling_tests_long_in_min (glong long_)
- {
- g_assert_cmpint (long_, ==, G_MINLONG);
- }
- /**
- * gi_marshalling_tests_long_out_max:
- * @long_: (out):
- */
- void
- gi_marshalling_tests_long_out_max (glong *long_)
- {
- *long_ = G_MAXLONG;
- }
- /**
- * gi_marshalling_tests_long_out_min:
- * @long_: (out):
- */
- void
- gi_marshalling_tests_long_out_min (glong *long_)
- {
- *long_ = G_MINLONG;
- }
- /**
- * gi_marshalling_tests_long_inout_max_min:
- * @long_: (inout):
- */
- void
- gi_marshalling_tests_long_inout_max_min (glong *long_)
- {
- g_assert_cmpint (*long_, ==, G_MAXLONG);
- *long_ = G_MINLONG;
- }
- /**
- * gi_marshalling_tests_long_inout_min_max:
- * @long_: (inout):
- */
- void
- gi_marshalling_tests_long_inout_min_max (glong *long_)
- {
- g_assert_cmpint (*long_, ==, G_MINLONG);
- *long_ = G_MAXLONG;
- }
- gulong
- gi_marshalling_tests_ulong_return (void)
- {
- return G_MAXULONG;
- }
- void
- gi_marshalling_tests_ulong_in (gulong ulong_)
- {
- g_assert_cmpuint (ulong_, ==, G_MAXULONG);
- }
- /**
- * gi_marshalling_tests_ulong_out:
- * @ulong_: (out):
- */
- void
- gi_marshalling_tests_ulong_out (gulong *ulong_)
- {
- *ulong_ = G_MAXULONG;
- }
- /**
- * gi_marshalling_tests_ulong_inout:
- * @ulong_: (inout):
- */
- void
- gi_marshalling_tests_ulong_inout (gulong *ulong_)
- {
- g_assert_cmpuint (*ulong_, ==, G_MAXULONG);
- *ulong_ = 0;
- }
- gssize
- gi_marshalling_tests_ssize_return_max (void)
- {
- return G_MAXSSIZE;
- }
- gssize
- gi_marshalling_tests_ssize_return_min (void)
- {
- return G_MINSSIZE;
- }
- void
- gi_marshalling_tests_ssize_in_max (gssize ssize)
- {
- g_assert_cmpint (ssize, ==, G_MAXSSIZE);
- }
- void
- gi_marshalling_tests_ssize_in_min (gssize ssize)
- {
- g_assert_cmpint (ssize, ==, G_MINSSIZE);
- }
- /**
- * gi_marshalling_tests_ssize_out_max:
- * @ssize: (out):
- */
- void
- gi_marshalling_tests_ssize_out_max (gssize *ssize)
- {
- *ssize = G_MAXSSIZE;
- }
- /**
- * gi_marshalling_tests_ssize_out_min:
- * @ssize: (out):
- */
- void
- gi_marshalling_tests_ssize_out_min (gssize *ssize)
- {
- *ssize = G_MINSSIZE;
- }
- /**
- * gi_marshalling_tests_ssize_inout_max_min:
- * @ssize: (inout):
- */
- void
- gi_marshalling_tests_ssize_inout_max_min (gssize *ssize)
- {
- g_assert_cmpint (*ssize, ==, G_MAXSSIZE);
- *ssize = G_MINSSIZE;
- }
- /**
- * gi_marshalling_tests_ssize_inout_min_max:
- * @ssize: (inout):
- */
- void
- gi_marshalling_tests_ssize_inout_min_max (gssize *ssize)
- {
- g_assert_cmpint (*ssize, ==, G_MINSSIZE);
- *ssize = G_MAXSSIZE;
- }
- gsize
- gi_marshalling_tests_size_return (void)
- {
- return G_MAXSIZE;
- }
- void
- gi_marshalling_tests_size_in (gsize size)
- {
- g_assert_cmpuint (size, ==, G_MAXSIZE);
- }
- /**
- * gi_marshalling_tests_size_out:
- * @size: (out):
- */
- void
- gi_marshalling_tests_size_out (gsize *size)
- {
- *size = G_MAXSIZE;
- }
- /**
- * gi_marshalling_tests_size_inout:
- * @size: (inout):
- */
- void
- gi_marshalling_tests_size_inout (gsize *size)
- {
- g_assert_cmpuint (*size, ==, G_MAXSIZE);
- *size = 0;
- }
- gfloat
- gi_marshalling_tests_float_return (void)
- {
- return G_MAXFLOAT;
- }
- void
- gi_marshalling_tests_float_in (gfloat v)
- {
- g_assert_cmpfloat (v, ==, G_MAXFLOAT);
- }
- /**
- * gi_marshalling_tests_float_out:
- * @v: (out):
- */
- void
- gi_marshalling_tests_float_out (gfloat *v)
- {
- *v = G_MAXFLOAT;
- }
- /**
- * gi_marshalling_tests_float_inout:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_float_inout (gfloat *v)
- {
- g_assert_cmpfloat (*v, ==, G_MAXFLOAT);
- *v = G_MINFLOAT;
- }
- gdouble
- gi_marshalling_tests_double_return (void)
- {
- return G_MAXDOUBLE;
- }
- void
- gi_marshalling_tests_double_in (gdouble v)
- {
- g_assert_cmpfloat (v, ==, G_MAXDOUBLE);
- }
- /**
- * gi_marshalling_tests_double_out:
- * @v: (out):
- */
- void
- gi_marshalling_tests_double_out (gdouble *v)
- {
- *v = G_MAXDOUBLE;
- }
- /**
- * gi_marshalling_tests_double_inout:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_double_inout (gdouble *v)
- {
- g_assert_cmpfloat (*v, ==, G_MAXDOUBLE);
- *v = G_MINDOUBLE;
- }
- time_t
- gi_marshalling_tests_time_t_return (void)
- {
- return 1234567890;
- }
- void
- gi_marshalling_tests_time_t_in (time_t v)
- {
- g_assert_cmpuint (v, ==, 1234567890);
- }
- /**
- * gi_marshalling_tests_time_t_out:
- * @v: (out):
- */
- void
- gi_marshalling_tests_time_t_out (time_t *v)
- {
- *v = 1234567890;
- }
- /**
- * gi_marshalling_tests_time_t_inout:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_time_t_inout (time_t *v)
- {
- g_assert_cmpuint (*v, ==, 1234567890);
- *v = 0;
- }
- GType
- gi_marshalling_tests_gtype_return (void)
- {
- return G_TYPE_NONE;
- }
- GType
- gi_marshalling_tests_gtype_string_return (void)
- {
- return G_TYPE_STRING;
- }
- void
- gi_marshalling_tests_gtype_in (GType gtype)
- {
- g_assert (gtype == G_TYPE_NONE);
- }
- void
- gi_marshalling_tests_gtype_string_in (GType gtype)
- {
- g_assert (gtype == G_TYPE_STRING);
- }
- /**
- * gi_marshalling_tests_gtype_out:
- * @gtype: (out):
- */
- void
- gi_marshalling_tests_gtype_out (GType *gtype)
- {
- *gtype = G_TYPE_NONE;
- }
- /**
- * gi_marshalling_tests_gtype_string_out:
- * @gtype: (out):
- */
- void
- gi_marshalling_tests_gtype_string_out (GType *gtype)
- {
- *gtype = G_TYPE_STRING;
- }
- /**
- * gi_marshalling_tests_gtype_inout:
- * @gtype: (inout):
- */
- void
- gi_marshalling_tests_gtype_inout (GType *gtype)
- {
- g_assert (*gtype == G_TYPE_NONE);
- *gtype = G_TYPE_INT;
- }
- const gchar *
- gi_marshalling_tests_utf8_none_return (void)
- {
- return GI_MARSHALLING_TESTS_CONSTANT_UTF8;
- }
- gchar *
- gi_marshalling_tests_utf8_full_return (void)
- {
- return g_strdup (GI_MARSHALLING_TESTS_CONSTANT_UTF8);
- }
- void
- gi_marshalling_tests_utf8_none_in (const gchar *utf8)
- {
- g_assert_cmpstr (GI_MARSHALLING_TESTS_CONSTANT_UTF8, ==, utf8);
- }
- /**
- * gi_marshalling_tests_utf8_as_uint8array_in:
- * @array: (array length=len) (element-type guint8): Byte data that happens to be UTF-8
- * @len: Length
- *
- * Takes data that happens to be UTF-8 as a byte array, to test
- * binding conversion from their string type (e.g. JavaScript's
- * UTF-16) to UTF-8.
- */
- void
- gi_marshalling_tests_utf8_as_uint8array_in (const guint8 *array, gsize len)
- {
- gsize orig_len = strlen (GI_MARSHALLING_TESTS_CONSTANT_UTF8);
- g_assert_cmpint (orig_len, ==, len);
- g_assert (memcmp (GI_MARSHALLING_TESTS_CONSTANT_UTF8, array, len) == 0);
- }
- /**
- * gi_marshalling_tests_utf8_none_out:
- * @utf8: (out) (transfer none):
- */
- void
- gi_marshalling_tests_utf8_none_out (gchar **utf8)
- {
- *utf8 = GI_MARSHALLING_TESTS_CONSTANT_UTF8;
- }
- /**
- * gi_marshalling_tests_utf8_full_out:
- * @utf8: (out) (transfer full):
- */
- void
- gi_marshalling_tests_utf8_full_out (gchar **utf8)
- {
- *utf8 = g_strdup (GI_MARSHALLING_TESTS_CONSTANT_UTF8);
- }
- /**
- * gi_marshalling_tests_utf8_dangling_out:
- * @utf8: (out) (transfer full):
- */
- void
- gi_marshalling_tests_utf8_dangling_out (gchar **utf8)
- {
- /* Intentionally don't touch the pointer to see how
- the bindings handle this case. Bindings should be
- robust against broken C functions and can initialize
- even OUT vlues to NULL.
- */
- }
- /**
- * gi_marshalling_tests_utf8_none_inout:
- * @utf8: (inout) (transfer none):
- */
- void
- gi_marshalling_tests_utf8_none_inout (gchar **utf8)
- {
- g_assert_cmpstr (GI_MARSHALLING_TESTS_CONSTANT_UTF8, ==, *utf8);
- *utf8 = "";
- }
- /**
- * gi_marshalling_tests_utf8_full_inout:
- * @utf8: (inout) (transfer full):
- */
- void
- gi_marshalling_tests_utf8_full_inout (gchar **utf8)
- {
- g_assert_cmpstr (GI_MARSHALLING_TESTS_CONSTANT_UTF8, ==, *utf8);
- g_free (*utf8);
- *utf8 = g_strdup ("");
- }
- /**
- * gi_marshalling_tests_init_function:
- * @n_args: (inout) (allow-none): number of args
- * @argv: (inout) (array length=n_args) (allow-none): args
- *
- * This is like gtk_init().
- */
- gboolean
- gi_marshalling_tests_init_function (gint *n_args, char ***argv)
- {
- if (n_args == NULL)
- return TRUE;
- if (*n_args == 0)
- return TRUE;
- (*n_args)--;
- g_assert (argv != NULL);
- /* we have transfer ownership full, so we need to free the element ourself */
- g_free ((*argv)[*n_args]);
- (*argv)[*n_args] = NULL;
- return TRUE;
- }
- /**
- * gi_marshalling_tests_array_fixed_int_return:
- *
- * Returns: (array fixed-size=4):
- */
- const gint *
- gi_marshalling_tests_array_fixed_int_return (void)
- {
- static gint ints[] = { -1, 0, 1, 2 };
- return ints;
- }
- /**
- * gi_marshalling_tests_array_fixed_short_return:
- *
- * Returns: (array fixed-size=4):
- */
- const gshort *
- gi_marshalling_tests_array_fixed_short_return (void)
- {
- static gshort shorts[] = { -1, 0, 1, 2 };
- return shorts;
- }
- /**
- * gi_marshalling_tests_array_fixed_int_in:
- * @ints: (array fixed-size=4):
- */
- void
- gi_marshalling_tests_array_fixed_int_in (const gint *ints)
- {
- g_assert_cmpint (ints[0], ==, -1);
- g_assert_cmpint (ints[1], ==, 0);
- g_assert_cmpint (ints[2], ==, 1);
- g_assert_cmpint (ints[3], ==, 2);
- }
- /**
- * gi_marshalling_tests_array_fixed_short_in:
- * @shorts: (array fixed-size=4):
- */
- void
- gi_marshalling_tests_array_fixed_short_in (const gshort *shorts)
- {
- g_assert_cmpint (shorts[0], ==, -1);
- g_assert_cmpint (shorts[1], ==, 0);
- g_assert_cmpint (shorts[2], ==, 1);
- g_assert_cmpint (shorts[3], ==, 2);
- }
- /**
- * gi_marshalling_tests_array_fixed_out:
- * @ints: (out) (array fixed-size=4) (transfer none):
- */
- void
- gi_marshalling_tests_array_fixed_out (gint **ints)
- {
- static gint values[] = { -1, 0, 1, 2 };
- *ints = values;
- }
- /**
- * gi_marshalling_tests_array_fixed_out_struct:
- * @structs: (out) (array fixed-size=2) (transfer none):
- */
- void
- gi_marshalling_tests_array_fixed_out_struct (GIMarshallingTestsSimpleStruct **structs)
- {
- static GIMarshallingTestsSimpleStruct *values;
- if (values == NULL)
- {
- values = g_new (GIMarshallingTestsSimpleStruct, 2);
- values[0].long_ = 7;
- values[0].int8 = 6;
- values[1].long_ = 6;
- values[1].int8 = 7;
- }
- *structs = values;
- }
- /**
- * gi_marshalling_tests_array_fixed_inout:
- * @ints: (inout) (array fixed-size=4) (transfer none):
- */
- void
- gi_marshalling_tests_array_fixed_inout (gint **ints)
- {
- static gint values[] = { 2, 1, 0, -1 };
- g_assert_cmpint ((*ints)[0], ==, -1);
- g_assert_cmpint ((*ints)[1], ==, 0);
- g_assert_cmpint ((*ints)[2], ==, 1);
- g_assert_cmpint ((*ints)[3], ==, 2);
- *ints = values;
- }
- /**
- * gi_marshalling_tests_array_return:
- *
- * Returns: (array length=length):
- */
- const gint *
- gi_marshalling_tests_array_return (gint *length)
- {
- static gint ints[] = { -1, 0, 1, 2 };
- *length = 4;
- return ints;
- }
- /**
- * gi_marshalling_tests_array_return_etc:
- * @first:
- * @length: (out):
- * @last:
- * @sum: (out):
- *
- * Returns: (array length=length):
- */
- const gint *
- gi_marshalling_tests_array_return_etc (gint first, gint *length, gint last, gint *sum)
- {
- static gint ints[] = { -1, 0, 1, 2 };
- ints[0] = first;
- ints[3] = last;
- *sum = first + last;
- *length = 4;
- return ints;
- }
- /**
- * gi_marshalling_tests_array_in:
- * @ints: (array length=length):
- * @length:
- */
- void
- gi_marshalling_tests_array_in (const gint *ints, gint length)
- {
- g_assert_cmpint (length, ==, 4);
- g_assert_cmpint (ints[0], ==, -1);
- g_assert_cmpint (ints[1], ==, 0);
- g_assert_cmpint (ints[2], ==, 1);
- g_assert_cmpint (ints[3], ==, 2);
- }
- /**
- * gi_marshalling_tests_array_in_len_before:
- * @length:
- * @ints: (array length=length):
- */
- void
- gi_marshalling_tests_array_in_len_before (gint length, const gint *ints)
- {
- gi_marshalling_tests_array_in (ints, length);
- }
- /**
- * gi_marshalling_tests_array_in_len_zero_terminated:
- * @ints: (array length=length zero-terminated):
- * @length:
- */
- void
- gi_marshalling_tests_array_in_len_zero_terminated (const gint *ints, gint length)
- {
- g_assert_cmpint (length, ==, 4);
- g_assert_cmpint (ints[0], ==, -1);
- g_assert_cmpint (ints[1], ==, 0);
- g_assert_cmpint (ints[2], ==, 1);
- g_assert_cmpint (ints[3], ==, 2);
- /* One past the end, null terminator */
- g_assert_cmpint (ints[4], ==, 0);
- }
- /**
- * gi_marshalling_tests_array_string_in:
- * @strings: (array length=length):
- */
- void
- gi_marshalling_tests_array_string_in (const gchar **strings, gint length)
- {
- g_assert_cmpint (length, ==, 2);
- g_assert_cmpstr (strings[0], ==, "foo");
- g_assert_cmpstr (strings[1], ==, "bar");
- }
- /**
- * gi_marshalling_tests_array_uint8_in:
- * @chars: (array length=length):
- */
- void
- gi_marshalling_tests_array_uint8_in (const guint8 *chars, gint length)
- {
- g_assert_cmpint (length, ==, 4);
- g_assert (chars[0] == 'a');
- g_assert (chars[1] == 'b');
- g_assert (chars[2] == 'c');
- g_assert (chars[3] == 'd');
- }
- /**
- * gi_marshalling_tests_array_struct_in:
- * @structs: (array length=length):
- */
- void
- gi_marshalling_tests_array_struct_in (GIMarshallingTestsBoxedStruct **structs, gint length)
- {
- g_assert_cmpint (length, ==, 3);
- g_assert_cmpint (structs[0]->long_, ==, 1);
- g_assert_cmpint (structs[1]->long_, ==, 2);
- g_assert_cmpint (structs[2]->long_, ==, 3);
- }
- /**
- * gi_marshalling_tests_array_struct_value_in:
- * @structs: (array length=length):
- */
- void
- gi_marshalling_tests_array_struct_value_in (GIMarshallingTestsBoxedStruct *structs, gint length)
- {
- g_assert_cmpint (length, ==, 3);
- g_assert_cmpint (structs[0].long_, ==, 1);
- g_assert_cmpint (structs[1].long_, ==, 2);
- g_assert_cmpint (structs[2].long_, ==, 3);
- }
- /**
- * gi_marshalling_tests_array_simple_struct_in:
- * @structs: (array length=length):
- */
- void
- gi_marshalling_tests_array_simple_struct_in (GIMarshallingTestsSimpleStruct *structs, gint length)
- {
- g_assert_cmpint (length, ==, 3);
- g_assert_cmpint (structs[0].long_, ==, 1);
- g_assert_cmpint (structs[1].long_, ==, 2);
- g_assert_cmpint (structs[2].long_, ==, 3);
- }
- /**
- * gi_marshalling_tests_multi_array_key_value_in:
- * @keys: (array length=length):
- * @values: (array length=length):
- */
- void
- gi_marshalling_tests_multi_array_key_value_in (gint length, const gchar **keys, const GValue *values)
- {
- g_assert_cmpint (length, ==, 3);
- g_assert_cmpstr ("one", ==, keys[0]);
- g_assert_cmpint (g_value_get_int (&values[0]), ==, 1);
- g_assert_cmpstr ("two", ==, keys[1]);
- g_assert_cmpint (g_value_get_int (&values[1]), ==, 2);
- g_assert_cmpstr ("three", ==, keys[2]);
- g_assert_cmpint (g_value_get_int (&values[2]), ==, 3);
- }
- /**
- * gi_marshalling_tests_array_struct_take_in:
- * @structs: (array length=length) (transfer full):
- */
- void
- gi_marshalling_tests_array_struct_take_in (GIMarshallingTestsBoxedStruct **structs, gint length)
- {
- gi_marshalling_tests_array_struct_in (structs, length);
- /* only really useful if run in valgrind actually */
- gi_marshalling_tests_boxed_struct_free (structs[0]);
- gi_marshalling_tests_boxed_struct_free (structs[1]);
- gi_marshalling_tests_boxed_struct_free (structs[2]);
- g_free (structs);
- }
- /**
- * gi_marshalling_tests_array_enum_in:
- * @_enum: (array length=length) (transfer none):
- * @length:
- */
- void
- gi_marshalling_tests_array_enum_in (GIMarshallingTestsEnum *v, gint length)
- {
- g_assert_cmpint (length, ==, 3);
- g_assert_cmpint (v[0], ==, GI_MARSHALLING_TESTS_ENUM_VALUE1);
- g_assert_cmpint (v[1], ==, GI_MARSHALLING_TESTS_ENUM_VALUE2);
- g_assert_cmpint (v[2], ==, GI_MARSHALLING_TESTS_ENUM_VALUE3);
- }
- /**
- * gi_marshalling_tests_array_in_guint64_len:
- * @ints: (array length=length) (transfer none):
- * @length:
- */
- void
- gi_marshalling_tests_array_in_guint64_len (const gint *ints, guint64 length)
- {
- g_assert_cmpint (length, ==, 4);
- gi_marshalling_tests_array_in (ints, length);
- }
- /**
- * gi_marshalling_tests_array_in_guint8_len:
- * @ints: (array length=length) (transfer none):
- * @length:
- */
- void
- gi_marshalling_tests_array_in_guint8_len (const gint *ints, guint8 length)
- {
- g_assert_cmpint (length, ==, 4);
- gi_marshalling_tests_array_in (ints, length);
- }
- /**
- * gi_marshalling_tests_array_out:
- * @ints: (out) (array length=length) (transfer none):
- */
- void
- gi_marshalling_tests_array_out (gint **ints, gint *length)
- {
- static gint values[] = { -1, 0, 1, 2 };
- *length = 4;
- *ints = values;
- }
- /**
- * gi_marshalling_tests_array_out_etc:
- * @first:
- * @ints: (out) (array length=length) (transfer none):
- * @length: (out):
- * @last:
- * @sum: (out):
- */
- void
- gi_marshalling_tests_array_out_etc (gint first, gint **ints, gint *length, gint last, gint *sum)
- {
- static gint values[] = { -1, 0, 1, 2 };
- values[0] = first;
- values[3] = last;
- *sum = first + last;
- *length = 4;
- *ints = values;
- }
- /**
- * gi_marshalling_tests_array_inout:
- * @ints: (inout) (array length=length) (transfer none):
- * @length: (inout):
- */
- void
- gi_marshalling_tests_array_inout (gint **ints, gint *length)
- {
- static gint values[] = { -2, -1, 0, 1, 2 };
- g_assert_cmpint (*length, ==, 4);
- g_assert_cmpint ((*ints)[0], ==, -1);
- g_assert_cmpint ((*ints)[1], ==, 0);
- g_assert_cmpint ((*ints)[2], ==, 1);
- g_assert_cmpint ((*ints)[3], ==, 2);
- *length = 5;
- *ints = values;
- }
- /**
- * gi_marshalling_tests_array_inout_etc:
- * @first:
- * @ints: (inout) (array length=length) (transfer none):
- * @length: (inout):
- * @last:
- * @sum: (out):
- */
- void
- gi_marshalling_tests_array_inout_etc (gint first, gint **ints, gint *length, gint last, gint *sum)
- {
- static gint values[] = { -2, -1, 0, 1, 2 };
- g_assert_cmpint (*length, ==, 4);
- g_assert_cmpint ((*ints)[0], ==, -1);
- g_assert_cmpint ((*ints)[1], ==, 0);
- g_assert_cmpint ((*ints)[2], ==, 1);
- g_assert_cmpint ((*ints)[3], ==, 2);
- values[0] = first;
- values[4] = last;
- *sum = first + last;
- *length = 5;
- *ints = values;
- }
- /**
- * gi_marshalling_tests_array_in_nonzero_nonlen:
- * @first:
- * @chars: (array):
- */
- void
- gi_marshalling_tests_array_in_nonzero_nonlen (gint first, const guint8 *chars)
- {
- g_assert (chars[0] == 'a');
- g_assert (chars[1] == 'b');
- g_assert (chars[2] == 'c');
- g_assert (chars[3] == 'd');
- }
- /**
- * gi_marshalling_tests_array_zero_terminated_return:
- *
- * Returns: (array zero-terminated) (transfer none):
- */
- gchar **
- gi_marshalling_tests_array_zero_terminated_return (void)
- {
- static gchar *values[] = { "0", "1", "2", NULL };
- return values;
- }
- /**
- * gi_marshalling_tests_array_zero_terminated_return_null:
- *
- * Returns: (array zero-terminated) (transfer none):
- */
- gchar **
- gi_marshalling_tests_array_zero_terminated_return_null (void)
- {
- return NULL;
- }
- /**
- * gi_marshalling_tests_array_zero_terminated_return_struct:
- *
- * Returns: (array zero-terminated) (transfer full):
- */
- GIMarshallingTestsBoxedStruct **
- gi_marshalling_tests_array_zero_terminated_return_struct (void)
- {
- GIMarshallingTestsBoxedStruct **ret = (GIMarshallingTestsBoxedStruct **) g_new (gpointer, 4);
- ret[0] = gi_marshalling_tests_boxed_struct_new ();
- ret[0]->long_ = 42;
- ret[1] = gi_marshalling_tests_boxed_struct_new ();
- ret[1]->long_ = 43;
- ret[2] = gi_marshalling_tests_boxed_struct_new ();
- ret[2]->long_ = 44;
- ret[3] = NULL;
- return ret;
- }
- /**
- * gi_marshalling_tests_array_zero_terminated_in:
- * @utf8s: (array zero-terminated) (transfer none):
- */
- void
- gi_marshalling_tests_array_zero_terminated_in (gchar **utf8s)
- {
- g_assert (g_strv_length (utf8s));
- g_assert_cmpstr (utf8s[0], ==, "0");
- g_assert_cmpstr (utf8s[1], ==, "1");
- g_assert_cmpstr (utf8s[2], ==, "2");
- }
- /**
- * gi_marshalling_tests_array_zero_terminated_out:
- * @utf8s: (out) (array zero-terminated) (transfer none):
- */
- void
- gi_marshalling_tests_array_zero_terminated_out (gchar *** utf8s)
- {
- static gchar *values[] = { "0", "1", "2", NULL };
- *utf8s = values;
- }
- /**
- * gi_marshalling_tests_array_zero_terminated_inout:
- * @utf8s: (inout) (array zero-terminated) (transfer none):
- */
- void
- gi_marshalling_tests_array_zero_terminated_inout (gchar *** utf8s)
- {
- static gchar *values[] = { "-1", "0", "1", "2", NULL };
- g_assert (g_strv_length (*utf8s));
- g_assert_cmpstr ((*utf8s)[0], ==, "0");
- g_assert_cmpstr ((*utf8s)[1], ==, "1");
- g_assert_cmpstr ((*utf8s)[2], ==, "2");
- *utf8s = values;
- }
- /**
- * gi_marshalling_tests_array_gvariant_none_in:
- * @variants: (array zero-terminated) (transfer none):
- *
- * Returns: (array zero-terminated) (transfer none):
- */
- GVariant **
- gi_marshalling_tests_array_gvariant_none_in (GVariant **variants)
- {
- /* Use a static container to detect if someone tries to free it */
- static GVariant *private_container[3] = { NULL, NULL, NULL };
- if (private_container[0] == NULL)
- {
- private_container[0] = g_variant_new_int32 (27);
- private_container[1] = g_variant_new_string ("Hello");
- }
- g_assert (variants != NULL);
- g_assert_cmpint (g_variant_get_int32 (variants[0]), ==, 27);
- g_assert_cmpstr (g_variant_get_string (variants[1], NULL), ==, "Hello");
- g_assert (variants[2] == NULL);
- return private_container;
- }
- /**
- * gi_marshalling_tests_array_gvariant_container_in:
- * @variants: (array zero-terminated) (transfer container):
- *
- * Returns: (array zero-terminated) (transfer container):
- */
- GVariant **
- gi_marshalling_tests_array_gvariant_container_in (GVariant **variants)
- {
- GVariant **container;
- g_assert (variants != NULL);
- g_assert_cmpint (g_variant_get_int32 (variants[0]), ==, 27);
- g_assert_cmpstr (g_variant_get_string (variants[1], NULL), ==, "Hello");
- g_assert (variants[2] == NULL);
- container = g_new0 (GVariant *, 3);
- container[0] = variants[0];
- container[1] = variants[1];
- g_free (variants);
- return container;
- }
- /**
- * gi_marshalling_tests_array_gvariant_full_in:
- * @variants: (array zero-terminated) (transfer full):
- *
- * Returns: (array zero-terminated) (transfer full):
- */
- GVariant **
- gi_marshalling_tests_array_gvariant_full_in (GVariant **variants)
- {
- GVariant **container;
- g_assert (variants != NULL);
- g_assert_cmpint (g_variant_get_int32 (variants[0]), ==, 27);
- g_assert_cmpstr (g_variant_get_string (variants[1], NULL), ==, "Hello");
- g_assert (variants[2] == NULL);
- /* To catch different behaviors we reconstruct one variant from scratch,
- * while leaving the other untouched. Both approaches are legal with full
- * transfer in and out */
- container = g_new0 (GVariant *, 3);
- container[0] = g_variant_new_int32 (g_variant_get_int32 (variants[0]));
- g_variant_unref (variants[0]);
- container[1] = variants[1];
- g_free (variants);
- return container;
- }
- /**
- * gi_marshalling_tests_garray_int_none_return:
- *
- * Returns: (element-type gint) (transfer none):
- */
- GArray *
- gi_marshalling_tests_garray_int_none_return (void)
- {
- static GArray *v = NULL;
- gint i;
- if (v == NULL)
- {
- v = g_array_new (TRUE, TRUE, sizeof (gint));
- for (i = -1; i < 3; i++)
- g_array_append_val (v, i);
- }
- return v;
- }
- /**
- * gi_marshalling_tests_garray_uint64_none_return:
- *
- * Returns: (element-type guint64) (transfer none):
- */
- GArray *
- gi_marshalling_tests_garray_uint64_none_return (void)
- {
- static GArray *array = NULL;
- guint64 i;
- if (array == NULL)
- {
- array = g_array_new (TRUE, TRUE, sizeof (guint64));
- i = 0;
- g_array_append_val (array, i);
- i = G_MAXUINT64;
- g_array_append_val (array, i);
- }
- return array;
- }
- /**
- * gi_marshalling_tests_garray_utf8_none_return:
- *
- * Returns: (element-type utf8) (transfer none):
- */
- GArray *
- gi_marshalling_tests_garray_utf8_none_return (void)
- {
- static GArray *array = NULL;
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- if (array == NULL)
- {
- array = g_array_new (TRUE, TRUE, sizeof (gchar *));
- for (i = 0; values[i]; i++)
- g_array_append_val (array, values[i]);
- }
- return array;
- }
- /**
- * gi_marshalling_tests_garray_utf8_container_return:
- *
- * Returns: (element-type utf8) (transfer container):
- */
- GArray *
- gi_marshalling_tests_garray_utf8_container_return (void)
- {
- GArray *array = NULL;
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- array = g_array_new (TRUE, TRUE, sizeof (gchar *));
- for (i = 0; values[i]; i++)
- g_array_append_val (array, values[i]);
- return array;
- }
- /**
- * gi_marshalling_tests_garray_utf8_full_return:
- *
- * Returns: (element-type utf8) (transfer full):
- */
- GArray *
- gi_marshalling_tests_garray_utf8_full_return (void)
- {
- GArray *array = NULL;
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- array = g_array_new (TRUE, TRUE, sizeof (gchar *));
- for (i = 0; values[i]; i++)
- {
- gchar *str = g_strdup (values[i]);
- g_array_append_val (array, str);
- }
- return array;
- }
- /**
- * gi_marshalling_tests_garray_int_none_in:
- * @array_: (element-type gint) (transfer none):
- */
- void
- gi_marshalling_tests_garray_int_none_in (GArray *array_)
- {
- g_assert_cmpint (array_->len, ==, 4);
- g_assert_cmpint (g_array_index (array_, gint, 0), ==, -1);
- g_assert_cmpint (g_array_index (array_, gint, 1), ==, 0);
- g_assert_cmpint (g_array_index (array_, gint, 2), ==, 1);
- g_assert_cmpint (g_array_index (array_, gint, 3), ==, 2);
- }
- /**
- * gi_marshalling_tests_garray_uint64_none_in:
- * @array_: (element-type guint64) (transfer none):
- */
- void
- gi_marshalling_tests_garray_uint64_none_in (GArray *array_)
- {
- g_assert_cmpint (array_->len, ==, 2);
- g_assert_cmpint (g_array_index (array_, guint64, 0), ==, 0);
- g_assert_cmpint (g_array_index (array_, guint64, 1), ==, G_MAXUINT64);
- }
- /**
- * gi_marshalling_tests_garray_utf8_none_in:
- * @array_: (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_garray_utf8_none_in (GArray *array_)
- {
- g_assert_cmpint (array_->len, ==, 3);
- g_assert_cmpstr (g_array_index (array_, gchar *, 0), ==, "0");
- g_assert_cmpstr (g_array_index (array_, gchar *, 1), ==, "1");
- g_assert_cmpstr (g_array_index (array_, gchar *, 2), ==, "2");
- }
- /**
- * gi_marshalling_tests_garray_utf8_none_out:
- * @array_: (out) (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_garray_utf8_none_out (GArray **array_)
- {
- static GArray *internal = NULL;
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- if (internal == NULL)
- {
- internal = g_array_new (TRUE, TRUE, sizeof (gchar *));
- for (i = 0; values[i]; i++)
- g_array_append_val (internal, values[i]);
- }
- *array_ = internal;
- }
- /**
- * gi_marshalling_tests_garray_utf8_container_out:
- * @array_: (out) (element-type utf8) (transfer container):
- */
- void
- gi_marshalling_tests_garray_utf8_container_out (GArray **array_)
- {
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- *array_ = NULL;
- *array_ = g_array_new (TRUE, TRUE, sizeof (gchar *));
- for (i = 0; values[i]; i++)
- g_array_append_val (*array_, values[i]);
- }
- /**
- * gi_marshalling_tests_garray_utf8_full_out:
- * @array_: (out) (element-type utf8) (transfer full):
- */
- void
- gi_marshalling_tests_garray_utf8_full_out (GArray **array_)
- {
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- *array_ = NULL;
- *array_ = g_array_new (TRUE, TRUE, sizeof (gchar *));
- for (i = 0; values[i]; i++)
- {
- gchar *str = g_strdup (values[i]);
- g_array_append_val (*array_, str);
- }
- }
- /**
- * gi_marshalling_tests_garray_utf8_full_out_caller_allocated:
- * @array_: (out caller-allocates) (array) (element-type utf8) (transfer full):
- */
- void
- gi_marshalling_tests_garray_utf8_full_out_caller_allocated (GArray *array_)
- {
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- g_array_set_size (array_, 0);
- for (i = 0; values[i]; i++)
- {
- gchar *str = g_strdup (values[i]);
- g_array_append_val (array_, str);
- }
- }
- /**
- * gi_marshalling_tests_garray_utf8_none_inout:
- * @array_: (inout) (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_garray_utf8_none_inout (GArray **array_)
- {
- static GArray *internal = NULL;
- static gchar *values[] = { "-2", "-1", "0", "1", NULL };
- gint i;
- g_assert_cmpint ((*array_)->len, ==, 3);
- g_assert_cmpstr (g_array_index (*array_, gchar *, 0), ==, "0");
- g_assert_cmpstr (g_array_index (*array_, gchar *, 1), ==, "1");
- g_assert_cmpstr (g_array_index (*array_, gchar *, 2), ==, "2");
- if (internal == NULL)
- {
- internal = g_array_new (TRUE, TRUE, sizeof (gchar *));
- for (i = 0; values[i]; i++)
- g_array_append_val (internal, values[i]);
- }
- *array_ = internal;
- }
- /**
- * gi_marshalling_tests_garray_utf8_container_inout:
- * @array_: (inout) (element-type utf8) (transfer container):
- */
- void
- gi_marshalling_tests_garray_utf8_container_inout (GArray **array_)
- {
- static gchar *val1 = "-2";
- static gchar *val2 = "-1";
- static gchar *val3 = "0";
- static gchar *val4 = "1";
- GArray *result;
- g_assert_cmpint ((*array_)->len, ==, 3);
- g_assert_cmpstr (g_array_index (*array_, gchar *, 0), ==, "0");
- g_assert_cmpstr (g_array_index (*array_, gchar *, 1), ==, "1");
- g_assert_cmpstr (g_array_index (*array_, gchar *, 2), ==, "2");
- result = g_array_new (TRUE, TRUE, sizeof (gchar *));
- g_array_append_val (result, val1);
- g_array_append_val (result, val2);
- g_array_append_val (result, val3);
- g_array_append_val (result, val4);
- g_array_unref (*array_);
- *array_ = result;
- }
- /**
- * gi_marshalling_tests_garray_utf8_full_inout:
- * @array_: (inout) (element-type utf8) (transfer full):
- */
- void
- gi_marshalling_tests_garray_utf8_full_inout (GArray **array_)
- {
- static gchar *val1 = "-1";
- static gchar *val2 = "-2";
- gchar *val;
- GArray *result;
- g_assert_cmpint ((*array_)->len, ==, 3);
- g_assert_cmpstr (g_array_index (*array_, gchar *, 0), ==, "0");
- g_assert_cmpstr (g_array_index (*array_, gchar *, 1), ==, "1");
- g_assert_cmpstr (g_array_index (*array_, gchar *, 2), ==, "2");
- result = g_array_new (TRUE, TRUE, sizeof (gchar *));
- val = g_strdup (val2);
- g_array_append_val (result, val);
- val = g_strdup (val1);
- g_array_append_val (result, val);
- val = g_strdup ("0");
- g_array_append_val (result, val);
- val = g_strdup ("1");
- g_array_append_val (result, val);
- g_array_unref (*array_);
- *array_ = result;
- }
- /**
- * gi_marshalling_tests_gptrarray_utf8_none_return:
- *
- * Returns: (element-type utf8) (transfer none):
- */
- GPtrArray *
- gi_marshalling_tests_gptrarray_utf8_none_return (void)
- {
- static GPtrArray *parray = NULL;
- static gchar *values[] = { "0", "1", "2" };
- gint i;
- if (parray == NULL)
- {
- parray = g_ptr_array_new ();
- for (i = 0; i < 3; i++)
- g_ptr_array_add (parray, (gpointer) values[i]);
- }
- return parray;
- }
- /**
- * gi_marshalling_tests_gptrarray_utf8_container_return:
- *
- * Returns: (element-type utf8) (transfer container):
- */
- GPtrArray *
- gi_marshalling_tests_gptrarray_utf8_container_return (void)
- {
- GPtrArray *parray = NULL;
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- parray = g_ptr_array_new ();
- for (i = 0; values[i]; i++)
- g_ptr_array_add (parray, (gpointer) values[i]);
- return parray;
- }
- /**
- * gi_marshalling_tests_gptrarray_utf8_full_return:
- *
- * Returns: (element-type utf8) (transfer full):
- */
- GPtrArray *
- gi_marshalling_tests_gptrarray_utf8_full_return (void)
- {
- GPtrArray *parray = NULL;
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- parray = g_ptr_array_new ();
- for (i = 0; values[i]; i++)
- {
- gchar *str = g_strdup (values[i]);
- g_ptr_array_add (parray, (gpointer) str);
- }
- return parray;
- }
- /**
- * gi_marshalling_tests_gptrarray_utf8_none_in:
- * @parray_: (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_gptrarray_utf8_none_in (GPtrArray *parray_)
- {
- g_assert_cmpint (parray_->len, ==, 3);
- g_assert_cmpstr (g_ptr_array_index (parray_, 0), ==, "0");
- g_assert_cmpstr (g_ptr_array_index (parray_, 1), ==, "1");
- g_assert_cmpstr (g_ptr_array_index (parray_, 2), ==, "2");
- }
- /**
- * gi_marshalling_tests_gptrarray_utf8_none_out:
- * @parray_: (out) (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_gptrarray_utf8_none_out (GPtrArray **parray_)
- {
- static GPtrArray *internal = NULL;
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- if (internal == NULL)
- {
- internal = g_ptr_array_new ();
- for (i = 0; values[i]; i++)
- g_ptr_array_add (internal, (gpointer) values[i]);
- }
- *parray_ = internal;
- }
- /**
- * gi_marshalling_tests_gptrarray_utf8_container_out:
- * @parray_: (out) (element-type utf8) (transfer container):
- */
- void
- gi_marshalling_tests_gptrarray_utf8_container_out (GPtrArray **parray_)
- {
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- *parray_ = NULL;
- *parray_ = g_ptr_array_new ();
- for (i = 0; values[i]; i++)
- g_ptr_array_add (*parray_, (gpointer) values[i]);
- }
- /**
- * gi_marshalling_tests_gptrarray_utf8_full_out:
- * @parray_: (out) (element-type utf8) (transfer full):
- */
- void
- gi_marshalling_tests_gptrarray_utf8_full_out (GPtrArray **parray_)
- {
- static gchar *values[] = { "0", "1", "2", NULL };
- gint i;
- *parray_ = NULL;
- *parray_ = g_ptr_array_new ();
- for (i = 0; values[i]; i++)
- {
- gchar *str = g_strdup (values[i]);
- g_ptr_array_add (*parray_, (gpointer) str);
- }
- }
- /**
- * gi_marshalling_tests_gptrarray_utf8_none_inout:
- * @parray_: (inout) (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_gptrarray_utf8_none_inout (GPtrArray **parray_)
- {
- static GPtrArray *internal = NULL;
- static gchar *values[] = { "-2", "-1", "0", "1", NULL };
- gint i;
- g_assert_cmpint ((*parray_)->len, ==, 3);
- g_assert_cmpstr (g_ptr_array_index (*parray_, 0), ==, "0");
- g_assert_cmpstr (g_ptr_array_index (*parray_, 1), ==, "1");
- g_assert_cmpstr (g_ptr_array_index (*parray_, 2), ==, "2");
- if (internal == NULL)
- {
- internal = g_ptr_array_new ();
- for (i = 0; values[i]; i++)
- g_ptr_array_add (internal, (gpointer) values[i]);
- }
- *parray_ = internal;
- }
- /**
- * gi_marshalling_tests_gptrarray_utf8_container_inout:
- * @parray_: (inout) (element-type utf8) (transfer container):
- */
- void
- gi_marshalling_tests_gptrarray_utf8_container_inout (GPtrArray **parray_)
- {
- static gchar *val1 = "-2";
- static gchar *val2 = "-1";
- static gchar *val3 = "0";
- static gchar *val4 = "1";
- GPtrArray *result;
- g_assert_cmpint ((*parray_)->len, ==, 3);
- g_assert_cmpstr (g_ptr_array_index (*parray_, 0), ==, "0");
- g_assert_cmpstr (g_ptr_array_index (*parray_, 1), ==, "1");
- g_assert_cmpstr (g_ptr_array_index (*parray_, 2), ==, "2");
- result = g_ptr_array_new ();
- g_ptr_array_add (result, (gpointer) val1);
- g_ptr_array_add (result, (gpointer) val2);
- g_ptr_array_add (result, (gpointer) val3);
- g_ptr_array_add (result, (gpointer) val4);
- g_ptr_array_unref (*parray_);
- *parray_ = result;
- }
- /**
- * gi_marshalling_tests_gptrarray_utf8_full_inout:
- * @parray_: (inout) (element-type utf8) (transfer full):
- */
- void
- gi_marshalling_tests_gptrarray_utf8_full_inout (GPtrArray **parray_)
- {
- static gchar *val1 = "-1";
- static gchar *val2 = "-2";
- gchar *val;
- GPtrArray *result;
- g_assert_cmpint ((*parray_)->len, ==, 3);
- g_assert_cmpstr (g_ptr_array_index (*parray_, 0), ==, "0");
- g_assert_cmpstr (g_ptr_array_index (*parray_, 1), ==, "1");
- g_assert_cmpstr (g_ptr_array_index (*parray_, 2), ==, "2");
- result = g_ptr_array_new ();
- val = g_strdup (val2);
- g_ptr_array_add (result, (gpointer) val);
- val = g_strdup (val1);
- g_ptr_array_add (result, (gpointer) val);
- val = g_strdup ("0");
- g_ptr_array_add (result, (gpointer) val);
- val = g_strdup ("1");
- g_ptr_array_add (result, (gpointer) val);
- g_ptr_array_unref (*parray_);
- *parray_ = result;
- }
- /**
- * gi_marshalling_tests_bytearray_full_return:
- *
- * Returns: (transfer full):
- */
- GByteArray *
- gi_marshalling_tests_bytearray_full_return (void)
- {
- GByteArray *array = NULL;
- guint8 data[] = { '\0', '1', '\xFF', '3' };
- array = g_byte_array_new ();
- g_byte_array_append (array, (const guint8 *) data, G_N_ELEMENTS (data));
- return array;
- }
- /**
- * gi_marshalling_tests_bytearray_none_in:
- * @v: (element-type gint8) (transfer none):
- */
- void
- gi_marshalling_tests_bytearray_none_in (GByteArray *v)
- {
- g_assert_cmpuint (v->len, ==, 4);
- g_assert_cmpuint (g_array_index (v, unsigned char, 0), ==, 0);
- g_assert_cmpuint (g_array_index (v, unsigned char, 1), ==, 49);
- g_assert_cmpuint (g_array_index (v, unsigned char, 2), ==, 0xFF);
- g_assert_cmpuint (g_array_index (v, unsigned char, 3), ==, 51);
- }
- /**
- * gi_marshalling_tests_gbytes_full_return:
- *
- * Returns: (transfer full):
- */
- GBytes *
- gi_marshalling_tests_gbytes_full_return (void)
- {
- static guint8 data[] = { 0, 49, 0xFF, 51 };
- return g_bytes_new_static (data, G_N_ELEMENTS (data));
- }
- /**
- * gi_marshalling_tests_gbytes_none_in:
- */
- void
- gi_marshalling_tests_gbytes_none_in (GBytes *v)
- {
- const guint8 *data;
- gsize len;
- data = g_bytes_get_data (v, &len);
- g_assert_cmpuint (len, ==, 4);
- g_assert_cmpuint (data[0], ==, 0);
- g_assert_cmpuint (data[1], ==, 49);
- g_assert_cmpuint (data[2], ==, 0xFF);
- g_assert_cmpuint (data[3], ==, 51);
- }
- /**
- * gi_marshalling_tests_gstrv_return:
- *
- * Returns: (transfer full): an array of strings
- */
- GStrv
- gi_marshalling_tests_gstrv_return (void)
- {
- GStrv values = g_new0 (gchar *, 4);
- values[0] = g_strdup ("0");
- values[1] = g_strdup ("1");
- values[2] = g_strdup ("2");
- values[3] = NULL;
- return values;
- }
- /**
- * gi_marshalling_tests_gstrv_in:
- * @g_strv:
- */
- void
- gi_marshalling_tests_gstrv_in (GStrv g_strv)
- {
- g_assert_cmpint (g_strv_length (g_strv), ==, 3);
- g_assert_cmpstr (g_strv[0], ==, "0");
- g_assert_cmpstr (g_strv[1], ==, "1");
- g_assert_cmpstr (g_strv[2], ==, "2");
- }
- /**
- * gi_marshalling_tests_gstrv_out:
- * @g_strv: (out) (transfer none):
- */
- void
- gi_marshalling_tests_gstrv_out (GStrv *g_strv)
- {
- static gchar *values[] = { "0", "1", "2", NULL };
- *g_strv = values;
- }
- /**
- * gi_marshalling_tests_gstrv_inout:
- * @g_strv: (inout) (transfer none):
- */
- void
- gi_marshalling_tests_gstrv_inout (GStrv *g_strv)
- {
- static gchar *values[] = { "-1", "0", "1", "2", NULL };
- g_assert (g_strv_length (*g_strv) == 3);
- g_assert (strcmp ((*g_strv)[0], "0") == 0);
- g_assert (strcmp ((*g_strv)[1], "1") == 0);
- g_assert (strcmp ((*g_strv)[2], "2") == 0);
- *g_strv = values;
- }
- /**
- * gi_marshalling_tests_glist_int_none_return:
- *
- * Returns: (element-type gint) (transfer none):
- */
- GList *
- gi_marshalling_tests_glist_int_none_return (void)
- {
- static GList *list = NULL;
- if (list == NULL)
- {
- list = g_list_append (list, GINT_TO_POINTER (-1));
- list = g_list_append (list, GINT_TO_POINTER (0));
- list = g_list_append (list, GINT_TO_POINTER (1));
- list = g_list_append (list, GINT_TO_POINTER (2));
- }
- return list;
- }
- /**
- * gi_marshalling_tests_glist_uint32_none_return:
- *
- * Returns: (element-type guint32) (transfer none):
- */
- GList *
- gi_marshalling_tests_glist_uint32_none_return (void)
- {
- static GList *list = NULL;
- if (list == NULL)
- {
- list = g_list_append (list, GUINT_TO_POINTER (0));
- list = g_list_append (list, GUINT_TO_POINTER (G_MAXUINT32));
- }
- return list;
- }
- /**
- * gi_marshalling_tests_glist_utf8_none_return:
- *
- * Returns: (element-type utf8) (transfer none):
- */
- GList *
- gi_marshalling_tests_glist_utf8_none_return (void)
- {
- static GList *list = NULL;
- if (list == NULL)
- {
- list = g_list_append (list, "0");
- list = g_list_append (list, "1");
- list = g_list_append (list, "2");
- }
- return list;
- }
- /**
- * gi_marshalling_tests_glist_utf8_container_return:
- *
- * Returns: (element-type utf8) (transfer container):
- */
- GList *
- gi_marshalling_tests_glist_utf8_container_return (void)
- {
- GList *list = NULL;
- list = g_list_append (list, "0");
- list = g_list_append (list, "1");
- list = g_list_append (list, "2");
- return list;
- }
- /**
- * gi_marshalling_tests_glist_utf8_full_return:
- *
- * Returns: (element-type utf8) (transfer full):
- */
- GList *
- gi_marshalling_tests_glist_utf8_full_return (void)
- {
- GList *list = NULL;
- list = g_list_append (list, g_strdup ("0"));
- list = g_list_append (list, g_strdup ("1"));
- list = g_list_append (list, g_strdup ("2"));
- return list;
- }
- /**
- * gi_marshalling_tests_glist_int_none_in:
- * @list: (element-type gint) (transfer none):
- */
- void
- gi_marshalling_tests_glist_int_none_in (GList *list)
- {
- g_assert_cmpint (g_list_length (list), ==, 4);
- g_assert_cmpint (GPOINTER_TO_INT (g_list_nth_data (list, 0)), ==, -1);
- g_assert_cmpint (GPOINTER_TO_INT (g_list_nth_data (list, 1)), ==, 0);
- g_assert_cmpint (GPOINTER_TO_INT (g_list_nth_data (list, 2)), ==, 1);
- g_assert_cmpint (GPOINTER_TO_INT (g_list_nth_data (list, 3)), ==, 2);
- }
- /**
- * gi_marshalling_tests_glist_uint32_none_in:
- * @list: (element-type guint32) (transfer none):
- */
- void
- gi_marshalling_tests_glist_uint32_none_in (GList *list)
- {
- g_assert_cmpint (g_list_length (list), ==, 2);
- g_assert_cmpint (GPOINTER_TO_UINT (g_list_nth_data (list, 0)), ==, 0);
- g_assert_cmpint (GPOINTER_TO_UINT (g_list_nth_data (list, 1)), ==, G_MAXUINT32);
- }
- /**
- * gi_marshalling_tests_glist_utf8_none_in:
- * @list: (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_glist_utf8_none_in (GList *list)
- {
- g_assert_cmpint (g_list_length (list), ==, 3);
- g_assert_cmpint (strcmp (g_list_nth_data (list, 0), "0"), ==, 0);
- g_assert_cmpint (strcmp (g_list_nth_data (list, 1), "1"), ==, 0);
- g_assert_cmpint (strcmp (g_list_nth_data (list, 2), "2"), ==, 0);
- }
- /**
- * gi_marshalling_tests_glist_utf8_none_out:
- * @list: (out) (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_glist_utf8_none_out (GList **list)
- {
- static GList *values = NULL;
- if (values == NULL)
- {
- values = g_list_append (values, "0");
- values = g_list_append (values, "1");
- values = g_list_append (values, "2");
- }
- *list = values;
- }
- /**
- * gi_marshalling_tests_glist_utf8_container_out:
- * @list: (out) (element-type utf8) (transfer container):
- */
- void
- gi_marshalling_tests_glist_utf8_container_out (GList **list)
- {
- *list = NULL;
- *list = g_list_append (*list, "0");
- *list = g_list_append (*list, "1");
- *list = g_list_append (*list, "2");
- }
- /**
- * gi_marshalling_tests_glist_utf8_full_out:
- * @list: (out) (element-type utf8) (transfer full):
- */
- void
- gi_marshalling_tests_glist_utf8_full_out (GList **list)
- {
- *list = NULL;
- *list = g_list_append (*list, g_strdup ("0"));
- *list = g_list_append (*list, g_strdup ("1"));
- *list = g_list_append (*list, g_strdup ("2"));
- }
- /**
- * gi_marshalling_tests_glist_utf8_none_inout:
- * @list: (inout) (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_glist_utf8_none_inout (GList **list)
- {
- static GList *values = NULL;
- g_assert_cmpint (g_list_length (*list), ==, 3);
- g_assert_cmpstr (g_list_nth_data (*list, 0), ==, "0");
- g_assert_cmpstr (g_list_nth_data (*list, 1), ==, "1");
- g_assert_cmpstr (g_list_nth_data (*list, 2), ==, "2");
- if (values == NULL)
- {
- values = g_list_append (values, "-2");
- values = g_list_append (values, "-1");
- values = g_list_append (values, "0");
- values = g_list_append (values, "1");
- }
- *list = values;
- }
- /**
- * gi_marshalling_tests_glist_utf8_container_inout:
- * @list: (inout) (element-type utf8) (transfer container):
- */
- void
- gi_marshalling_tests_glist_utf8_container_inout (GList **list)
- {
- GList *result = NULL;
- g_assert_cmpint (g_list_length (*list), ==, 3);
- g_assert_cmpstr (g_list_nth_data (*list, 0), ==, "0");
- g_assert_cmpstr (g_list_nth_data (*list, 1), ==, "1");
- g_assert_cmpstr (g_list_nth_data (*list, 2), ==, "2");
- result = g_list_prepend (result, "1");
- result = g_list_prepend (result, "0");
- result = g_list_prepend (result, "-1");
- result = g_list_prepend (result, "-2");
- g_list_free (*list);
- *list = result;
- }
- /**
- * gi_marshalling_tests_glist_utf8_full_inout:
- * @list: (inout) (element-type utf8) (transfer full):
- */
- void
- gi_marshalling_tests_glist_utf8_full_inout (GList **list)
- {
- GList *result = NULL;
- g_assert_cmpint (g_list_length (*list), ==, 3);
- g_assert_cmpstr (g_list_nth_data (*list, 0), ==, "0");
- g_assert_cmpstr (g_list_nth_data (*list, 1), ==, "1");
- g_assert_cmpstr (g_list_nth_data (*list, 2), ==, "2");
- result = g_list_prepend (result, g_strdup ("1"));
- result = g_list_prepend (result, g_strdup ("0"));
- result = g_list_prepend (result, g_strdup ("-1"));
- result = g_list_prepend (result, g_strdup ("-2"));
- g_list_free_full (*list, g_free);
- *list = result;
- }
- /**
- * gi_marshalling_tests_gslist_int_none_return:
- *
- * Returns: (element-type gint) (transfer none):
- */
- GSList *
- gi_marshalling_tests_gslist_int_none_return (void)
- {
- static GSList *list = NULL;
- if (list == NULL)
- {
- list = g_slist_prepend (list, GINT_TO_POINTER (-1));
- list = g_slist_prepend (list, GINT_TO_POINTER (0));
- list = g_slist_prepend (list, GINT_TO_POINTER (1));
- list = g_slist_prepend (list, GINT_TO_POINTER (2));
- list = g_slist_reverse (list);
- }
- return list;
- }
- /**
- * gi_marshalling_tests_gslist_utf8_none_return:
- *
- * Returns: (element-type utf8) (transfer none):
- */
- GSList *
- gi_marshalling_tests_gslist_utf8_none_return (void)
- {
- static GSList *list = NULL;
- if (list == NULL)
- {
- list = g_slist_prepend (list, "0");
- list = g_slist_prepend (list, "1");
- list = g_slist_prepend (list, "2");
- list = g_slist_reverse (list);
- }
- return list;
- }
- /**
- * gi_marshalling_tests_gslist_utf8_container_return:
- *
- * Returns: (element-type utf8) (transfer container):
- */
- GSList *
- gi_marshalling_tests_gslist_utf8_container_return (void)
- {
- GSList *list = NULL;
- list = g_slist_prepend (list, "0");
- list = g_slist_prepend (list, "1");
- list = g_slist_prepend (list, "2");
- list = g_slist_reverse (list);
- return list;
- }
- /**
- * gi_marshalling_tests_gslist_utf8_full_return:
- *
- * Returns: (element-type utf8) (transfer full):
- */
- GSList *
- gi_marshalling_tests_gslist_utf8_full_return (void)
- {
- GSList *list = NULL;
- list = g_slist_prepend (list, g_strdup ("0"));
- list = g_slist_prepend (list, g_strdup ("1"));
- list = g_slist_prepend (list, g_strdup ("2"));
- list = g_slist_reverse (list);
- return list;
- }
- /**
- * gi_marshalling_tests_gslist_int_none_in:
- * @list: (element-type gint) (transfer none):
- */
- void
- gi_marshalling_tests_gslist_int_none_in (GSList *list)
- {
- g_assert_cmpint (g_slist_length (list), ==, 4);
- g_assert_cmpint (GPOINTER_TO_INT (g_slist_nth_data (list, 0)), ==, -1);
- g_assert_cmpint (GPOINTER_TO_INT (g_slist_nth_data (list, 1)), ==, 0);
- g_assert_cmpint (GPOINTER_TO_INT (g_slist_nth_data (list, 2)), ==, 1);
- g_assert_cmpint (GPOINTER_TO_INT (g_slist_nth_data (list, 3)), ==, 2);
- }
- /**
- * gi_marshalling_tests_gslist_utf8_none_in:
- * @list: (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_gslist_utf8_none_in (GSList *list)
- {
- g_assert_cmpint (g_slist_length (list), ==, 3);
- g_assert_cmpstr (g_slist_nth_data (list, 0), ==, "0");
- g_assert_cmpstr (g_slist_nth_data (list, 1), ==, "1");
- g_assert_cmpstr (g_slist_nth_data (list, 2), ==, "2");
- }
- /**
- * gi_marshalling_tests_gslist_utf8_none_out:
- * @list: (out) (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_gslist_utf8_none_out (GSList **list)
- {
- static GSList *values = NULL;
- if (values == NULL)
- {
- values = g_slist_prepend (values, "0");
- values = g_slist_prepend (values, "1");
- values = g_slist_prepend (values, "2");
- values = g_slist_reverse (values);
- }
- *list = values;
- }
- /**
- * gi_marshalling_tests_gslist_utf8_container_out:
- * @list: (out) (element-type utf8) (transfer container):
- */
- void
- gi_marshalling_tests_gslist_utf8_container_out (GSList **list)
- {
- *list = NULL;
- *list = g_slist_prepend (*list, "0");
- *list = g_slist_prepend (*list, "1");
- *list = g_slist_prepend (*list, "2");
- *list = g_slist_reverse (*list);
- }
- /**
- * gi_marshalling_tests_gslist_utf8_full_out:
- * @list: (out) (element-type utf8) (transfer full):
- */
- void
- gi_marshalling_tests_gslist_utf8_full_out (GSList **list)
- {
- *list = NULL;
- *list = g_slist_prepend (*list, g_strdup ("0"));
- *list = g_slist_prepend (*list, g_strdup ("1"));
- *list = g_slist_prepend (*list, g_strdup ("2"));
- *list = g_slist_reverse (*list);
- }
- /**
- * gi_marshalling_tests_gslist_utf8_none_inout:
- * @list: (inout) (element-type utf8) (transfer none):
- */
- void
- gi_marshalling_tests_gslist_utf8_none_inout (GSList **list)
- {
- static GSList *values = NULL;
- g_assert_cmpint (g_slist_length (*list), ==, 3);
- g_assert_cmpstr (g_slist_nth_data (*list, 0), ==, "0");
- g_assert_cmpstr (g_slist_nth_data (*list, 1), ==, "1");
- g_assert_cmpstr (g_slist_nth_data (*list, 2), ==, "2");
- if (values == NULL)
- {
- values = g_slist_prepend (values, "-2");
- values = g_slist_prepend (values, "-1");
- values = g_slist_prepend (values, "0");
- values = g_slist_prepend (values, "1");
- values = g_slist_reverse (values);
- }
- *list = values;
- }
- /**
- * gi_marshalling_tests_gslist_utf8_container_inout:
- * @list: (inout) (element-type utf8) (transfer container):
- */
- void
- gi_marshalling_tests_gslist_utf8_container_inout (GSList **list)
- {
- GSList *result = NULL;
- g_assert_cmpint (g_slist_length (*list), ==, 3);
- g_assert_cmpstr (g_slist_nth_data (*list, 0), ==, "0");
- g_assert_cmpstr (g_slist_nth_data (*list, 1), ==, "1");
- g_assert_cmpstr (g_slist_nth_data (*list, 2), ==, "2");
- result = g_slist_prepend (result, "1");
- result = g_slist_prepend (result, "0");
- result = g_slist_prepend (result, "-1");
- result = g_slist_prepend (result, "-2");
- g_slist_free (*list);
- *list = result;
- }
- /**
- * gi_marshalling_tests_gslist_utf8_full_inout:
- * @list: (inout) (element-type utf8) (transfer full):
- */
- void
- gi_marshalling_tests_gslist_utf8_full_inout (GSList **list)
- {
- GSList *result = NULL;
- g_assert_cmpint (g_slist_length (*list), ==, 3);
- g_assert_cmpstr (g_slist_nth_data (*list, 0), ==, "0");
- g_assert_cmpstr (g_slist_nth_data (*list, 1), ==, "1");
- g_assert_cmpstr (g_slist_nth_data (*list, 2), ==, "2");
- result = g_slist_prepend (result, g_strdup ("1"));
- result = g_slist_prepend (result, g_strdup ("0"));
- result = g_slist_prepend (result, g_strdup ("-1"));
- result = g_slist_prepend (result, g_strdup ("-2"));
- g_slist_free_full (*list, g_free);
- *list = result;
- }
- /**
- * gi_marshalling_tests_ghashtable_int_none_return:
- *
- * Returns: (element-type gint gint) (transfer none):
- */
- GHashTable *
- gi_marshalling_tests_ghashtable_int_none_return (void)
- {
- static GHashTable *hash_table = NULL;
- if (hash_table == NULL)
- {
- hash_table = g_hash_table_new (NULL, NULL);
- g_hash_table_insert (hash_table, GINT_TO_POINTER (-1), GINT_TO_POINTER (1));
- g_hash_table_insert (hash_table, GINT_TO_POINTER (0), GINT_TO_POINTER (0));
- g_hash_table_insert (hash_table, GINT_TO_POINTER (1), GINT_TO_POINTER (-1));
- g_hash_table_insert (hash_table, GINT_TO_POINTER (2), GINT_TO_POINTER (-2));
- }
- return hash_table;
- }
- /**
- * gi_marshalling_tests_ghashtable_utf8_none_return:
- *
- * Returns: (element-type utf8 utf8) (transfer none):
- */
- GHashTable *
- gi_marshalling_tests_ghashtable_utf8_none_return (void)
- {
- static GHashTable *hash_table = NULL;
- if (hash_table == NULL)
- {
- hash_table = g_hash_table_new (g_str_hash, g_str_equal);
- g_hash_table_insert (hash_table, "-1", "1");
- g_hash_table_insert (hash_table, "0", "0");
- g_hash_table_insert (hash_table, "1", "-1");
- g_hash_table_insert (hash_table, "2", "-2");
- }
- return hash_table;
- }
- /**
- * gi_marshalling_tests_ghashtable_utf8_container_return:
- *
- * Returns: (element-type utf8 utf8) (transfer container):
- */
- GHashTable *
- gi_marshalling_tests_ghashtable_utf8_container_return (void)
- {
- GHashTable *hash_table = NULL;
- hash_table = g_hash_table_new (g_str_hash, g_str_equal);
- g_hash_table_insert (hash_table, "-1", "1");
- g_hash_table_insert (hash_table, "0", "0");
- g_hash_table_insert (hash_table, "1", "-1");
- g_hash_table_insert (hash_table, "2", "-2");
- return hash_table;
- }
- /**
- * gi_marshalling_tests_ghashtable_utf8_full_return:
- *
- * Returns: (element-type utf8 utf8) (transfer full):
- */
- GHashTable *
- gi_marshalling_tests_ghashtable_utf8_full_return (void)
- {
- GHashTable *hash_table = NULL;
- hash_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
- g_hash_table_insert (hash_table, g_strdup ("-1"), g_strdup ("1"));
- g_hash_table_insert (hash_table, g_strdup ("0"), g_strdup ("0"));
- g_hash_table_insert (hash_table, g_strdup ("1"), g_strdup ("-1"));
- g_hash_table_insert (hash_table, g_strdup ("2"), g_strdup ("-2"));
- return hash_table;
- }
- /**
- * gi_marshalling_tests_ghashtable_int_none_in:
- * @hash_table: (element-type gint gint) (transfer none):
- */
- void
- gi_marshalling_tests_ghashtable_int_none_in (GHashTable *hash_table)
- {
- g_assert_cmpint (GPOINTER_TO_INT (g_hash_table_lookup (hash_table, GINT_TO_POINTER (-1))), ==, 1);
- g_assert_cmpint (GPOINTER_TO_INT (g_hash_table_lookup (hash_table, GINT_TO_POINTER (0))), ==, 0);
- g_assert_cmpint (GPOINTER_TO_INT (g_hash_table_lookup (hash_table, GINT_TO_POINTER (1))), ==, -1);
- g_assert_cmpint (GPOINTER_TO_INT (g_hash_table_lookup (hash_table, GINT_TO_POINTER (2))), ==, -2);
- }
- /**
- * gi_marshalling_tests_ghashtable_utf8_none_in:
- * @hash_table: (element-type utf8 utf8) (transfer none):
- */
- void
- gi_marshalling_tests_ghashtable_utf8_none_in (GHashTable *hash_table)
- {
- g_assert_cmpstr (g_hash_table_lookup (hash_table, "-1"), ==, "1");
- g_assert_cmpstr (g_hash_table_lookup (hash_table, "0"), ==, "0");
- g_assert_cmpstr (g_hash_table_lookup (hash_table, "1"), ==, "-1");
- g_assert_cmpstr (g_hash_table_lookup (hash_table, "2"), ==, "-2");
- }
- /**
- * gi_marshalling_tests_ghashtable_utf8_none_out:
- * @hash_table: (out) (element-type utf8 utf8) (transfer none):
- */
- void
- gi_marshalling_tests_ghashtable_utf8_none_out (GHashTable **hash_table)
- {
- static GHashTable *new_hash_table = NULL;
- if (new_hash_table == NULL)
- {
- new_hash_table = g_hash_table_new (g_str_hash, g_str_equal);
- g_hash_table_insert (new_hash_table, "-1", "1");
- g_hash_table_insert (new_hash_table, "0", "0");
- g_hash_table_insert (new_hash_table, "1", "-1");
- g_hash_table_insert (new_hash_table, "2", "-2");
- }
- *hash_table = new_hash_table;
- }
- /**
- * gi_marshalling_tests_ghashtable_utf8_container_out:
- * @hash_table: (out) (element-type utf8 utf8) (transfer container):
- */
- void
- gi_marshalling_tests_ghashtable_utf8_container_out (GHashTable **hash_table)
- {
- *hash_table = g_hash_table_new (g_str_hash, g_str_equal);
- g_hash_table_insert (*hash_table, "-1", "1");
- g_hash_table_insert (*hash_table, "0", "0");
- g_hash_table_insert (*hash_table, "1", "-1");
- g_hash_table_insert (*hash_table, "2", "-2");
- }
- /**
- * gi_marshalling_tests_ghashtable_utf8_full_out:
- * @hash_table: (out) (element-type utf8 utf8) (transfer full):
- */
- void
- gi_marshalling_tests_ghashtable_utf8_full_out (GHashTable **hash_table)
- {
- *hash_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
- g_hash_table_insert (*hash_table, g_strdup ("-1"), g_strdup ("1"));
- g_hash_table_insert (*hash_table, g_strdup ("0"), g_strdup ("0"));
- g_hash_table_insert (*hash_table, g_strdup ("1"), g_strdup ("-1"));
- g_hash_table_insert (*hash_table, g_strdup ("2"), g_strdup ("-2"));
- }
- /**
- * gi_marshalling_tests_ghashtable_utf8_none_inout:
- * @hash_table: (inout) (element-type utf8 utf8) (transfer none):
- */
- void
- gi_marshalling_tests_ghashtable_utf8_none_inout (GHashTable **hash_table)
- {
- static GHashTable *new_hash_table = NULL;
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "-1"), ==, "1");
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "0"), ==, "0");
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "1"), ==, "-1");
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "2"), ==, "-2");
- if (new_hash_table == NULL)
- {
- new_hash_table = g_hash_table_new (g_str_hash, g_str_equal);
- g_hash_table_insert (new_hash_table, "-1", "1");
- g_hash_table_insert (new_hash_table, "0", "0");
- g_hash_table_insert (new_hash_table, "1", "1");
- }
- *hash_table = new_hash_table;
- }
- /**
- * gi_marshalling_tests_ghashtable_utf8_container_inout:
- * @hash_table: (inout) (element-type utf8 utf8) (transfer container):
- */
- void
- gi_marshalling_tests_ghashtable_utf8_container_inout (GHashTable **hash_table)
- {
- GHashTable *result = g_hash_table_new (g_str_hash, g_str_equal);
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "-1"), ==, "1");
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "0"), ==, "0");
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "1"), ==, "-1");
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "2"), ==, "-2");
- g_hash_table_insert (result, "-1", "1");
- g_hash_table_insert (result, "0", "0");
- g_hash_table_insert (result, "1", "1");
- g_hash_table_unref (*hash_table);
- *hash_table = result;
- }
- /**
- * gi_marshalling_tests_ghashtable_utf8_full_inout:
- * @hash_table: (inout) (element-type utf8 utf8) (transfer full):
- */
- void
- gi_marshalling_tests_ghashtable_utf8_full_inout (GHashTable **hash_table)
- {
- GHashTable *result = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, g_free);
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "-1"), ==, "1");
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "0"), ==, "0");
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "1"), ==, "-1");
- g_assert_cmpstr (g_hash_table_lookup (*hash_table, "2"), ==, "-2");
- g_hash_table_insert (result, g_strdup ("-1"), g_strdup ("1"));
- g_hash_table_insert (result, g_strdup ("0"), g_strdup ("0"));
- g_hash_table_insert (result, g_strdup ("1"), g_strdup ("1"));
- g_hash_table_unref (*hash_table);
- *hash_table = result;
- }
- /**
- * gi_marshalling_tests_gvalue_return:
- *
- * Returns: (transfer none):
- */
- GValue *
- gi_marshalling_tests_gvalue_return (void)
- {
- static GValue *value = NULL;
- if (value == NULL)
- {
- value = g_new0 (GValue, 1);
- g_value_init (value, G_TYPE_INT);
- g_value_set_int (value, 42);
- }
- return value;
- }
- /**
- * gi_marshalling_tests_gvalue_in:
- * @value: (transfer none):
- */
- void
- gi_marshalling_tests_gvalue_in (GValue *value)
- {
- g_assert_cmpint (g_value_get_int (value), ==, 42);
- }
- /**
- * gi_marshalling_tests_gvalue_int64_in:
- * @value: (transfer none):
- */
- void
- gi_marshalling_tests_gvalue_int64_in (GValue *value)
- {
- g_assert_cmpint (g_value_get_int64 (value), ==, G_MAXINT64);
- }
- /**
- * gi_marshalling_tests_gvalue_in_with_type:
- * @value: (transfer none):
- * @type:
- */
- void
- gi_marshalling_tests_gvalue_in_with_type (GValue *value, GType type)
- {
- g_assert (g_type_is_a (G_VALUE_TYPE (value), type));
- }
- /**
- * gi_marshalling_tests_gvalue_in_with_modification:
- * @value: (transfer none):
- *
- * Expects a GValue passed by reference which is then modified by
- * this function.
- */
- void
- gi_marshalling_tests_gvalue_in_with_modification (GValue *value)
- {
- g_assert_cmpint (g_value_get_int (value), ==, 42);
- g_value_set_int (value, 24);
- }
- /**
- * gi_marshalling_tests_gvalue_in_enum:
- * @value: (transfer none):
- */
- void
- gi_marshalling_tests_gvalue_in_enum (GValue *value)
- {
- g_assert (g_value_get_enum (value) == GI_MARSHALLING_TESTS_ENUM_VALUE3);
- }
- /**
- * gi_marshalling_tests_gvalue_out:
- * @value: (out) (transfer none):
- */
- void
- gi_marshalling_tests_gvalue_out (GValue **value)
- {
- static GValue *new_value = NULL;
- if (new_value == NULL)
- {
- new_value = g_new0 (GValue, 1);
- g_value_init (new_value, G_TYPE_INT);
- g_value_set_int (new_value, 42);
- }
- *value = new_value;
- }
- /**
- * gi_marshalling_tests_gvalue_int64_out:
- * @value: (out) (transfer none):
- */
- void
- gi_marshalling_tests_gvalue_int64_out (GValue **value)
- {
- static GValue *new_value = NULL;
- if (new_value == NULL)
- {
- new_value = g_new0 (GValue, 1);
- g_value_init (new_value, G_TYPE_INT64);
- g_value_set_int64 (new_value, G_MAXINT64);
- }
- *value = new_value;
- }
- /**
- * gi_marshalling_tests_gvalue_out_caller_allocates:
- * @value: (out) (transfer none):
- */
- void
- gi_marshalling_tests_gvalue_out_caller_allocates (GValue *value)
- {
- g_value_init (value, G_TYPE_INT);
- g_value_set_int (value, 42);
- }
- /**
- * gi_marshalling_tests_gvalue_inout:
- * @value: (inout) (transfer none):
- */
- void
- gi_marshalling_tests_gvalue_inout (GValue **value)
- {
- g_assert_cmpint (g_value_get_int (*value), ==, 42);
- g_value_unset (*value);
- g_value_init (*value, G_TYPE_STRING);
- g_value_set_string (*value, "42");
- }
- /**
- * gi_marshalling_tests_gvalue_flat_array:
- * @n_values: number of values
- * @values: (array length=n_values): an array containing values
- */
- void
- gi_marshalling_tests_gvalue_flat_array (guint n_values, const GValue *values)
- {
- g_assert (n_values == 3);
- g_assert_cmpint (g_value_get_int (&values[0]), ==, 42);
- g_assert_cmpstr (g_value_get_string (&values[1]), ==, "42");
- g_assert_cmpint (g_value_get_boolean (&values[2]), ==, TRUE);
- }
- /**
- * gi_marshalling_tests_return_gvalue_flat_array:
- *
- * Returns: (array fixed-size=3) (transfer full): a flat GValue array
- */
- GValue *
- gi_marshalling_tests_return_gvalue_flat_array (void)
- {
- GValue *array = g_new0 (GValue, 3);
- g_value_init (&array[0], G_TYPE_INT);
- g_value_set_int (&array[0], 42);
- g_value_init (&array[1], G_TYPE_STRING);
- g_value_set_static_string (&array[1], "42");
- g_value_init (&array[2], G_TYPE_BOOLEAN);
- g_value_set_boolean (&array[2], TRUE);
- return array;
- }
- /**
- * gi_marshalling_tests_gvalue_flat_array_round_trip:
- * @one: The first GValue
- * @two: The second GValue
- * @three: The third GValue
- *
- * Returns: (array fixed-size=3) (transfer full): a flat array of [@one, @two, @three]
- */
- GValue *
- gi_marshalling_tests_gvalue_flat_array_round_trip (const GValue one, const GValue two, const GValue three)
- {
- GValue *array = g_new (GValue, 3);
- array[0] = one;
- array[1] = two;
- array[2] = three;
- return array;
- }
- /**
- * gi_marshalling_tests_gclosure_in:
- * @closure: (transfer none):
- */
- void
- gi_marshalling_tests_gclosure_in (GClosure *closure)
- {
- GValue return_value = { 0, };
- g_value_init (&return_value, G_TYPE_INT);
- g_closure_invoke (closure, &return_value, 0, NULL, NULL);
- g_assert_cmpint (g_value_get_int (&return_value), ==, 42);
- g_value_unset (&return_value);
- }
- static gint
- _closure_return_42 (void)
- {
- return 42;
- }
- static void
- _marshal_INT__VOID (GClosure *closure,
- GValue *return_value,
- guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data)
- {
- typedef gint (*GMarshalFunc_INT__VOID) (void);
- register GMarshalFunc_INT__VOID callback;
- register GCClosure *cc = (GCClosure *) closure;
- callback = (GMarshalFunc_INT__VOID) cc->callback;
- g_value_set_int (return_value, callback ());
- }
- /**
- * gi_marshalling_tests_gclosure_return:
- *
- * Return: a #GClosure
- */
- GClosure *
- gi_marshalling_tests_gclosure_return (void)
- {
- GClosure *closure = g_cclosure_new ((GCallback) _closure_return_42,
- NULL, NULL);
- g_closure_set_marshal (closure, _marshal_INT__VOID);
- return closure;
- }
- /**
- * gi_marshalling_tests_callback_return_value_only:
- * @callback: (scope call):
- */
- glong gi_marshalling_tests_callback_return_value_only (GIMarshallingTestsCallbackReturnValueOnly callback)
- {
- return callback ();
- }
- /**
- * gi_marshalling_tests_callback_one_out_parameter:
- * @callback: (scope call):
- * @a: (out):
- */
- void gi_marshalling_tests_callback_one_out_parameter (GIMarshallingTestsCallbackOneOutParameter callback, gfloat *a)
- {
- callback (a);
- }
- /**
- * gi_marshalling_tests_callback_multiple_out_parameters:
- * @callback: (scope call):
- * @a: (out):
- * @b: (out):
- */
- void
- gi_marshalling_tests_callback_multiple_out_parameters
- (GIMarshallingTestsCallbackMultipleOutParameters callback, gfloat *a, gfloat *b)
- {
- callback (a, b);
- }
- /**
- * gi_marshalling_tests_callback_return_value_and_one_out_parameter:
- * @callback: (scope call):
- * @a: (out):
- */
- glong
- gi_marshalling_tests_callback_return_value_and_one_out_parameter
- (GIMarshallingTestsCallbackReturnValueAndOneOutParameter callback, glong *a)
- {
- return callback (a);
- }
- /**
- * gi_marshalling_tests_callback_return_value_and_multiple_out_parameters:
- * @callback: (scope call):
- * @a: (out):
- * @b: (out):
- */
- glong
- gi_marshalling_tests_callback_return_value_and_multiple_out_parameters
- (GIMarshallingTestsCallbackReturnValueAndMultipleOutParameters callback, glong *a, glong *b)
- {
- return callback (a, b);
- }
- /**
- * gi_marshalling_tests_pointer_in_return:
- *
- * Returns: The same pointer
- */
- gpointer
- gi_marshalling_tests_pointer_in_return (gpointer pointer)
- {
- return pointer;
- }
- GType
- gi_marshalling_tests_genum_get_type (void)
- {
- static GType type = 0;
- if (G_UNLIKELY (type == 0))
- {
- static const GEnumValue values[] = {
- {GI_MARSHALLING_TESTS_GENUM_VALUE1,
- "GI_MARSHALLING_TESTS_GENUM_VALUE1", "value1"},
- {GI_MARSHALLING_TESTS_GENUM_VALUE2,
- "GI_MARSHALLING_TESTS_GENUM_VALUE2", "value2"},
- {GI_MARSHALLING_TESTS_GENUM_VALUE3,
- "GI_MARSHALLING_TESTS_GENUM_VALUE3", "value3"},
- {0, NULL, NULL}
- };
- type = g_enum_register_static (g_intern_static_string ("GIMarshallingTestsGEnum"), values);
- }
- return type;
- }
- GIMarshallingTestsGEnum
- gi_marshalling_tests_genum_returnv (void)
- {
- return GI_MARSHALLING_TESTS_GENUM_VALUE3;
- }
- void
- gi_marshalling_tests_genum_in (GIMarshallingTestsGEnum v)
- {
- g_assert_cmpint (v, ==, GI_MARSHALLING_TESTS_GENUM_VALUE3);
- }
- /**
- * gi_marshalling_tests_genum_out:
- * @v: (out):
- */
- void
- gi_marshalling_tests_genum_out (GIMarshallingTestsGEnum *v)
- {
- *v = GI_MARSHALLING_TESTS_GENUM_VALUE3;
- }
- /**
- * gi_marshalling_tests_genum_inout:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_genum_inout (GIMarshallingTestsGEnum *v)
- {
- g_assert_cmpint (*v, ==, GI_MARSHALLING_TESTS_GENUM_VALUE3);
- *v = GI_MARSHALLING_TESTS_GENUM_VALUE1;
- }
- GIMarshallingTestsEnum
- gi_marshalling_tests_enum_returnv (void)
- {
- return GI_MARSHALLING_TESTS_ENUM_VALUE3;
- }
- void
- gi_marshalling_tests_enum_in (GIMarshallingTestsEnum v)
- {
- g_assert_cmpint (v, ==, GI_MARSHALLING_TESTS_ENUM_VALUE3);
- }
- /**
- * gi_marshalling_tests_enum_out:
- * @v: (out):
- */
- void
- gi_marshalling_tests_enum_out (GIMarshallingTestsEnum *v)
- {
- *v = GI_MARSHALLING_TESTS_ENUM_VALUE3;
- }
- /**
- * gi_marshalling_tests_enum_inout:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_enum_inout (GIMarshallingTestsEnum *v)
- {
- g_assert_cmpint (*v, ==, GI_MARSHALLING_TESTS_ENUM_VALUE3);
- *v = GI_MARSHALLING_TESTS_ENUM_VALUE1;
- }
- GType
- gi_marshalling_tests_flags_get_type (void)
- {
- static GType type = 0;
- if (G_UNLIKELY (type == 0))
- {
- static const GFlagsValue values[] = {
- {GI_MARSHALLING_TESTS_FLAGS_VALUE1,
- "GI_MARSHALLING_TESTS_FLAGS_VALUE1", "value1"},
- {GI_MARSHALLING_TESTS_FLAGS_VALUE2,
- "GI_MARSHALLING_TESTS_FLAGS_VALUE2", "value2"},
- {GI_MARSHALLING_TESTS_FLAGS_VALUE3,
- "GI_MARSHALLING_TESTS_FLAGS_VALUE3", "value3"},
- {GI_MARSHALLING_TESTS_FLAGS_MASK, "GI_MARSHALLING_TESTS_FLAGS_MASK",
- "mask"},
- {GI_MARSHALLING_TESTS_FLAGS_MASK2, "GI_MARSHALLING_TESTS_FLAGS_MASK2",
- "mask2"},
- {0, NULL, NULL}
- };
- type = g_flags_register_static (g_intern_static_string ("GIMarshallingTestsFlags"), values);
- }
- return type;
- }
- GIMarshallingTestsFlags
- gi_marshalling_tests_flags_returnv (void)
- {
- return GI_MARSHALLING_TESTS_FLAGS_VALUE2;
- }
- void
- gi_marshalling_tests_flags_in (GIMarshallingTestsFlags v)
- {
- g_assert (v == GI_MARSHALLING_TESTS_FLAGS_VALUE2);
- }
- void
- gi_marshalling_tests_flags_in_zero (GIMarshallingTestsFlags v)
- {
- g_assert (v == 0);
- }
- /**
- * gi_marshalling_tests_flags_out:
- * @v: (out):
- */
- void
- gi_marshalling_tests_flags_out (GIMarshallingTestsFlags *v)
- {
- *v = GI_MARSHALLING_TESTS_FLAGS_VALUE2;
- }
- /**
- * gi_marshalling_tests_flags_inout:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_flags_inout (GIMarshallingTestsFlags *v)
- {
- g_assert (*v == GI_MARSHALLING_TESTS_FLAGS_VALUE2);
- *v = GI_MARSHALLING_TESTS_FLAGS_VALUE1;
- }
- GIMarshallingTestsNoTypeFlags
- gi_marshalling_tests_no_type_flags_returnv (void)
- {
- return GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_VALUE2;
- }
- void
- gi_marshalling_tests_no_type_flags_in (GIMarshallingTestsNoTypeFlags v)
- {
- g_assert (v == GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_VALUE2);
- }
- void
- gi_marshalling_tests_no_type_flags_in_zero (GIMarshallingTestsNoTypeFlags v)
- {
- g_assert (v == 0);
- }
- /**
- * gi_marshalling_tests_no_type_flags_out:
- * @v: (out):
- */
- void
- gi_marshalling_tests_no_type_flags_out (GIMarshallingTestsNoTypeFlags *v)
- {
- *v = GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_VALUE2;
- }
- /**
- * gi_marshalling_tests_no_type_flags_inout:
- * @v: (inout):
- */
- void
- gi_marshalling_tests_no_type_flags_inout (GIMarshallingTestsNoTypeFlags *v)
- {
- g_assert (*v == GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_VALUE2);
- *v = GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_VALUE1;
- }
- /**
- * gi_marshalling_tests_simple_struct_returnv:
- *
- * Returns: (transfer none):
- */
- GIMarshallingTestsSimpleStruct *
- gi_marshalling_tests_simple_struct_returnv (void)
- {
- static GIMarshallingTestsSimpleStruct *struct_ = NULL;
- if (struct_ == NULL)
- {
- struct_ = g_new (GIMarshallingTestsSimpleStruct, 1);
- struct_->long_ = 6;
- struct_->int8 = 7;
- }
- return struct_;
- }
- /**
- * gi_marshalling_tests_simple_struct_inv:
- * @struct_: (transfer none):
- */
- void
- gi_marshalling_tests_simple_struct_inv (GIMarshallingTestsSimpleStruct *struct_)
- {
- g_assert_cmpint (struct_->long_, ==, 6);
- g_assert_cmpint (struct_->int8, ==, 7);
- }
- void
- gi_marshalling_tests_simple_struct_method (GIMarshallingTestsSimpleStruct *struct_)
- {
- g_assert_cmpint (struct_->long_, ==, 6);
- g_assert_cmpint (struct_->int8, ==, 7);
- }
- GType
- gi_marshalling_tests_pointer_struct_get_type (void)
- {
- static GType type = 0;
- if (type == 0)
- {
- type = g_pointer_type_register_static ("GIMarshallingTestsPointerStruct");
- }
- return type;
- }
- /**
- * gi_marshalling_tests_pointer_struct_returnv:
- *
- * Returns: (transfer none):
- */
- GIMarshallingTestsPointerStruct *
- gi_marshalling_tests_pointer_struct_returnv (void)
- {
- static GIMarshallingTestsPointerStruct *struct_ = NULL;
- if (struct_ == NULL)
- {
- struct_ = g_new (GIMarshallingTestsPointerStruct, 1);
- struct_->long_ = 42;
- }
- return struct_;
- }
- /**
- * gi_marshalling_tests_pointer_struct_inv:
- * @struct_: (transfer none):
- */
- void
- gi_marshalling_tests_pointer_struct_inv (GIMarshallingTestsPointerStruct *struct_)
- {
- g_assert_cmpint (struct_->long_, ==, 42);
- }
- static GIMarshallingTestsBoxedStruct *
- gi_marshalling_tests_boxed_struct_copy (GIMarshallingTestsBoxedStruct *struct_)
- {
- GIMarshallingTestsBoxedStruct *new_struct;
- if (struct_ == NULL)
- return NULL;
- new_struct = g_slice_new (GIMarshallingTestsBoxedStruct);
- *new_struct = *struct_;
- new_struct->string_ = g_strdup (struct_->string_);
- return new_struct;
- }
- static void
- gi_marshalling_tests_boxed_struct_free (GIMarshallingTestsBoxedStruct *struct_)
- {
- if (struct_ != NULL)
- {
- g_free (struct_->string_);
- g_slice_free (GIMarshallingTestsBoxedStruct, struct_);
- }
- }
- GType
- gi_marshalling_tests_boxed_struct_get_type (void)
- {
- static GType type = 0;
- if (type == 0)
- {
- type = g_boxed_type_register_static ("GIMarshallingTestsBoxedStruct",
- (GBoxedCopyFunc)
- gi_marshalling_tests_boxed_struct_copy,
- (GBoxedFreeFunc) gi_marshalling_tests_boxed_struct_free);
- }
- return type;
- }
- static GType
- gi_marshalling_tests_boxed_glist_get_type (void)
- {
- static GType type = 0;
- if (type == 0)
- {
- type = g_boxed_type_register_static ("GIMarshallingTestsBoxedGList",
- (GBoxedCopyFunc) g_list_copy, (GBoxedFreeFunc) g_list_free);
- }
- return type;
- }
- GIMarshallingTestsBoxedStruct *
- gi_marshalling_tests_boxed_struct_new (void)
- {
- return g_slice_new0 (GIMarshallingTestsBoxedStruct);
- }
- /**
- * gi_marshalling_tests_boxed_struct_returnv:
- *
- * Returns: (transfer none):
- */
- GIMarshallingTestsBoxedStruct *
- gi_marshalling_tests_boxed_struct_returnv (void)
- {
- static GIMarshallingTestsBoxedStruct *struct_ = NULL;
- if (struct_ == NULL)
- {
- struct_ = g_new (GIMarshallingTestsBoxedStruct, 1);
- struct_->long_ = 42;
- struct_->string_ = g_strdup ("hello");
- struct_->g_strv = g_new0 (gchar *, 4);
- struct_->g_strv[0] = g_strdup ("0");
- struct_->g_strv[1] = g_strdup ("1");
- struct_->g_strv[2] = g_strdup ("2");
- struct_->g_strv[3] = NULL;
- }
- return struct_;
- }
- /**
- * gi_marshalling_tests_boxed_struct_inv:
- * @struct_: (transfer none):
- */
- void
- gi_marshalling_tests_boxed_struct_inv (GIMarshallingTestsBoxedStruct *struct_)
- {
- g_assert_cmpint (struct_->long_, ==, 42);
- }
- /**
- * gi_marshalling_tests_boxed_struct_out:
- * @struct_: (out) (transfer none):
- */
- void
- gi_marshalling_tests_boxed_struct_out (GIMarshallingTestsBoxedStruct **struct_)
- {
- static GIMarshallingTestsBoxedStruct *new_struct = NULL;
- if (new_struct == NULL)
- {
- new_struct = g_new0 (GIMarshallingTestsBoxedStruct, 1);
- new_struct->long_ = 42;
- }
- *struct_ = new_struct;
- }
- /**
- * gi_marshalling_tests_boxed_struct_inout:
- * @struct_: (inout) (transfer full):
- */
- void
- gi_marshalling_tests_boxed_struct_inout (GIMarshallingTestsBoxedStruct **struct_)
- {
- g_assert_cmpint ((*struct_)->long_, ==, 42);
- g_boxed_free (gi_marshalling_tests_boxed_struct_get_type(), *struct_);
- (*struct_) = g_slice_new0 (GIMarshallingTestsBoxedStruct);
- (*struct_)->long_ = 0;
- }
- static GIMarshallingTestsUnion *
- gi_marshalling_tests_union_copy (GIMarshallingTestsUnion *union_)
- {
- GIMarshallingTestsUnion *new_union;
- new_union = g_slice_new (GIMarshallingTestsUnion);
- *new_union = *union_;
- return new_union;
- }
- static void
- gi_marshalling_tests_union_free (GIMarshallingTestsUnion *union_)
- {
- g_slice_free (GIMarshallingTestsUnion, union_);
- }
- GType
- gi_marshalling_tests_union_get_type (void)
- {
- static GType type = 0;
- if (type == 0)
- {
- type = g_boxed_type_register_static ("GIMarshallingTestsUnion",
- (GBoxedCopyFunc)
- gi_marshalling_tests_union_copy,
- (GBoxedFreeFunc) gi_marshalling_tests_union_free);
- }
- return type;
- }
- /**
- * gi_marshalling_tests_union_returnv:
- *
- * Returns: (transfer none):
- */
- GIMarshallingTestsUnion *
- gi_marshalling_tests_union_returnv (void)
- {
- static GIMarshallingTestsUnion *union_ = NULL;
- if (union_ == NULL)
- {
- union_ = g_new (GIMarshallingTestsUnion, 1);
- union_->long_ = 42;
- }
- return union_;
- }
- /**
- * gi_marshalling_tests_union_inv:
- * @union_: (transfer none):
- */
- void
- gi_marshalling_tests_union_inv (GIMarshallingTestsUnion *union_)
- {
- g_assert_cmpint (union_->long_, ==, 42);
- }
- void
- gi_marshalling_tests_union_method (GIMarshallingTestsUnion *union_)
- {
- g_assert_cmpint (union_->long_, ==, 42);
- }
- enum
- {
- PROP_0,
- PROP_INT_
- };
- static void
- gi_marshalling_tests_object_real_method_with_default_implementation (GIMarshallingTestsObject *self, gint8 in);
- G_DEFINE_TYPE (GIMarshallingTestsObject, gi_marshalling_tests_object, G_TYPE_OBJECT);
- static void
- gi_marshalling_tests_object_init (GIMarshallingTestsObject *object)
- {
- }
- static void
- gi_marshalling_tests_object_finalize (GObject *object)
- {
- G_OBJECT_CLASS (gi_marshalling_tests_object_parent_class)->finalize (object);
- }
- static void
- gi_marshalling_tests_object_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
- {
- g_return_if_fail (GI_MARSHALLING_TESTS_IS_OBJECT (object));
- switch (prop_id)
- {
- case PROP_INT_:
- GI_MARSHALLING_TESTS_OBJECT (object)->int_ = g_value_get_int (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
- }
- static void
- gi_marshalling_tests_object_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
- {
- g_return_if_fail (GI_MARSHALLING_TESTS_IS_OBJECT (object));
- switch (prop_id)
- {
- case PROP_INT_:
- g_value_set_int (value, GI_MARSHALLING_TESTS_OBJECT (object)->int_);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
- }
- static void
- gi_marshalling_tests_object_class_init (GIMarshallingTestsObjectClass *klass)
- {
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- #if 0
- GObjectClass *parent_class = G_OBJECT_CLASS (klass);
- #endif
- object_class->finalize = gi_marshalling_tests_object_finalize;
- object_class->set_property = gi_marshalling_tests_object_set_property;
- object_class->get_property = gi_marshalling_tests_object_get_property;
- g_object_class_install_property (object_class, PROP_INT_,
- g_param_spec_int ("int", "Integer",
- "An integer", G_MININT,
- G_MAXINT, 0,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- klass->method_with_default_implementation = gi_marshalling_tests_object_real_method_with_default_implementation;
- }
- void
- gi_marshalling_tests_object_static_method (void)
- {
- }
- void
- gi_marshalling_tests_object_method (GIMarshallingTestsObject *object)
- {
- g_return_if_fail (GI_MARSHALLING_TESTS_IS_OBJECT (object));
- g_assert_cmpint (object->int_, ==, 42);
- }
- void
- gi_marshalling_tests_object_overridden_method (GIMarshallingTestsObject *object)
- {
- g_return_if_fail (GI_MARSHALLING_TESTS_IS_OBJECT (object));
- g_assert_cmpint (object->int_, ==, 0);
- }
- GIMarshallingTestsObject *
- gi_marshalling_tests_object_new (gint int_)
- {
- return g_object_new (GI_MARSHALLING_TESTS_TYPE_OBJECT, "int", int_, NULL);
- }
- GIMarshallingTestsObject *
- gi_marshalling_tests_object_new_fail (gint int_, GError **error)
- {
- g_return_val_if_fail (error == NULL || *error == NULL, NULL);
- g_set_error_literal (error,
- g_quark_from_static_string (GI_MARSHALLING_TESTS_CONSTANT_GERROR_DOMAIN),
- GI_MARSHALLING_TESTS_CONSTANT_GERROR_CODE,
- GI_MARSHALLING_TESTS_CONSTANT_GERROR_MESSAGE);
- return NULL;
- }
- /**
- * gi_marshalling_tests_object_method_array_in:
- * @ints: (array length=length):
- */
- void
- gi_marshalling_tests_object_method_array_in (GIMarshallingTestsObject *object, const gint *ints, gint length)
- {
- g_assert_cmpint (length, ==, 4);
- g_assert_cmpint (ints[0], ==, -1);
- g_assert_cmpint (ints[1], ==, 0);
- g_assert_cmpint (ints[2], ==, 1);
- g_assert_cmpint (ints[3], ==, 2);
- }
- /**
- * gi_marshalling_tests_object_method_array_out:
- * @ints: (out) (array length=length) (transfer none):
- */
- void
- gi_marshalling_tests_object_method_array_out (GIMarshallingTestsObject *object, gint **ints, gint *length)
- {
- static gint values[] = { -1, 0, 1, 2 };
- *length = 4;
- *ints = values;
- }
- /**
- * gi_marshalling_tests_object_method_array_inout:
- * @ints: (inout) (array length=length) (transfer none):
- * @length: (inout):
- */
- void
- gi_marshalling_tests_object_method_array_inout (GIMarshallingTestsObject *object, gint **ints, gint *length)
- {
- static gint values[] = { -2, -1, 0, 1, 2 };
- g_assert_cmpint (*length, ==, 4);
- g_assert_cmpint ((*ints)[0], ==, -1);
- g_assert_cmpint ((*ints)[1], ==, 0);
- g_assert_cmpint ((*ints)[2], ==, 1);
- g_assert_cmpint ((*ints)[3], ==, 2);
- *length = 5;
- *ints = values;
- }
- /**
- * gi_marshalling_tests_object_method_array_return:
- *
- * Returns: (array length=length):
- */
- const gint *
- gi_marshalling_tests_object_method_array_return (GIMarshallingTestsObject *object, gint *length)
- {
- static gint ints[] = { -1, 0, 1, 2 };
- *length = 4;
- return ints;
- }
- /**
- * gi_marshalling_tests_object_method_int8_in:
- * @in: (in):
- */
- void
- gi_marshalling_tests_object_method_int8_in (GIMarshallingTestsObject *self, gint8 in)
- {
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->method_int8_in (self, in);
- }
- /**
- * gi_marshalling_tests_object_method_int8_out:
- * @out: (out):
- */
- void
- gi_marshalling_tests_object_method_int8_out (GIMarshallingTestsObject *self, gint8 *out)
- {
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->method_int8_out (self, out);
- }
- /**
- * gi_marshalling_tests_object_method_int8_arg_and_out_caller:
- * @out: (out caller-allocates):
- */
- void
- gi_marshalling_tests_object_method_int8_arg_and_out_caller (GIMarshallingTestsObject *self, gint8 arg, gint8 *out)
- {
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->method_int8_arg_and_out_caller (self, arg, out);
- }
- /**
- * gi_marshalling_tests_object_method_int8_arg_and_out_callee:
- * @out: (out):
- */
- void
- gi_marshalling_tests_object_method_int8_arg_and_out_callee (GIMarshallingTestsObject *self, gint8 arg, gint8 **out)
- {
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->method_int8_arg_and_out_callee (self, arg, out);
- }
- /**
- * gi_marshalling_tests_object_method_str_arg_out_ret:
- * @out: (out caller-allocates):
- *
- * Returns: (transfer none)
- */
- const gchar *
- gi_marshalling_tests_object_method_str_arg_out_ret (GIMarshallingTestsObject *self, const gchar *arg, guint *out)
- {
- return GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->method_str_arg_out_ret (self, arg, out);
- }
- /**
- * gi_marshalling_tests_object_method_with_default_implementation:
- * @in: (in):
- */
- void gi_marshalling_tests_object_method_with_default_implementation (GIMarshallingTestsObject *self, gint8 in)
- {
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->method_with_default_implementation (self, in);
- }
- static void
- gi_marshalling_tests_object_real_method_with_default_implementation (GIMarshallingTestsObject *self, gint8 in)
- {
- GValue val = { 0, };
- g_value_init (&val, G_TYPE_INT);
- g_value_set_int (&val, in);
- g_object_set_property (G_OBJECT (self), "int", &val);
- }
- /**
- * gi_marshalling_tests_object_vfunc_with_callback: (virtual vfunc_with_callback)
- * @callback: (scope call) (closure callback_data):
- * @callback_data: (allow-none):
- */
- void
- gi_marshalling_tests_object_vfunc_with_callback (GIMarshallingTestsObject *
- object, GIMarshallingTestsCallbackIntInt callback, void *callback_data)
- {
- }
- static int
- _callback (int val, void *user_data)
- {
- g_assert (user_data == (gpointer) 0xdeadbeef);
- return val;
- }
- void
- gi_marshalling_tests_object_call_vfunc_with_callback (GIMarshallingTestsObject *object)
- {
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (object)->vfunc_with_callback (object, _callback, (void *) 0xdeadbeef);
- }
- /**
- * gi_marshalling_tests_object_none_return:
- *
- * Returns: (transfer none):
- */
- GIMarshallingTestsObject *
- gi_marshalling_tests_object_none_return (void)
- {
- static GIMarshallingTestsObject *object = NULL;
- if (object == NULL)
- {
- object = g_object_new (GI_MARSHALLING_TESTS_TYPE_OBJECT, NULL);
- }
- return object;
- }
- /**
- * gi_marshalling_tests_object_full_return:
- *
- * Returns: (transfer full):
- */
- GIMarshallingTestsObject *
- gi_marshalling_tests_object_full_return (void)
- {
- return g_object_new (GI_MARSHALLING_TESTS_TYPE_OBJECT, NULL);
- }
- /**
- * gi_marshalling_tests_object_none_in:
- * @object: (transfer none):
- */
- void
- gi_marshalling_tests_object_none_in (GIMarshallingTestsObject *object)
- {
- g_assert_cmpint (object->int_, ==, 42);
- }
- /**
- * gi_marshalling_tests_object_none_out:
- * @object: (out) (transfer none):
- */
- void
- gi_marshalling_tests_object_none_out (GIMarshallingTestsObject **object)
- {
- static GIMarshallingTestsObject *new_object = NULL;
- if (new_object == NULL)
- {
- new_object = g_object_new (GI_MARSHALLING_TESTS_TYPE_OBJECT, NULL);
- }
- *object = new_object;
- }
- /**
- * gi_marshalling_tests_object_full_out:
- * @object: (out) (transfer full):
- */
- void
- gi_marshalling_tests_object_full_out (GIMarshallingTestsObject **object)
- {
- *object = g_object_new (GI_MARSHALLING_TESTS_TYPE_OBJECT, NULL);
- }
- /**
- * gi_marshalling_tests_object_none_inout:
- * @object: (inout) (transfer none):
- */
- void
- gi_marshalling_tests_object_none_inout (GIMarshallingTestsObject **object)
- {
- static GIMarshallingTestsObject *new_object = NULL;
- g_assert_cmpint ((*object)->int_, ==, 42);
- if (new_object == NULL)
- {
- new_object = g_object_new (GI_MARSHALLING_TESTS_TYPE_OBJECT, NULL);
- new_object->int_ = 0;
- }
- *object = new_object;
- }
- /**
- * gi_marshalling_tests_object_full_inout:
- * @object: (inout) (transfer full):
- */
- void
- gi_marshalling_tests_object_full_inout (GIMarshallingTestsObject **object)
- {
- g_assert_cmpint ((*object)->int_, ==, 42);
- g_object_unref (*object);
- *object = g_object_new (GI_MARSHALLING_TESTS_TYPE_OBJECT, NULL);
- }
- /**
- * gi_marshalling_tests_object_int8_in:
- * @in: (in):
- */
- void
- gi_marshalling_tests_object_int8_in (GIMarshallingTestsObject *object, gint8 in)
- {
- gi_marshalling_tests_object_method_int8_in (object, in);
- }
- /**
- * gi_marshalling_tests_object_int8_out:
- * @out: (out):
- */
- void
- gi_marshalling_tests_object_int8_out (GIMarshallingTestsObject *object, gint8 *out)
- {
- gi_marshalling_tests_object_method_int8_out (object, out);
- }
- /**
- * gi_marshalling_tests_object_vfunc_return_value_only:
- */
- glong
- gi_marshalling_tests_object_vfunc_return_value_only (GIMarshallingTestsObject *self)
- {
- /* make sure that local variables don't get smashed */
- glong return_value;
- gulong local = 0x12345678;
- return_value = GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_return_value_only (self);
- g_assert_cmpint (local, ==, 0x12345678);
- return return_value;
- }
- /**
- * gi_marshalling_tests_object_vfunc_one_out_parameter:
- * @a: (out):
- */
- void
- gi_marshalling_tests_object_vfunc_one_out_parameter (GIMarshallingTestsObject *self, gfloat *a)
- {
- /* make sure that local variables don't get smashed */
- gulong local = 0x12345678;
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_one_out_parameter (self, a);
- g_assert_cmpint (local, ==, 0x12345678);
- }
- /**
- * gi_marshalling_tests_object_vfunc_multiple_out_parameters:
- * @a: (out):
- * @b: (out):
- */
- void gi_marshalling_tests_object_vfunc_multiple_out_parameters (GIMarshallingTestsObject *self, gfloat *a, gfloat *b)
- {
- /* make sure that local variables don't get smashed */
- gulong local = 0x12345678;
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_multiple_out_parameters (self, a, b);
- g_assert_cmpint (local, ==, 0x12345678);
- }
- /**
- * gi_marshalling_tests_object_vfunc_caller_allocated_out_parameter:
- * @a: (out):
- */
- void gi_marshalling_tests_object_vfunc_caller_allocated_out_parameter (GIMarshallingTestsObject *self, GValue *a)
- {
- /* make sure that local variables don't get smashed */
- gulong local = 0x12345678;
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_caller_allocated_out_parameter (self, a);
- g_assert_cmpint (local, ==, 0x12345678);
- }
- /**
- * gi_marshalling_tests_object_vfunc_array_out_parameter:
- * @a: (out) (array zero-terminated):
- */
- void gi_marshalling_tests_object_vfunc_array_out_parameter (GIMarshallingTestsObject *self, gfloat **a)
- {
- /* make sure that local variables don't get smashed */
- gulong local = 0x12345678;
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_array_out_parameter (self, a);
- g_assert_cmpint (local, ==, 0x12345678);
- }
- /**
- * gi_marshalling_tests_object_vfunc_return_value_and_one_out_parameter:
- * @a: (out):
- */
- glong gi_marshalling_tests_object_vfunc_return_value_and_one_out_parameter (GIMarshallingTestsObject *self, glong *a)
- {
- /* make sure that local variables don't get smashed */
- gulong return_value;
- gulong local = 0x12345678;
- return_value = GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_return_value_and_one_out_parameter (self, a);
- g_assert_cmpint (local, ==, 0x12345678);
- return return_value;
- }
- /**
- * gi_marshalling_tests_object_vfunc_return_value_and_multiple_out_parameters:
- * @a: (out):
- * @b: (out):
- */
- glong
- gi_marshalling_tests_object_vfunc_return_value_and_multiple_out_parameters
- (GIMarshallingTestsObject *self, glong *a, glong *b)
- {
- gulong return_value;
- gulong local = 0x12345678;
- return_value =
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_return_value_and_multiple_out_parameters (self, a, b);
- g_assert_cmpint (local, ==, 0x12345678);
- return return_value;
- }
- /**
- * gi_marshalling_tests_callback_owned_boxed:
- * @callback: (scope call) (closure callback_data):
- * @callback_data: (allow-none):
- */
- glong
- gi_marshalling_tests_callback_owned_boxed (GIMarshallingTestsCallbackOwnedBoxed callback,
- void *callback_data)
- {
- static GIMarshallingTestsBoxedStruct *box = NULL;
- glong ret;
- if (!box)
- box = gi_marshalling_tests_boxed_struct_new ();
- box->long_++;
- callback (box, callback_data);
- ret = box->long_;
- return ret;
- }
- gboolean
- gi_marshalling_tests_object_vfunc_meth_with_error (GIMarshallingTestsObject *self, gint x, GError **error)
- {
- gulong local = 0x12345678;
- gboolean ret = GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_meth_with_err (self,
- x,
- error);
- g_assert_cmpint (local, ==, 0x12345678);
- return ret;
- }
- /**
- * gi_marshalling_tests_object_vfunc_return_enum:
- */
- GIMarshallingTestsEnum
- gi_marshalling_tests_object_vfunc_return_enum (GIMarshallingTestsObject *self)
- {
- /* make sure that local variables don't get smashed */
- GIMarshallingTestsEnum return_value;
- glong local = 0x12345678;
- return_value = GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_return_enum (self);
- g_assert_cmpint (local, ==, 0x12345678);
- return return_value;
- }
- /**
- * gi_marshalling_tests_object_vfunc_out_enum:
- * @_enum: (out):
- */
- void
- gi_marshalling_tests_object_vfunc_out_enum (GIMarshallingTestsObject *self, GIMarshallingTestsEnum *_enum)
- {
- /* make sure that local variables don't get smashed */
- gulong local = 0x12345678;
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_out_enum (self, _enum);
- g_assert_cmpint (local, ==, 0x12345678);
- }
- /* NOTE:
- *
- * The following (get_ref_info_for_*) methods are designed to call vfuncs related
- * to object argument marshaling. They do not pass the resulting objects through them
- * as regular vfunc wrapper method do, but rather return reference count and floating
- * information back to the callers. This is useful because callers can do testing of
- * expected reference counts in isolation and from the perspective of C. This is important
- * because if there are bugs in the reverse marshaling, they can obfuscate or compound
- * bugs in marshaling from the vfuncs.
- */
- /**
- * gi_marshalling_tests_object_get_ref_info_for_vfunc_return_object_transfer_none:
- * @ref_count: (out): Ref count of the object returned from the vfunc directly after vfunc call.
- * @is_floating: (out): Floating state object returned from the vfunc directly after vfunc call.
- */
- void
- gi_marshalling_tests_object_get_ref_info_for_vfunc_return_object_transfer_none
- (GIMarshallingTestsObject *self, guint *ref_count, gboolean *is_floating)
- {
- GObject *object = GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_return_object_transfer_none (self);
- *ref_count = object->ref_count;
- *is_floating = g_object_is_floating (object);
- /* Attempt to sink and unref the returned object and avoid any potential leaks */
- g_object_ref_sink (object);
- g_object_unref (object);
- }
- /**
- * gi_marshalling_tests_object_get_ref_info_for_vfunc_return_object_transfer_full:
- * @ref_count: (out): Ref count of the object returned from the vfunc directly after vfunc call.
- * @is_floating: (out): Floating state object returned from the vfunc directly after vfunc call.
- */
- void
- gi_marshalling_tests_object_get_ref_info_for_vfunc_return_object_transfer_full
- (GIMarshallingTestsObject *self, guint *ref_count, gboolean *is_floating)
- {
- GObject *object = GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_return_object_transfer_full (self);
- *ref_count = object->ref_count;
- *is_floating = g_object_is_floating (object);
- g_object_unref (object);
- }
- /**
- * gi_marshalling_tests_object_get_ref_info_for_vfunc_out_object_transfer_none:
- * @ref_count: (out): Ref count of the object returned from the vfunc directly after vfunc call.
- * @is_floating: (out): Floating state object returned from the vfunc directly after vfunc call.
- */
- void
- gi_marshalling_tests_object_get_ref_info_for_vfunc_out_object_transfer_none
- (GIMarshallingTestsObject *self, guint *ref_count, gboolean *is_floating)
- {
- GObject *object = NULL;
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_out_object_transfer_none (self, &object);
- *ref_count = object->ref_count;
- *is_floating = g_object_is_floating (object);
- /* Attempt to sink and unref the returned object and avoid any potential leaks */
- g_object_ref_sink (object);
- g_object_unref (object);
- }
- /**
- * gi_marshalling_tests_object_get_ref_info_for_vfunc_out_object_transfer_full:
- * @ref_count: (out): Ref count of the object returned from the vfunc directly after vfunc call.
- * @is_floating: (out): Floating state object returned from the vfunc directly after vfunc call.
- */
- void
- gi_marshalling_tests_object_get_ref_info_for_vfunc_out_object_transfer_full
- (GIMarshallingTestsObject *self, guint *ref_count, gboolean *is_floating)
- {
- GObject *object = NULL;
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_out_object_transfer_full (self, &object);
- *ref_count = object->ref_count;
- *is_floating = g_object_is_floating (object);
- g_object_unref (object);
- }
- static void
- _vfunc_in_object_destroy_callback (gboolean *destroy_called, GObject *where_the_object_was)
- {
- *destroy_called = TRUE;
- }
- /**
- * gi_marshalling_tests_object_get_ref_info_for_vfunc_in_object_transfer_none:
- * @type: GType of object to create and pass as in argument to the vfunc
- * @ref_count: (out): Ref count of the in object directly after vfunc call.
- * @is_floating: (out): Floating state of in object directly after vfunc call.
- *
- * Calls vfunc_in_object_transfer_none with a new object of the given type.
- */
- void
- gi_marshalling_tests_object_get_ref_info_for_vfunc_in_object_transfer_none
- (GIMarshallingTestsObject *self, GType type, guint *ref_count, gboolean *is_floating)
- {
- static gboolean destroy_called;
- GObject *object;
- destroy_called = FALSE;
- object = g_object_new (type, NULL);
- g_object_weak_ref (object, (GWeakNotify) _vfunc_in_object_destroy_callback, &destroy_called);
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_in_object_transfer_none (self, object);
- if (destroy_called)
- {
- *ref_count = 0;
- *is_floating = FALSE;
- }
- else
- {
- *ref_count = object->ref_count;
- *is_floating = g_object_is_floating (object);
- g_object_unref (object);
- }
- }
- /**
- * gi_marshalling_tests_object_get_ref_info_for_vfunc_in_object_transfer_full:
- * @type: GType of object to create and pass as in argument to the vfunc
- * @ref_count: (out): Ref count of the in object directly after vfunc call.
- * @is_floating: (out): Floating state of in object directly after vfunc call.
- */
- void
- gi_marshalling_tests_object_get_ref_info_for_vfunc_in_object_transfer_full
- (GIMarshallingTestsObject *self, GType type, guint *ref_count, gboolean *is_floating)
- {
- static gboolean destroy_called;
- GObject *object;
- destroy_called = FALSE;
- object = g_object_new (type, NULL);
- g_object_weak_ref (object, (GWeakNotify) _vfunc_in_object_destroy_callback, &destroy_called);
- /* Calling the vfunc takes ownership of the object, so we use a weak_ref to determine
- * if the object gets destroyed after the call and appropriately return 0 as the ref count.
- */
- GI_MARSHALLING_TESTS_OBJECT_GET_CLASS (self)->vfunc_in_object_transfer_full (self, object);
- if (destroy_called)
- {
- *ref_count = 0;
- *is_floating = FALSE;
- }
- else
- {
- *ref_count = object->ref_count;
- *is_floating = g_object_is_floating (object);
- }
- }
- G_DEFINE_TYPE (GIMarshallingTestsSubObject, gi_marshalling_tests_sub_object, GI_MARSHALLING_TESTS_TYPE_OBJECT);
- static void
- gi_marshalling_tests_sub_object_init (GIMarshallingTestsSubObject *object)
- {
- }
- static void
- gi_marshalling_tests_sub_object_finalize (GObject *object)
- {
- G_OBJECT_CLASS (gi_marshalling_tests_sub_object_parent_class)->finalize (object);
- }
- static void
- method_deep_hierarchy (GIMarshallingTestsObject *self, gint8 in)
- {
- GValue val = { 0, };
- g_value_init (&val, G_TYPE_INT);
- g_value_set_int (&val, in);
- g_object_set_property (G_OBJECT (self), "int", &val);
- }
- static void
- gi_marshalling_tests_sub_object_class_init (GIMarshallingTestsSubObjectClass *klass)
- {
- G_OBJECT_CLASS (klass)->finalize = gi_marshalling_tests_sub_object_finalize;
- GI_MARSHALLING_TESTS_OBJECT_CLASS (klass)->method_deep_hierarchy = method_deep_hierarchy;
- }
- void
- gi_marshalling_tests_sub_object_sub_method (GIMarshallingTestsSubObject *object)
- {
- g_assert_cmpint (GI_MARSHALLING_TESTS_OBJECT (object)->int_, ==, 0);
- }
- void gi_marshalling_tests_sub_object_overwritten_method (GIMarshallingTestsSubObject *object)
- {
- g_assert_cmpint (GI_MARSHALLING_TESTS_OBJECT (object)->int_, ==, 0);
- }
- G_DEFINE_TYPE (GIMarshallingTestsSubSubObject,
- gi_marshalling_tests_sub_sub_object, GI_MARSHALLING_TESTS_TYPE_SUB_OBJECT);
- static void
- gi_marshalling_tests_sub_sub_object_init (GIMarshallingTestsSubSubObject *object)
- {
- }
- static void gi_marshalling_tests_sub_sub_object_class_init (GIMarshallingTestsSubSubObjectClass *klass)
- {
- }
- /* Interfaces */
- static void
- gi_marshalling_tests_interface_class_init (void *g_iface)
- {
- }
- GType
- gi_marshalling_tests_interface_get_type (void)
- {
- static GType type = 0;
- if (type == 0)
- {
- /* Not adding prerequisite here for test purposes */
- type = g_type_register_static_simple (G_TYPE_INTERFACE,
- "GIMarshallingTestsInterface",
- sizeof
- (GIMarshallingTestsInterfaceIface),
- (GClassInitFunc) gi_marshalling_tests_interface_class_init, 0, NULL, 0);
- }
- return type;
- }
- /**
- * gi_marshalling_tests_interface_test_int8_in:
- * @in: (in):
- */
- void
- gi_marshalling_tests_interface_test_int8_in (GIMarshallingTestsInterface *self, gint8 in)
- {
- GI_MARSHALLING_TESTS_INTERFACE_GET_IFACE (self)->test_int8_in (self, in);
- }
- /**
- * gi_marshalling_tests_test_interface_test_int8_in:
- * @in: (in):
- */
- void
- gi_marshalling_tests_test_interface_test_int8_in (GIMarshallingTestsInterface *test_iface, gint8 in)
- {
- gi_marshalling_tests_interface_test_int8_in (test_iface, in);
- }
- static void test_interface_init (GIMarshallingTestsInterfaceIface *iface);
- G_DEFINE_TYPE_WITH_CODE (GIMarshallingTestsInterfaceImpl, gi_marshalling_tests_interface_impl, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE(GI_MARSHALLING_TESTS_TYPE_INTERFACE, test_interface_init))
- static void
- gi_marshalling_tests_interface_impl_test_int8_in (GIMarshallingTestsInterface *self, gint8 in)
- {
- }
- static void test_interface_init (GIMarshallingTestsInterfaceIface *iface)
- {
- iface->test_int8_in = gi_marshalling_tests_interface_impl_test_int8_in;
- }
- static void
- gi_marshalling_tests_interface_impl_init (GIMarshallingTestsInterfaceImpl *object)
- {
- }
- static void
- gi_marshalling_tests_interface_impl_class_init (GIMarshallingTestsInterfaceImplClass *klass)
- {
- }
- /**
- * gi_marshalling_tests_interface_impl_get_as_interface:
- *
- * Returns: (transfer none):
- */
- GIMarshallingTestsInterface *
- gi_marshalling_tests_interface_impl_get_as_interface (GIMarshallingTestsInterfaceImpl *self)
- {
- return (GIMarshallingTestsInterface *) self;
- }
- static void
- gi_marshalling_tests_interface2_class_init (void *g_iface)
- {
- }
- GType
- gi_marshalling_tests_interface2_get_type (void)
- {
- static GType type = 0;
- if (type == 0)
- {
- type = g_type_register_static_simple (G_TYPE_INTERFACE,
- "GIMarshallingTestsInterface2",
- sizeof
- (GIMarshallingTestsInterface2Iface),
- (GClassInitFunc) gi_marshalling_tests_interface2_class_init, 0, NULL, 0);
- }
- return type;
- }
- static void
- gi_marshalling_tests_interface3_class_init (void *g_iface)
- {
- }
- GType
- gi_marshalling_tests_interface3_get_type (void)
- {
- static GType type = 0;
- if (type == 0)
- {
- type = g_type_register_static_simple (G_TYPE_INTERFACE,
- "GIMarshallingTestsInterface3",
- sizeof
- (GIMarshallingTestsInterface3Iface),
- (GClassInitFunc) gi_marshalling_tests_interface3_class_init, 0, NULL, 0);
- }
- return type;
- }
- /**
- * gi_marshalling_tests_interface3_test_variant_array_in:
- * @in: (array length=n_in):
- * @n_in:
- */
- void
- gi_marshalling_tests_interface3_test_variant_array_in
- (GIMarshallingTestsInterface3 *self, GVariant **in, gsize n_in)
- {
- GI_MARSHALLING_TESTS_INTERFACE3_GET_IFACE (self)->test_variant_array_in (self, in, n_in);
- }
- /**
- * gi_marshalling_tests_int_out_out:
- * @int0: (out):
- * @int1: (out):
- */
- void
- gi_marshalling_tests_int_out_out (gint *int0, gint *int1)
- {
- *int0 = 6;
- *int1 = 7;
- }
- /**
- * gi_marshalling_tests_int_three_in_three_out:
- * @a: (in):
- * @b: (in):
- * @c: (in):
- * @out0: (out):
- * @out1: (out):
- * @out2: (out):
- */
- void
- gi_marshalling_tests_int_three_in_three_out (gint a, gint b, gint c, gint *out0, gint *out1, gint *out2)
- {
- *out0 = a;
- *out1 = b;
- *out2 = c;
- }
- /**
- * gi_marshalling_tests_int_return_out:
- * @int_: (out):
- */
- gint
- gi_marshalling_tests_int_return_out (gint *int_)
- {
- *int_ = 7;
- return 6;
- }
- /**
- * gi_marshalling_tests_int_two_in_utf8_two_in_with_allow_none:
- * @a: (in): Must be 1
- * @b: (in): Must be 2
- * @c: (in) (allow-none): Must be "3" or NULL
- * @d: (in) (allow-none): Must be "4" or NULL
- */
- void
- gi_marshalling_tests_int_two_in_utf8_two_in_with_allow_none (gint a, gint b, const gchar *c, const gchar *d)
- {
- g_assert_cmpint (a, ==, 1);
- g_assert_cmpint (b, ==, 2);
- if (c != NULL)
- g_assert_cmpstr (c, ==, "3");
- if (d != NULL)
- g_assert_cmpstr (d, ==, "4");
- }
- /**
- * gi_marshalling_tests_int_one_in_utf8_two_in_one_allows_none:
- * @a: (in): Must be 1
- * @b: (in) (allow-none): Must be "2" or NULL
- * @c: (in): Must be "3"
- */
- void
- gi_marshalling_tests_int_one_in_utf8_two_in_one_allows_none (gint a, const gchar *b, const gchar *c)
- {
- g_assert_cmpint (a, ==, 1);
- if (b != NULL)
- g_assert_cmpstr (b, ==, "2");
- g_assert_cmpstr (c, ==, "3");
- }
- /**
- * gi_marshalling_tests_array_in_utf8_two_in:
- * @ints: (array length=length):
- * @length:
- * @a: (in) (allow-none): Must be "1" or NULL
- * @b: (in) (allow-none): Must be "2" or NULL
- */
- void
- gi_marshalling_tests_array_in_utf8_two_in (const gint *ints, gint length, const gchar *a, const gchar *b)
- {
- g_assert_cmpint (length, ==, 4);
- g_assert_cmpint (ints[0], ==, -1);
- g_assert_cmpint (ints[1], ==, 0);
- g_assert_cmpint (ints[2], ==, 1);
- g_assert_cmpint (ints[3], ==, 2);
- if (a != NULL)
- g_assert_cmpstr (a, ==, "1");
- if (b != NULL)
- g_assert_cmpstr (b, ==, "2");
- }
- /**
- * gi_marshalling_tests_array_in_utf8_two_in_out_of_order:
- * @length:
- * @a: (in) (allow-none): Must be "1" or NULL
- * @ints: (array length=length):
- * @b: (in) (allow-none): Must be "2" or NULL
- */
- void
- gi_marshalling_tests_array_in_utf8_two_in_out_of_order (gint length, const gchar *a, const gint *ints, const gchar *b)
- {
- g_assert_cmpint (length, ==, 4);
- g_assert_cmpint (ints[0], ==, -1);
- g_assert_cmpint (ints[1], ==, 0);
- g_assert_cmpint (ints[2], ==, 1);
- g_assert_cmpint (ints[3], ==, 2);
- if (a != NULL)
- g_assert_cmpstr (a, ==, "1");
- if (b != NULL)
- g_assert_cmpstr (b, ==, "2");
- }
- /* GError */
- void
- gi_marshalling_tests_gerror (GError **error)
- {
- GQuark quark = g_quark_from_static_string (GI_MARSHALLING_TESTS_CONSTANT_GERROR_DOMAIN);
- g_set_error_literal (error, quark,
- GI_MARSHALLING_TESTS_CONSTANT_GERROR_CODE, GI_MARSHALLING_TESTS_CONSTANT_GERROR_MESSAGE);
- }
- /**
- * gi_marshalling_tests_gerror_array_in:
- * @in_ints: (array zero-terminated):
- */
- void
- gi_marshalling_tests_gerror_array_in (gint *in_ints, GError **error)
- {
- GQuark quark = g_quark_from_static_string (GI_MARSHALLING_TESTS_CONSTANT_GERROR_DOMAIN);
- g_set_error_literal (error, quark,
- GI_MARSHALLING_TESTS_CONSTANT_GERROR_CODE, GI_MARSHALLING_TESTS_CONSTANT_GERROR_MESSAGE);
- }
- /**
- * gi_marshalling_tests_gerror_out:
- * @error: (out) (allow-none) (transfer full): location for the GError.
- * @debug: (out) (allow-none) (transfer full): location for the debug message
- *
- * Inspired by gst_message_parse_error.
- */
- void
- gi_marshalling_tests_gerror_out (GError **error, gchar **debug)
- {
- GQuark quark = g_quark_from_static_string (GI_MARSHALLING_TESTS_CONSTANT_GERROR_DOMAIN);
- g_set_error_literal (error, quark,
- GI_MARSHALLING_TESTS_CONSTANT_GERROR_CODE, GI_MARSHALLING_TESTS_CONSTANT_GERROR_MESSAGE);
- if (debug != NULL)
- {
- *debug = g_strdup (GI_MARSHALLING_TESTS_CONSTANT_GERROR_DEBUG_MESSAGE);
- }
- }
- /**
- * gi_marshalling_tests_gerror_out_transfer_none:
- * @err: (out) (allow-none) (transfer none): location for the GError.
- * @debug: (out) (allow-none) (transfer none): location for the debug message
- *
- * A variant of gi_marshalling_tests_gerror_out() which returns data the caller
- * must not free.
- */
- void
- gi_marshalling_tests_gerror_out_transfer_none (GError **err, const gchar **debug)
- {
- static GError error = { 0,
- GI_MARSHALLING_TESTS_CONSTANT_GERROR_CODE,
- GI_MARSHALLING_TESTS_CONSTANT_GERROR_MESSAGE
- };
- error.domain = g_quark_from_static_string (GI_MARSHALLING_TESTS_CONSTANT_GERROR_DOMAIN);
- *err = &error;
- *debug = GI_MARSHALLING_TESTS_CONSTANT_GERROR_DEBUG_MESSAGE;
- }
- /**
- * gi_marshalling_tests_gerror_return:
- *
- * Yet another variant of gi_marshalling_tests_gerror_out().
- *
- * Returns: (transfer full): a GError
- */
- GError *
- gi_marshalling_tests_gerror_return (void)
- {
- GQuark quark = g_quark_from_static_string (GI_MARSHALLING_TESTS_CONSTANT_GERROR_DOMAIN);
- return g_error_new (quark, GI_MARSHALLING_TESTS_CONSTANT_GERROR_CODE, GI_MARSHALLING_TESTS_CONSTANT_GERROR_MESSAGE);
- }
- static GIMarshallingTestsOverridesStruct *
- gi_marshalling_tests_overrides_struct_copy (GIMarshallingTestsOverridesStruct *struct_)
- {
- GIMarshallingTestsOverridesStruct *new_struct;
- new_struct = g_slice_new (GIMarshallingTestsOverridesStruct);
- *new_struct = *struct_;
- return new_struct;
- }
- static void
- gi_marshalling_tests_overrides_struct_free (GIMarshallingTestsOverridesStruct *struct_)
- {
- g_slice_free (GIMarshallingTestsOverridesStruct, struct_);
- }
- GType
- gi_marshalling_tests_overrides_struct_get_type (void)
- {
- static GType type = 0;
- if (type == 0)
- {
- type =
- g_boxed_type_register_static ("GIMarshallingTestsOverridesStruct",
- (GBoxedCopyFunc)
- gi_marshalling_tests_overrides_struct_copy,
- (GBoxedFreeFunc) gi_marshalling_tests_overrides_struct_free);
- }
- return type;
- }
- GIMarshallingTestsOverridesStruct *
- gi_marshalling_tests_overrides_struct_new (void)
- {
- return g_slice_new (GIMarshallingTestsOverridesStruct);
- }
- glong gi_marshalling_tests_overrides_struct_method (GIMarshallingTestsOverridesStruct *struct_)
- {
- return 42;
- }
- /**
- * gi_marshalling_tests_overrides_struct_returnv:
- *
- * Returns: (transfer full):
- */
- GIMarshallingTestsOverridesStruct *
- gi_marshalling_tests_overrides_struct_returnv (void)
- {
- return gi_marshalling_tests_overrides_struct_new ();
- }
- G_DEFINE_TYPE (GIMarshallingTestsOverridesObject, gi_marshalling_tests_overrides_object, G_TYPE_OBJECT);
- static void
- gi_marshalling_tests_overrides_object_init (GIMarshallingTestsOverridesObject *object)
- {
- }
- static void
- gi_marshalling_tests_overrides_object_finalize (GObject *object)
- {
- G_OBJECT_CLASS (gi_marshalling_tests_overrides_object_parent_class)->finalize (object);
- }
- static void gi_marshalling_tests_overrides_object_class_init (GIMarshallingTestsOverridesObjectClass *klass)
- {
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- #if 0
- GObjectClass *parent_class = G_OBJECT_CLASS (klass);
- #endif
- object_class->finalize = gi_marshalling_tests_overrides_object_finalize;
- }
- GIMarshallingTestsOverridesObject *
- gi_marshalling_tests_overrides_object_new (void)
- {
- return g_object_new (GI_MARSHALLING_TESTS_TYPE_OVERRIDES_OBJECT, NULL);
- }
- glong gi_marshalling_tests_overrides_object_method (GIMarshallingTestsOverridesObject *object)
- {
- return 42;
- }
- /**
- * gi_marshalling_tests_overrides_object_returnv:
- *
- * Returns: (transfer full):
- */
- GIMarshallingTestsOverridesObject *
- gi_marshalling_tests_overrides_object_returnv (void)
- {
- return g_object_new (GI_MARSHALLING_TESTS_TYPE_OVERRIDES_OBJECT, NULL);
- }
- /**
- * gi_marshalling_tests_filename_list_return:
- *
- * Returns: (transfer none) (element-type filename): List of filenames
- */
- GSList *
- gi_marshalling_tests_filename_list_return (void)
- {
- return NULL;
- }
- /**
- * gi_marshalling_tests_param_spec_in_bool:
- */
- void
- gi_marshalling_tests_param_spec_in_bool (const GParamSpec *param)
- {
- g_assert (G_IS_PARAM_SPEC (param));
- g_assert_cmpint (G_PARAM_SPEC_VALUE_TYPE (param), ==, G_TYPE_BOOLEAN);
- g_assert_cmpstr (g_param_spec_get_name ((GParamSpec *) param), ==, "mybool");
- }
- /**
- * gi_marshalling_tests_param_spec_return:
- *
- * Returns: (transfer full): a #GParamSpec
- */
- GParamSpec *
- gi_marshalling_tests_param_spec_return (void)
- {
- return g_param_spec_string ("test-param", "test", "This is a test", "42", G_PARAM_READABLE);
- }
- /**
- * gi_marshalling_tests_param_spec_out:
- * @param: (out):
- */
- void
- gi_marshalling_tests_param_spec_out (GParamSpec **param)
- {
- *param = g_param_spec_string ("test-param", "test", "This is a test", "42", G_PARAM_READABLE);
- }
- enum
- {
- DUMMY_PROPERTY,
- SOME_BOOLEAN_PROPERTY,
- SOME_CHAR_PROPERTY,
- SOME_UCHAR_PROPERTY,
- SOME_INT_PROPERTY,
- SOME_UINT_PROPERTY,
- SOME_LONG_PROPERTY,
- SOME_ULONG_PROPERTY,
- SOME_INT64_PROPERTY,
- SOME_UINT64_PROPERTY,
- SOME_FLOAT_PROPERTY,
- SOME_DOUBLE_PROPERTY,
- SOME_STRV_PROPERTY,
- SOME_BOXED_STRUCT_PROPERTY,
- SOME_VARIANT_PROPERTY,
- SOME_BOXED_GLIST_PROPERTY,
- SOME_OBJECT_PROPERTY,
- };
- G_DEFINE_TYPE (GIMarshallingTestsPropertiesObject, gi_marshalling_tests_properties_object, G_TYPE_OBJECT);
- static void gi_marshalling_tests_properties_object_init (GIMarshallingTestsPropertiesObject *self)
- {
- }
- static void
- gi_marshalling_tests_properties_object_finalize (GObject *obj)
- {
- GIMarshallingTestsPropertiesObject *self;
- self = GI_MARSHALLING_TESTS_PROPERTIES_OBJECT (obj);
- if (self->some_strv != NULL) {
- g_strfreev (self->some_strv);
- self->some_strv = NULL;
- }
- G_OBJECT_CLASS (gi_marshalling_tests_properties_object_parent_class)->finalize (obj);
- }
- static void
- gi_marshalling_tests_properties_object_get_property (GObject *object,
- guint property_id, GValue *value, GParamSpec *pspec)
- {
- GIMarshallingTestsPropertiesObject *self;
- self = GI_MARSHALLING_TESTS_PROPERTIES_OBJECT (object);
- switch (property_id)
- {
- case SOME_BOOLEAN_PROPERTY:
- g_value_set_boolean (value, self->some_boolean);
- break;
- case SOME_CHAR_PROPERTY:
- g_value_set_schar (value, self->some_char);
- break;
- case SOME_UCHAR_PROPERTY:
- g_value_set_uchar (value, self->some_uchar);
- break;
- case SOME_INT_PROPERTY:
- g_value_set_int (value, self->some_int);
- break;
- case SOME_UINT_PROPERTY:
- g_value_set_uint (value, self->some_uint);
- break;
- case SOME_LONG_PROPERTY:
- g_value_set_long (value, self->some_long);
- break;
- case SOME_ULONG_PROPERTY:
- g_value_set_ulong (value, self->some_ulong);
- break;
- case SOME_INT64_PROPERTY:
- g_value_set_int64 (value, self->some_int64);
- break;
- case SOME_UINT64_PROPERTY:
- g_value_set_uint64 (value, self->some_uint64);
- break;
- case SOME_FLOAT_PROPERTY:
- g_value_set_float (value, self->some_float);
- break;
- case SOME_DOUBLE_PROPERTY:
- g_value_set_double (value, self->some_double);
- break;
- case SOME_STRV_PROPERTY:
- g_value_set_boxed (value, self->some_strv);
- break;
- case SOME_BOXED_STRUCT_PROPERTY:
- g_value_set_boxed (value, self->some_boxed_struct);
- break;
- case SOME_BOXED_GLIST_PROPERTY:
- g_value_set_boxed (value, self->some_boxed_glist);
- break;
- case SOME_VARIANT_PROPERTY:
- g_value_set_variant (value, self->some_variant);
- break;
- case SOME_OBJECT_PROPERTY:
- g_value_set_object (value, self->some_object);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
- }
- static void
- gi_marshalling_tests_properties_object_set_property (GObject *object,
- guint property_id, const GValue *value, GParamSpec *pspec)
- {
- GIMarshallingTestsPropertiesObject *self;
- self = GI_MARSHALLING_TESTS_PROPERTIES_OBJECT (object);
- switch (property_id)
- {
- case SOME_BOOLEAN_PROPERTY:
- self->some_boolean = g_value_get_boolean (value);
- break;
- case SOME_CHAR_PROPERTY:
- self->some_char = g_value_get_schar (value);
- break;
- case SOME_UCHAR_PROPERTY:
- self->some_uchar = g_value_get_uchar (value);
- break;
- case SOME_INT_PROPERTY:
- self->some_int = g_value_get_int (value);
- break;
- case SOME_UINT_PROPERTY:
- self->some_uint = g_value_get_uint (value);
- break;
- case SOME_LONG_PROPERTY:
- self->some_long = g_value_get_long (value);
- break;
- case SOME_ULONG_PROPERTY:
- self->some_ulong = g_value_get_ulong (value);
- break;
- case SOME_INT64_PROPERTY:
- self->some_int64 = g_value_get_int64 (value);
- break;
- case SOME_UINT64_PROPERTY:
- self->some_uint64 = g_value_get_uint64 (value);
- break;
- case SOME_FLOAT_PROPERTY:
- self->some_float = g_value_get_float (value);
- break;
- case SOME_DOUBLE_PROPERTY:
- self->some_double = g_value_get_double (value);
- break;
- case SOME_STRV_PROPERTY:
- g_strfreev (self->some_strv);
- self->some_strv = g_strdupv (g_value_get_boxed (value));
- break;
- case SOME_BOXED_STRUCT_PROPERTY:
- gi_marshalling_tests_boxed_struct_free (self->some_boxed_struct);
- self->some_boxed_struct = gi_marshalling_tests_boxed_struct_copy (g_value_get_boxed (value));
- break;
- case SOME_BOXED_GLIST_PROPERTY:
- g_list_free (self->some_boxed_glist);
- self->some_boxed_glist = g_list_copy (g_value_get_boxed (value));
- break;
- case SOME_VARIANT_PROPERTY:
- if (self->some_variant != NULL)
- g_variant_unref (self->some_variant);
- self->some_variant = g_value_get_variant (value);
- if (self->some_variant != NULL)
- g_variant_ref (self->some_variant);
- break;
- case SOME_OBJECT_PROPERTY:
- if (self->some_object != NULL)
- g_object_unref (self->some_object);
- self->some_object = g_value_dup_object (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
- }
- static void gi_marshalling_tests_properties_object_class_init (GIMarshallingTestsPropertiesObjectClass *klass)
- {
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = gi_marshalling_tests_properties_object_finalize;
- object_class->get_property = gi_marshalling_tests_properties_object_get_property;
- object_class->set_property = gi_marshalling_tests_properties_object_set_property;
- g_object_class_install_property (object_class, SOME_BOOLEAN_PROPERTY,
- g_param_spec_boolean ("some-boolean",
- "some-boolean",
- "some-boolean",
- FALSE,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_CHAR_PROPERTY,
- g_param_spec_char ("some-char",
- "some-char",
- "some-char", G_MININT8,
- G_MAXINT8, 0,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_UCHAR_PROPERTY,
- g_param_spec_uchar ("some-uchar",
- "some-uchar",
- "some-uchar", 0,
- G_MAXUINT8, 0,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_INT_PROPERTY,
- g_param_spec_int ("some-int", "some-int",
- "some-int", G_MININT,
- G_MAXINT, 0,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_UINT_PROPERTY,
- g_param_spec_uint ("some-uint",
- "some-uint",
- "some-uint", 0,
- G_MAXUINT, 0,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_LONG_PROPERTY,
- g_param_spec_long ("some-long",
- "some-long",
- "some-long", G_MINLONG,
- G_MAXLONG, 0,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_ULONG_PROPERTY,
- g_param_spec_ulong ("some-ulong",
- "some-ulong",
- "some-ulong", 0,
- G_MAXULONG, 0,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_INT64_PROPERTY,
- g_param_spec_int64 ("some-int64",
- "some-int64",
- "some-int64",
- G_MININT64, G_MAXINT64,
- 0, G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_UINT64_PROPERTY,
- g_param_spec_uint64 ("some-uint64",
- "some-uint64",
- "some-uint64", 0,
- G_MAXUINT64, 0,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_FLOAT_PROPERTY,
- g_param_spec_float ("some-float",
- "some-float",
- "some-float",
- -1 * G_MAXFLOAT,
- G_MAXFLOAT, 0,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_DOUBLE_PROPERTY,
- g_param_spec_double ("some-double",
- "some-double",
- "some-double",
- -1 * G_MAXDOUBLE,
- G_MAXDOUBLE, 0,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_STRV_PROPERTY,
- g_param_spec_boxed ("some-strv",
- "some-strv",
- "some-strv",
- G_TYPE_STRV,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_BOXED_STRUCT_PROPERTY,
- g_param_spec_boxed ("some-boxed-struct",
- "some-boxed-struct",
- "some-boxed-struct",
- gi_marshalling_tests_boxed_struct_get_type
- (), G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- /**
- * GIMarshallingTestsPropertiesObject:some-boxed-glist: (type GLib.List(gint)) (transfer none):
- */
- g_object_class_install_property (object_class, SOME_BOXED_GLIST_PROPERTY,
- g_param_spec_boxed ("some-boxed-glist",
- "some-boxed-glist",
- "some-boxed-glist",
- gi_marshalling_tests_boxed_glist_get_type
- (), G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_VARIANT_PROPERTY,
- g_param_spec_variant ("some-variant",
- "some-variant",
- "some-variant",
- G_VARIANT_TYPE_ANY,
- NULL,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class, SOME_OBJECT_PROPERTY,
- g_param_spec_object ("some-object",
- "some-object",
- "some-object",
- G_TYPE_OBJECT,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
- }
- GIMarshallingTestsPropertiesObject *
- gi_marshalling_tests_properties_object_new (void)
- {
- return g_object_new (GI_MARSHALLING_TESTS_TYPE_PROPERTIES_OBJECT, NULL);
- }
|