ni: fix bug when executing a callback to Nit on an extern receiver
authorAlexis Laferrière <alexis.laf@xymus.net>
Tue, 22 Jan 2013 00:20:46 +0000 (19:20 -0500)
committerAlexis Laferrière <alexis.laf@xymus.net>
Sat, 23 Feb 2013 14:56:13 +0000 (09:56 -0500)
A missing "not" was causing this bug. Only boxed types should be
prepared before a callback to Nit, not tagged types.

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

src/native_interface/frontier.nit
tests/sav/test_ffi_c_callback_extern_receiver.sav [new file with mode: 0644]
tests/test_ffi_c_callback_extern_receiver.nit [new file with mode: 0644]

index b49782d..ff6ca78 100644 (file)
@@ -36,7 +36,7 @@ abstract class NiVariable
        fun needs_preparation : Bool
        do
                return ni_type.local_class.primitive_info == null or
-                       ni_type.local_class.primitive_info.tagged or
+                       not ni_type.local_class.primitive_info.tagged or
                        ni_type.is_nullable
        end
 
diff --git a/tests/sav/test_ffi_c_callback_extern_receiver.sav b/tests/sav/test_ffi_c_callback_extern_receiver.sav
new file mode 100644 (file)
index 0000000..41fbf43
--- /dev/null
@@ -0,0 +1,4000 @@
+0
+asdf
+1
+asdf
+2
+asdf
+3
+asdf
+4
+asdf
+5
+asdf
+6
+asdf
+7
+asdf
+8
+asdf
+9
+asdf
+10
+asdf
+11
+asdf
+12
+asdf
+13
+asdf
+14
+asdf
+15
+asdf
+16
+asdf
+17
+asdf
+18
+asdf
+19
+asdf
+20
+asdf
+21
+asdf
+22
+asdf
+23
+asdf
+24
+asdf
+25
+asdf
+26
+asdf
+27
+asdf
+28
+asdf
+29
+asdf
+30
+asdf
+31
+asdf
+32
+asdf
+33
+asdf
+34
+asdf
+35
+asdf
+36
+asdf
+37
+asdf
+38
+asdf
+39
+asdf
+40
+asdf
+41
+asdf
+42
+asdf
+43
+asdf
+44
+asdf
+45
+asdf
+46
+asdf
+47
+asdf
+48
+asdf
+49
+asdf
+50
+asdf
+51
+asdf
+52
+asdf
+53
+asdf
+54
+asdf
+55
+asdf
+56
+asdf
+57
+asdf
+58
+asdf
+59
+asdf
+60
+asdf
+61
+asdf
+62
+asdf
+63
+asdf
+64
+asdf
+65
+asdf
+66
+asdf
+67
+asdf
+68
+asdf
+69
+asdf
+70
+asdf
+71
+asdf
+72
+asdf
+73
+asdf
+74
+asdf
+75
+asdf
+76
+asdf
+77
+asdf
+78
+asdf
+79
+asdf
+80
+asdf
+81
+asdf
+82
+asdf
+83
+asdf
+84
+asdf
+85
+asdf
+86
+asdf
+87
+asdf
+88
+asdf
+89
+asdf
+90
+asdf
+91
+asdf
+92
+asdf
+93
+asdf
+94
+asdf
+95
+asdf
+96
+asdf
+97
+asdf
+98
+asdf
+99
+asdf
+100
+asdf
+101
+asdf
+102
+asdf
+103
+asdf
+104
+asdf
+105
+asdf
+106
+asdf
+107
+asdf
+108
+asdf
+109
+asdf
+110
+asdf
+111
+asdf
+112
+asdf
+113
+asdf
+114
+asdf
+115
+asdf
+116
+asdf
+117
+asdf
+118
+asdf
+119
+asdf
+120
+asdf
+121
+asdf
+122
+asdf
+123
+asdf
+124
+asdf
+125
+asdf
+126
+asdf
+127
+asdf
+128
+asdf
+129
+asdf
+130
+asdf
+131
+asdf
+132
+asdf
+133
+asdf
+134
+asdf
+135
+asdf
+136
+asdf
+137
+asdf
+138
+asdf
+139
+asdf
+140
+asdf
+141
+asdf
+142
+asdf
+143
+asdf
+144
+asdf
+145
+asdf
+146
+asdf
+147
+asdf
+148
+asdf
+149
+asdf
+150
+asdf
+151
+asdf
+152
+asdf
+153
+asdf
+154
+asdf
+155
+asdf
+156
+asdf
+157
+asdf
+158
+asdf
+159
+asdf
+160
+asdf
+161
+asdf
+162
+asdf
+163
+asdf
+164
+asdf
+165
+asdf
+166
+asdf
+167
+asdf
+168
+asdf
+169
+asdf
+170
+asdf
+171
+asdf
+172
+asdf
+173
+asdf
+174
+asdf
+175
+asdf
+176
+asdf
+177
+asdf
+178
+asdf
+179
+asdf
+180
+asdf
+181
+asdf
+182
+asdf
+183
+asdf
+184
+asdf
+185
+asdf
+186
+asdf
+187
+asdf
+188
+asdf
+189
+asdf
+190
+asdf
+191
+asdf
+192
+asdf
+193
+asdf
+194
+asdf
+195
+asdf
+196
+asdf
+197
+asdf
+198
+asdf
+199
+asdf
+200
+asdf
+201
+asdf
+202
+asdf
+203
+asdf
+204
+asdf
+205
+asdf
+206
+asdf
+207
+asdf
+208
+asdf
+209
+asdf
+210
+asdf
+211
+asdf
+212
+asdf
+213
+asdf
+214
+asdf
+215
+asdf
+216
+asdf
+217
+asdf
+218
+asdf
+219
+asdf
+220
+asdf
+221
+asdf
+222
+asdf
+223
+asdf
+224
+asdf
+225
+asdf
+226
+asdf
+227
+asdf
+228
+asdf
+229
+asdf
+230
+asdf
+231
+asdf
+232
+asdf
+233
+asdf
+234
+asdf
+235
+asdf
+236
+asdf
+237
+asdf
+238
+asdf
+239
+asdf
+240
+asdf
+241
+asdf
+242
+asdf
+243
+asdf
+244
+asdf
+245
+asdf
+246
+asdf
+247
+asdf
+248
+asdf
+249
+asdf
+250
+asdf
+251
+asdf
+252
+asdf
+253
+asdf
+254
+asdf
+255
+asdf
+256
+asdf
+257
+asdf
+258
+asdf
+259
+asdf
+260
+asdf
+261
+asdf
+262
+asdf
+263
+asdf
+264
+asdf
+265
+asdf
+266
+asdf
+267
+asdf
+268
+asdf
+269
+asdf
+270
+asdf
+271
+asdf
+272
+asdf
+273
+asdf
+274
+asdf
+275
+asdf
+276
+asdf
+277
+asdf
+278
+asdf
+279
+asdf
+280
+asdf
+281
+asdf
+282
+asdf
+283
+asdf
+284
+asdf
+285
+asdf
+286
+asdf
+287
+asdf
+288
+asdf
+289
+asdf
+290
+asdf
+291
+asdf
+292
+asdf
+293
+asdf
+294
+asdf
+295
+asdf
+296
+asdf
+297
+asdf
+298
+asdf
+299
+asdf
+300
+asdf
+301
+asdf
+302
+asdf
+303
+asdf
+304
+asdf
+305
+asdf
+306
+asdf
+307
+asdf
+308
+asdf
+309
+asdf
+310
+asdf
+311
+asdf
+312
+asdf
+313
+asdf
+314
+asdf
+315
+asdf
+316
+asdf
+317
+asdf
+318
+asdf
+319
+asdf
+320
+asdf
+321
+asdf
+322
+asdf
+323
+asdf
+324
+asdf
+325
+asdf
+326
+asdf
+327
+asdf
+328
+asdf
+329
+asdf
+330
+asdf
+331
+asdf
+332
+asdf
+333
+asdf
+334
+asdf
+335
+asdf
+336
+asdf
+337
+asdf
+338
+asdf
+339
+asdf
+340
+asdf
+341
+asdf
+342
+asdf
+343
+asdf
+344
+asdf
+345
+asdf
+346
+asdf
+347
+asdf
+348
+asdf
+349
+asdf
+350
+asdf
+351
+asdf
+352
+asdf
+353
+asdf
+354
+asdf
+355
+asdf
+356
+asdf
+357
+asdf
+358
+asdf
+359
+asdf
+360
+asdf
+361
+asdf
+362
+asdf
+363
+asdf
+364
+asdf
+365
+asdf
+366
+asdf
+367
+asdf
+368
+asdf
+369
+asdf
+370
+asdf
+371
+asdf
+372
+asdf
+373
+asdf
+374
+asdf
+375
+asdf
+376
+asdf
+377
+asdf
+378
+asdf
+379
+asdf
+380
+asdf
+381
+asdf
+382
+asdf
+383
+asdf
+384
+asdf
+385
+asdf
+386
+asdf
+387
+asdf
+388
+asdf
+389
+asdf
+390
+asdf
+391
+asdf
+392
+asdf
+393
+asdf
+394
+asdf
+395
+asdf
+396
+asdf
+397
+asdf
+398
+asdf
+399
+asdf
+400
+asdf
+401
+asdf
+402
+asdf
+403
+asdf
+404
+asdf
+405
+asdf
+406
+asdf
+407
+asdf
+408
+asdf
+409
+asdf
+410
+asdf
+411
+asdf
+412
+asdf
+413
+asdf
+414
+asdf
+415
+asdf
+416
+asdf
+417
+asdf
+418
+asdf
+419
+asdf
+420
+asdf
+421
+asdf
+422
+asdf
+423
+asdf
+424
+asdf
+425
+asdf
+426
+asdf
+427
+asdf
+428
+asdf
+429
+asdf
+430
+asdf
+431
+asdf
+432
+asdf
+433
+asdf
+434
+asdf
+435
+asdf
+436
+asdf
+437
+asdf
+438
+asdf
+439
+asdf
+440
+asdf
+441
+asdf
+442
+asdf
+443
+asdf
+444
+asdf
+445
+asdf
+446
+asdf
+447
+asdf
+448
+asdf
+449
+asdf
+450
+asdf
+451
+asdf
+452
+asdf
+453
+asdf
+454
+asdf
+455
+asdf
+456
+asdf
+457
+asdf
+458
+asdf
+459
+asdf
+460
+asdf
+461
+asdf
+462
+asdf
+463
+asdf
+464
+asdf
+465
+asdf
+466
+asdf
+467
+asdf
+468
+asdf
+469
+asdf
+470
+asdf
+471
+asdf
+472
+asdf
+473
+asdf
+474
+asdf
+475
+asdf
+476
+asdf
+477
+asdf
+478
+asdf
+479
+asdf
+480
+asdf
+481
+asdf
+482
+asdf
+483
+asdf
+484
+asdf
+485
+asdf
+486
+asdf
+487
+asdf
+488
+asdf
+489
+asdf
+490
+asdf
+491
+asdf
+492
+asdf
+493
+asdf
+494
+asdf
+495
+asdf
+496
+asdf
+497
+asdf
+498
+asdf
+499
+asdf
+500
+asdf
+501
+asdf
+502
+asdf
+503
+asdf
+504
+asdf
+505
+asdf
+506
+asdf
+507
+asdf
+508
+asdf
+509
+asdf
+510
+asdf
+511
+asdf
+512
+asdf
+513
+asdf
+514
+asdf
+515
+asdf
+516
+asdf
+517
+asdf
+518
+asdf
+519
+asdf
+520
+asdf
+521
+asdf
+522
+asdf
+523
+asdf
+524
+asdf
+525
+asdf
+526
+asdf
+527
+asdf
+528
+asdf
+529
+asdf
+530
+asdf
+531
+asdf
+532
+asdf
+533
+asdf
+534
+asdf
+535
+asdf
+536
+asdf
+537
+asdf
+538
+asdf
+539
+asdf
+540
+asdf
+541
+asdf
+542
+asdf
+543
+asdf
+544
+asdf
+545
+asdf
+546
+asdf
+547
+asdf
+548
+asdf
+549
+asdf
+550
+asdf
+551
+asdf
+552
+asdf
+553
+asdf
+554
+asdf
+555
+asdf
+556
+asdf
+557
+asdf
+558
+asdf
+559
+asdf
+560
+asdf
+561
+asdf
+562
+asdf
+563
+asdf
+564
+asdf
+565
+asdf
+566
+asdf
+567
+asdf
+568
+asdf
+569
+asdf
+570
+asdf
+571
+asdf
+572
+asdf
+573
+asdf
+574
+asdf
+575
+asdf
+576
+asdf
+577
+asdf
+578
+asdf
+579
+asdf
+580
+asdf
+581
+asdf
+582
+asdf
+583
+asdf
+584
+asdf
+585
+asdf
+586
+asdf
+587
+asdf
+588
+asdf
+589
+asdf
+590
+asdf
+591
+asdf
+592
+asdf
+593
+asdf
+594
+asdf
+595
+asdf
+596
+asdf
+597
+asdf
+598
+asdf
+599
+asdf
+600
+asdf
+601
+asdf
+602
+asdf
+603
+asdf
+604
+asdf
+605
+asdf
+606
+asdf
+607
+asdf
+608
+asdf
+609
+asdf
+610
+asdf
+611
+asdf
+612
+asdf
+613
+asdf
+614
+asdf
+615
+asdf
+616
+asdf
+617
+asdf
+618
+asdf
+619
+asdf
+620
+asdf
+621
+asdf
+622
+asdf
+623
+asdf
+624
+asdf
+625
+asdf
+626
+asdf
+627
+asdf
+628
+asdf
+629
+asdf
+630
+asdf
+631
+asdf
+632
+asdf
+633
+asdf
+634
+asdf
+635
+asdf
+636
+asdf
+637
+asdf
+638
+asdf
+639
+asdf
+640
+asdf
+641
+asdf
+642
+asdf
+643
+asdf
+644
+asdf
+645
+asdf
+646
+asdf
+647
+asdf
+648
+asdf
+649
+asdf
+650
+asdf
+651
+asdf
+652
+asdf
+653
+asdf
+654
+asdf
+655
+asdf
+656
+asdf
+657
+asdf
+658
+asdf
+659
+asdf
+660
+asdf
+661
+asdf
+662
+asdf
+663
+asdf
+664
+asdf
+665
+asdf
+666
+asdf
+667
+asdf
+668
+asdf
+669
+asdf
+670
+asdf
+671
+asdf
+672
+asdf
+673
+asdf
+674
+asdf
+675
+asdf
+676
+asdf
+677
+asdf
+678
+asdf
+679
+asdf
+680
+asdf
+681
+asdf
+682
+asdf
+683
+asdf
+684
+asdf
+685
+asdf
+686
+asdf
+687
+asdf
+688
+asdf
+689
+asdf
+690
+asdf
+691
+asdf
+692
+asdf
+693
+asdf
+694
+asdf
+695
+asdf
+696
+asdf
+697
+asdf
+698
+asdf
+699
+asdf
+700
+asdf
+701
+asdf
+702
+asdf
+703
+asdf
+704
+asdf
+705
+asdf
+706
+asdf
+707
+asdf
+708
+asdf
+709
+asdf
+710
+asdf
+711
+asdf
+712
+asdf
+713
+asdf
+714
+asdf
+715
+asdf
+716
+asdf
+717
+asdf
+718
+asdf
+719
+asdf
+720
+asdf
+721
+asdf
+722
+asdf
+723
+asdf
+724
+asdf
+725
+asdf
+726
+asdf
+727
+asdf
+728
+asdf
+729
+asdf
+730
+asdf
+731
+asdf
+732
+asdf
+733
+asdf
+734
+asdf
+735
+asdf
+736
+asdf
+737
+asdf
+738
+asdf
+739
+asdf
+740
+asdf
+741
+asdf
+742
+asdf
+743
+asdf
+744
+asdf
+745
+asdf
+746
+asdf
+747
+asdf
+748
+asdf
+749
+asdf
+750
+asdf
+751
+asdf
+752
+asdf
+753
+asdf
+754
+asdf
+755
+asdf
+756
+asdf
+757
+asdf
+758
+asdf
+759
+asdf
+760
+asdf
+761
+asdf
+762
+asdf
+763
+asdf
+764
+asdf
+765
+asdf
+766
+asdf
+767
+asdf
+768
+asdf
+769
+asdf
+770
+asdf
+771
+asdf
+772
+asdf
+773
+asdf
+774
+asdf
+775
+asdf
+776
+asdf
+777
+asdf
+778
+asdf
+779
+asdf
+780
+asdf
+781
+asdf
+782
+asdf
+783
+asdf
+784
+asdf
+785
+asdf
+786
+asdf
+787
+asdf
+788
+asdf
+789
+asdf
+790
+asdf
+791
+asdf
+792
+asdf
+793
+asdf
+794
+asdf
+795
+asdf
+796
+asdf
+797
+asdf
+798
+asdf
+799
+asdf
+800
+asdf
+801
+asdf
+802
+asdf
+803
+asdf
+804
+asdf
+805
+asdf
+806
+asdf
+807
+asdf
+808
+asdf
+809
+asdf
+810
+asdf
+811
+asdf
+812
+asdf
+813
+asdf
+814
+asdf
+815
+asdf
+816
+asdf
+817
+asdf
+818
+asdf
+819
+asdf
+820
+asdf
+821
+asdf
+822
+asdf
+823
+asdf
+824
+asdf
+825
+asdf
+826
+asdf
+827
+asdf
+828
+asdf
+829
+asdf
+830
+asdf
+831
+asdf
+832
+asdf
+833
+asdf
+834
+asdf
+835
+asdf
+836
+asdf
+837
+asdf
+838
+asdf
+839
+asdf
+840
+asdf
+841
+asdf
+842
+asdf
+843
+asdf
+844
+asdf
+845
+asdf
+846
+asdf
+847
+asdf
+848
+asdf
+849
+asdf
+850
+asdf
+851
+asdf
+852
+asdf
+853
+asdf
+854
+asdf
+855
+asdf
+856
+asdf
+857
+asdf
+858
+asdf
+859
+asdf
+860
+asdf
+861
+asdf
+862
+asdf
+863
+asdf
+864
+asdf
+865
+asdf
+866
+asdf
+867
+asdf
+868
+asdf
+869
+asdf
+870
+asdf
+871
+asdf
+872
+asdf
+873
+asdf
+874
+asdf
+875
+asdf
+876
+asdf
+877
+asdf
+878
+asdf
+879
+asdf
+880
+asdf
+881
+asdf
+882
+asdf
+883
+asdf
+884
+asdf
+885
+asdf
+886
+asdf
+887
+asdf
+888
+asdf
+889
+asdf
+890
+asdf
+891
+asdf
+892
+asdf
+893
+asdf
+894
+asdf
+895
+asdf
+896
+asdf
+897
+asdf
+898
+asdf
+899
+asdf
+900
+asdf
+901
+asdf
+902
+asdf
+903
+asdf
+904
+asdf
+905
+asdf
+906
+asdf
+907
+asdf
+908
+asdf
+909
+asdf
+910
+asdf
+911
+asdf
+912
+asdf
+913
+asdf
+914
+asdf
+915
+asdf
+916
+asdf
+917
+asdf
+918
+asdf
+919
+asdf
+920
+asdf
+921
+asdf
+922
+asdf
+923
+asdf
+924
+asdf
+925
+asdf
+926
+asdf
+927
+asdf
+928
+asdf
+929
+asdf
+930
+asdf
+931
+asdf
+932
+asdf
+933
+asdf
+934
+asdf
+935
+asdf
+936
+asdf
+937
+asdf
+938
+asdf
+939
+asdf
+940
+asdf
+941
+asdf
+942
+asdf
+943
+asdf
+944
+asdf
+945
+asdf
+946
+asdf
+947
+asdf
+948
+asdf
+949
+asdf
+950
+asdf
+951
+asdf
+952
+asdf
+953
+asdf
+954
+asdf
+955
+asdf
+956
+asdf
+957
+asdf
+958
+asdf
+959
+asdf
+960
+asdf
+961
+asdf
+962
+asdf
+963
+asdf
+964
+asdf
+965
+asdf
+966
+asdf
+967
+asdf
+968
+asdf
+969
+asdf
+970
+asdf
+971
+asdf
+972
+asdf
+973
+asdf
+974
+asdf
+975
+asdf
+976
+asdf
+977
+asdf
+978
+asdf
+979
+asdf
+980
+asdf
+981
+asdf
+982
+asdf
+983
+asdf
+984
+asdf
+985
+asdf
+986
+asdf
+987
+asdf
+988
+asdf
+989
+asdf
+990
+asdf
+991
+asdf
+992
+asdf
+993
+asdf
+994
+asdf
+995
+asdf
+996
+asdf
+997
+asdf
+998
+asdf
+999
+asdf
+1000
+asdf
+1001
+asdf
+1002
+asdf
+1003
+asdf
+1004
+asdf
+1005
+asdf
+1006
+asdf
+1007
+asdf
+1008
+asdf
+1009
+asdf
+1010
+asdf
+1011
+asdf
+1012
+asdf
+1013
+asdf
+1014
+asdf
+1015
+asdf
+1016
+asdf
+1017
+asdf
+1018
+asdf
+1019
+asdf
+1020
+asdf
+1021
+asdf
+1022
+asdf
+1023
+asdf
+1024
+asdf
+1025
+asdf
+1026
+asdf
+1027
+asdf
+1028
+asdf
+1029
+asdf
+1030
+asdf
+1031
+asdf
+1032
+asdf
+1033
+asdf
+1034
+asdf
+1035
+asdf
+1036
+asdf
+1037
+asdf
+1038
+asdf
+1039
+asdf
+1040
+asdf
+1041
+asdf
+1042
+asdf
+1043
+asdf
+1044
+asdf
+1045
+asdf
+1046
+asdf
+1047
+asdf
+1048
+asdf
+1049
+asdf
+1050
+asdf
+1051
+asdf
+1052
+asdf
+1053
+asdf
+1054
+asdf
+1055
+asdf
+1056
+asdf
+1057
+asdf
+1058
+asdf
+1059
+asdf
+1060
+asdf
+1061
+asdf
+1062
+asdf
+1063
+asdf
+1064
+asdf
+1065
+asdf
+1066
+asdf
+1067
+asdf
+1068
+asdf
+1069
+asdf
+1070
+asdf
+1071
+asdf
+1072
+asdf
+1073
+asdf
+1074
+asdf
+1075
+asdf
+1076
+asdf
+1077
+asdf
+1078
+asdf
+1079
+asdf
+1080
+asdf
+1081
+asdf
+1082
+asdf
+1083
+asdf
+1084
+asdf
+1085
+asdf
+1086
+asdf
+1087
+asdf
+1088
+asdf
+1089
+asdf
+1090
+asdf
+1091
+asdf
+1092
+asdf
+1093
+asdf
+1094
+asdf
+1095
+asdf
+1096
+asdf
+1097
+asdf
+1098
+asdf
+1099
+asdf
+1100
+asdf
+1101
+asdf
+1102
+asdf
+1103
+asdf
+1104
+asdf
+1105
+asdf
+1106
+asdf
+1107
+asdf
+1108
+asdf
+1109
+asdf
+1110
+asdf
+1111
+asdf
+1112
+asdf
+1113
+asdf
+1114
+asdf
+1115
+asdf
+1116
+asdf
+1117
+asdf
+1118
+asdf
+1119
+asdf
+1120
+asdf
+1121
+asdf
+1122
+asdf
+1123
+asdf
+1124
+asdf
+1125
+asdf
+1126
+asdf
+1127
+asdf
+1128
+asdf
+1129
+asdf
+1130
+asdf
+1131
+asdf
+1132
+asdf
+1133
+asdf
+1134
+asdf
+1135
+asdf
+1136
+asdf
+1137
+asdf
+1138
+asdf
+1139
+asdf
+1140
+asdf
+1141
+asdf
+1142
+asdf
+1143
+asdf
+1144
+asdf
+1145
+asdf
+1146
+asdf
+1147
+asdf
+1148
+asdf
+1149
+asdf
+1150
+asdf
+1151
+asdf
+1152
+asdf
+1153
+asdf
+1154
+asdf
+1155
+asdf
+1156
+asdf
+1157
+asdf
+1158
+asdf
+1159
+asdf
+1160
+asdf
+1161
+asdf
+1162
+asdf
+1163
+asdf
+1164
+asdf
+1165
+asdf
+1166
+asdf
+1167
+asdf
+1168
+asdf
+1169
+asdf
+1170
+asdf
+1171
+asdf
+1172
+asdf
+1173
+asdf
+1174
+asdf
+1175
+asdf
+1176
+asdf
+1177
+asdf
+1178
+asdf
+1179
+asdf
+1180
+asdf
+1181
+asdf
+1182
+asdf
+1183
+asdf
+1184
+asdf
+1185
+asdf
+1186
+asdf
+1187
+asdf
+1188
+asdf
+1189
+asdf
+1190
+asdf
+1191
+asdf
+1192
+asdf
+1193
+asdf
+1194
+asdf
+1195
+asdf
+1196
+asdf
+1197
+asdf
+1198
+asdf
+1199
+asdf
+1200
+asdf
+1201
+asdf
+1202
+asdf
+1203
+asdf
+1204
+asdf
+1205
+asdf
+1206
+asdf
+1207
+asdf
+1208
+asdf
+1209
+asdf
+1210
+asdf
+1211
+asdf
+1212
+asdf
+1213
+asdf
+1214
+asdf
+1215
+asdf
+1216
+asdf
+1217
+asdf
+1218
+asdf
+1219
+asdf
+1220
+asdf
+1221
+asdf
+1222
+asdf
+1223
+asdf
+1224
+asdf
+1225
+asdf
+1226
+asdf
+1227
+asdf
+1228
+asdf
+1229
+asdf
+1230
+asdf
+1231
+asdf
+1232
+asdf
+1233
+asdf
+1234
+asdf
+1235
+asdf
+1236
+asdf
+1237
+asdf
+1238
+asdf
+1239
+asdf
+1240
+asdf
+1241
+asdf
+1242
+asdf
+1243
+asdf
+1244
+asdf
+1245
+asdf
+1246
+asdf
+1247
+asdf
+1248
+asdf
+1249
+asdf
+1250
+asdf
+1251
+asdf
+1252
+asdf
+1253
+asdf
+1254
+asdf
+1255
+asdf
+1256
+asdf
+1257
+asdf
+1258
+asdf
+1259
+asdf
+1260
+asdf
+1261
+asdf
+1262
+asdf
+1263
+asdf
+1264
+asdf
+1265
+asdf
+1266
+asdf
+1267
+asdf
+1268
+asdf
+1269
+asdf
+1270
+asdf
+1271
+asdf
+1272
+asdf
+1273
+asdf
+1274
+asdf
+1275
+asdf
+1276
+asdf
+1277
+asdf
+1278
+asdf
+1279
+asdf
+1280
+asdf
+1281
+asdf
+1282
+asdf
+1283
+asdf
+1284
+asdf
+1285
+asdf
+1286
+asdf
+1287
+asdf
+1288
+asdf
+1289
+asdf
+1290
+asdf
+1291
+asdf
+1292
+asdf
+1293
+asdf
+1294
+asdf
+1295
+asdf
+1296
+asdf
+1297
+asdf
+1298
+asdf
+1299
+asdf
+1300
+asdf
+1301
+asdf
+1302
+asdf
+1303
+asdf
+1304
+asdf
+1305
+asdf
+1306
+asdf
+1307
+asdf
+1308
+asdf
+1309
+asdf
+1310
+asdf
+1311
+asdf
+1312
+asdf
+1313
+asdf
+1314
+asdf
+1315
+asdf
+1316
+asdf
+1317
+asdf
+1318
+asdf
+1319
+asdf
+1320
+asdf
+1321
+asdf
+1322
+asdf
+1323
+asdf
+1324
+asdf
+1325
+asdf
+1326
+asdf
+1327
+asdf
+1328
+asdf
+1329
+asdf
+1330
+asdf
+1331
+asdf
+1332
+asdf
+1333
+asdf
+1334
+asdf
+1335
+asdf
+1336
+asdf
+1337
+asdf
+1338
+asdf
+1339
+asdf
+1340
+asdf
+1341
+asdf
+1342
+asdf
+1343
+asdf
+1344
+asdf
+1345
+asdf
+1346
+asdf
+1347
+asdf
+1348
+asdf
+1349
+asdf
+1350
+asdf
+1351
+asdf
+1352
+asdf
+1353
+asdf
+1354
+asdf
+1355
+asdf
+1356
+asdf
+1357
+asdf
+1358
+asdf
+1359
+asdf
+1360
+asdf
+1361
+asdf
+1362
+asdf
+1363
+asdf
+1364
+asdf
+1365
+asdf
+1366
+asdf
+1367
+asdf
+1368
+asdf
+1369
+asdf
+1370
+asdf
+1371
+asdf
+1372
+asdf
+1373
+asdf
+1374
+asdf
+1375
+asdf
+1376
+asdf
+1377
+asdf
+1378
+asdf
+1379
+asdf
+1380
+asdf
+1381
+asdf
+1382
+asdf
+1383
+asdf
+1384
+asdf
+1385
+asdf
+1386
+asdf
+1387
+asdf
+1388
+asdf
+1389
+asdf
+1390
+asdf
+1391
+asdf
+1392
+asdf
+1393
+asdf
+1394
+asdf
+1395
+asdf
+1396
+asdf
+1397
+asdf
+1398
+asdf
+1399
+asdf
+1400
+asdf
+1401
+asdf
+1402
+asdf
+1403
+asdf
+1404
+asdf
+1405
+asdf
+1406
+asdf
+1407
+asdf
+1408
+asdf
+1409
+asdf
+1410
+asdf
+1411
+asdf
+1412
+asdf
+1413
+asdf
+1414
+asdf
+1415
+asdf
+1416
+asdf
+1417
+asdf
+1418
+asdf
+1419
+asdf
+1420
+asdf
+1421
+asdf
+1422
+asdf
+1423
+asdf
+1424
+asdf
+1425
+asdf
+1426
+asdf
+1427
+asdf
+1428
+asdf
+1429
+asdf
+1430
+asdf
+1431
+asdf
+1432
+asdf
+1433
+asdf
+1434
+asdf
+1435
+asdf
+1436
+asdf
+1437
+asdf
+1438
+asdf
+1439
+asdf
+1440
+asdf
+1441
+asdf
+1442
+asdf
+1443
+asdf
+1444
+asdf
+1445
+asdf
+1446
+asdf
+1447
+asdf
+1448
+asdf
+1449
+asdf
+1450
+asdf
+1451
+asdf
+1452
+asdf
+1453
+asdf
+1454
+asdf
+1455
+asdf
+1456
+asdf
+1457
+asdf
+1458
+asdf
+1459
+asdf
+1460
+asdf
+1461
+asdf
+1462
+asdf
+1463
+asdf
+1464
+asdf
+1465
+asdf
+1466
+asdf
+1467
+asdf
+1468
+asdf
+1469
+asdf
+1470
+asdf
+1471
+asdf
+1472
+asdf
+1473
+asdf
+1474
+asdf
+1475
+asdf
+1476
+asdf
+1477
+asdf
+1478
+asdf
+1479
+asdf
+1480
+asdf
+1481
+asdf
+1482
+asdf
+1483
+asdf
+1484
+asdf
+1485
+asdf
+1486
+asdf
+1487
+asdf
+1488
+asdf
+1489
+asdf
+1490
+asdf
+1491
+asdf
+1492
+asdf
+1493
+asdf
+1494
+asdf
+1495
+asdf
+1496
+asdf
+1497
+asdf
+1498
+asdf
+1499
+asdf
+1500
+asdf
+1501
+asdf
+1502
+asdf
+1503
+asdf
+1504
+asdf
+1505
+asdf
+1506
+asdf
+1507
+asdf
+1508
+asdf
+1509
+asdf
+1510
+asdf
+1511
+asdf
+1512
+asdf
+1513
+asdf
+1514
+asdf
+1515
+asdf
+1516
+asdf
+1517
+asdf
+1518
+asdf
+1519
+asdf
+1520
+asdf
+1521
+asdf
+1522
+asdf
+1523
+asdf
+1524
+asdf
+1525
+asdf
+1526
+asdf
+1527
+asdf
+1528
+asdf
+1529
+asdf
+1530
+asdf
+1531
+asdf
+1532
+asdf
+1533
+asdf
+1534
+asdf
+1535
+asdf
+1536
+asdf
+1537
+asdf
+1538
+asdf
+1539
+asdf
+1540
+asdf
+1541
+asdf
+1542
+asdf
+1543
+asdf
+1544
+asdf
+1545
+asdf
+1546
+asdf
+1547
+asdf
+1548
+asdf
+1549
+asdf
+1550
+asdf
+1551
+asdf
+1552
+asdf
+1553
+asdf
+1554
+asdf
+1555
+asdf
+1556
+asdf
+1557
+asdf
+1558
+asdf
+1559
+asdf
+1560
+asdf
+1561
+asdf
+1562
+asdf
+1563
+asdf
+1564
+asdf
+1565
+asdf
+1566
+asdf
+1567
+asdf
+1568
+asdf
+1569
+asdf
+1570
+asdf
+1571
+asdf
+1572
+asdf
+1573
+asdf
+1574
+asdf
+1575
+asdf
+1576
+asdf
+1577
+asdf
+1578
+asdf
+1579
+asdf
+1580
+asdf
+1581
+asdf
+1582
+asdf
+1583
+asdf
+1584
+asdf
+1585
+asdf
+1586
+asdf
+1587
+asdf
+1588
+asdf
+1589
+asdf
+1590
+asdf
+1591
+asdf
+1592
+asdf
+1593
+asdf
+1594
+asdf
+1595
+asdf
+1596
+asdf
+1597
+asdf
+1598
+asdf
+1599
+asdf
+1600
+asdf
+1601
+asdf
+1602
+asdf
+1603
+asdf
+1604
+asdf
+1605
+asdf
+1606
+asdf
+1607
+asdf
+1608
+asdf
+1609
+asdf
+1610
+asdf
+1611
+asdf
+1612
+asdf
+1613
+asdf
+1614
+asdf
+1615
+asdf
+1616
+asdf
+1617
+asdf
+1618
+asdf
+1619
+asdf
+1620
+asdf
+1621
+asdf
+1622
+asdf
+1623
+asdf
+1624
+asdf
+1625
+asdf
+1626
+asdf
+1627
+asdf
+1628
+asdf
+1629
+asdf
+1630
+asdf
+1631
+asdf
+1632
+asdf
+1633
+asdf
+1634
+asdf
+1635
+asdf
+1636
+asdf
+1637
+asdf
+1638
+asdf
+1639
+asdf
+1640
+asdf
+1641
+asdf
+1642
+asdf
+1643
+asdf
+1644
+asdf
+1645
+asdf
+1646
+asdf
+1647
+asdf
+1648
+asdf
+1649
+asdf
+1650
+asdf
+1651
+asdf
+1652
+asdf
+1653
+asdf
+1654
+asdf
+1655
+asdf
+1656
+asdf
+1657
+asdf
+1658
+asdf
+1659
+asdf
+1660
+asdf
+1661
+asdf
+1662
+asdf
+1663
+asdf
+1664
+asdf
+1665
+asdf
+1666
+asdf
+1667
+asdf
+1668
+asdf
+1669
+asdf
+1670
+asdf
+1671
+asdf
+1672
+asdf
+1673
+asdf
+1674
+asdf
+1675
+asdf
+1676
+asdf
+1677
+asdf
+1678
+asdf
+1679
+asdf
+1680
+asdf
+1681
+asdf
+1682
+asdf
+1683
+asdf
+1684
+asdf
+1685
+asdf
+1686
+asdf
+1687
+asdf
+1688
+asdf
+1689
+asdf
+1690
+asdf
+1691
+asdf
+1692
+asdf
+1693
+asdf
+1694
+asdf
+1695
+asdf
+1696
+asdf
+1697
+asdf
+1698
+asdf
+1699
+asdf
+1700
+asdf
+1701
+asdf
+1702
+asdf
+1703
+asdf
+1704
+asdf
+1705
+asdf
+1706
+asdf
+1707
+asdf
+1708
+asdf
+1709
+asdf
+1710
+asdf
+1711
+asdf
+1712
+asdf
+1713
+asdf
+1714
+asdf
+1715
+asdf
+1716
+asdf
+1717
+asdf
+1718
+asdf
+1719
+asdf
+1720
+asdf
+1721
+asdf
+1722
+asdf
+1723
+asdf
+1724
+asdf
+1725
+asdf
+1726
+asdf
+1727
+asdf
+1728
+asdf
+1729
+asdf
+1730
+asdf
+1731
+asdf
+1732
+asdf
+1733
+asdf
+1734
+asdf
+1735
+asdf
+1736
+asdf
+1737
+asdf
+1738
+asdf
+1739
+asdf
+1740
+asdf
+1741
+asdf
+1742
+asdf
+1743
+asdf
+1744
+asdf
+1745
+asdf
+1746
+asdf
+1747
+asdf
+1748
+asdf
+1749
+asdf
+1750
+asdf
+1751
+asdf
+1752
+asdf
+1753
+asdf
+1754
+asdf
+1755
+asdf
+1756
+asdf
+1757
+asdf
+1758
+asdf
+1759
+asdf
+1760
+asdf
+1761
+asdf
+1762
+asdf
+1763
+asdf
+1764
+asdf
+1765
+asdf
+1766
+asdf
+1767
+asdf
+1768
+asdf
+1769
+asdf
+1770
+asdf
+1771
+asdf
+1772
+asdf
+1773
+asdf
+1774
+asdf
+1775
+asdf
+1776
+asdf
+1777
+asdf
+1778
+asdf
+1779
+asdf
+1780
+asdf
+1781
+asdf
+1782
+asdf
+1783
+asdf
+1784
+asdf
+1785
+asdf
+1786
+asdf
+1787
+asdf
+1788
+asdf
+1789
+asdf
+1790
+asdf
+1791
+asdf
+1792
+asdf
+1793
+asdf
+1794
+asdf
+1795
+asdf
+1796
+asdf
+1797
+asdf
+1798
+asdf
+1799
+asdf
+1800
+asdf
+1801
+asdf
+1802
+asdf
+1803
+asdf
+1804
+asdf
+1805
+asdf
+1806
+asdf
+1807
+asdf
+1808
+asdf
+1809
+asdf
+1810
+asdf
+1811
+asdf
+1812
+asdf
+1813
+asdf
+1814
+asdf
+1815
+asdf
+1816
+asdf
+1817
+asdf
+1818
+asdf
+1819
+asdf
+1820
+asdf
+1821
+asdf
+1822
+asdf
+1823
+asdf
+1824
+asdf
+1825
+asdf
+1826
+asdf
+1827
+asdf
+1828
+asdf
+1829
+asdf
+1830
+asdf
+1831
+asdf
+1832
+asdf
+1833
+asdf
+1834
+asdf
+1835
+asdf
+1836
+asdf
+1837
+asdf
+1838
+asdf
+1839
+asdf
+1840
+asdf
+1841
+asdf
+1842
+asdf
+1843
+asdf
+1844
+asdf
+1845
+asdf
+1846
+asdf
+1847
+asdf
+1848
+asdf
+1849
+asdf
+1850
+asdf
+1851
+asdf
+1852
+asdf
+1853
+asdf
+1854
+asdf
+1855
+asdf
+1856
+asdf
+1857
+asdf
+1858
+asdf
+1859
+asdf
+1860
+asdf
+1861
+asdf
+1862
+asdf
+1863
+asdf
+1864
+asdf
+1865
+asdf
+1866
+asdf
+1867
+asdf
+1868
+asdf
+1869
+asdf
+1870
+asdf
+1871
+asdf
+1872
+asdf
+1873
+asdf
+1874
+asdf
+1875
+asdf
+1876
+asdf
+1877
+asdf
+1878
+asdf
+1879
+asdf
+1880
+asdf
+1881
+asdf
+1882
+asdf
+1883
+asdf
+1884
+asdf
+1885
+asdf
+1886
+asdf
+1887
+asdf
+1888
+asdf
+1889
+asdf
+1890
+asdf
+1891
+asdf
+1892
+asdf
+1893
+asdf
+1894
+asdf
+1895
+asdf
+1896
+asdf
+1897
+asdf
+1898
+asdf
+1899
+asdf
+1900
+asdf
+1901
+asdf
+1902
+asdf
+1903
+asdf
+1904
+asdf
+1905
+asdf
+1906
+asdf
+1907
+asdf
+1908
+asdf
+1909
+asdf
+1910
+asdf
+1911
+asdf
+1912
+asdf
+1913
+asdf
+1914
+asdf
+1915
+asdf
+1916
+asdf
+1917
+asdf
+1918
+asdf
+1919
+asdf
+1920
+asdf
+1921
+asdf
+1922
+asdf
+1923
+asdf
+1924
+asdf
+1925
+asdf
+1926
+asdf
+1927
+asdf
+1928
+asdf
+1929
+asdf
+1930
+asdf
+1931
+asdf
+1932
+asdf
+1933
+asdf
+1934
+asdf
+1935
+asdf
+1936
+asdf
+1937
+asdf
+1938
+asdf
+1939
+asdf
+1940
+asdf
+1941
+asdf
+1942
+asdf
+1943
+asdf
+1944
+asdf
+1945
+asdf
+1946
+asdf
+1947
+asdf
+1948
+asdf
+1949
+asdf
+1950
+asdf
+1951
+asdf
+1952
+asdf
+1953
+asdf
+1954
+asdf
+1955
+asdf
+1956
+asdf
+1957
+asdf
+1958
+asdf
+1959
+asdf
+1960
+asdf
+1961
+asdf
+1962
+asdf
+1963
+asdf
+1964
+asdf
+1965
+asdf
+1966
+asdf
+1967
+asdf
+1968
+asdf
+1969
+asdf
+1970
+asdf
+1971
+asdf
+1972
+asdf
+1973
+asdf
+1974
+asdf
+1975
+asdf
+1976
+asdf
+1977
+asdf
+1978
+asdf
+1979
+asdf
+1980
+asdf
+1981
+asdf
+1982
+asdf
+1983
+asdf
+1984
+asdf
+1985
+asdf
+1986
+asdf
+1987
+asdf
+1988
+asdf
+1989
+asdf
+1990
+asdf
+1991
+asdf
+1992
+asdf
+1993
+asdf
+1994
+asdf
+1995
+asdf
+1996
+asdf
+1997
+asdf
+1998
+asdf
+1999
+asdf
diff --git a/tests/test_ffi_c_callback_extern_receiver.nit b/tests/test_ffi_c_callback_extern_receiver.nit
new file mode 100644 (file)
index 0000000..25d456f
--- /dev/null
@@ -0,0 +1,42 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2013 Jean-Philippe Caissy <jpcaissy@piji.ca>
+# Copyright 2013 Alexis Laferrière <alexis.laf@xymus.net>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# tests for a recurring bug when callbacking a Nit method on an extern receiver 
+module test_ffi_c_callback_extern_receiver
+
+extern Test
+    new create_me is extern `{
+        int* foobar = malloc(sizeof(int));
+        *foobar = 12345;
+        return foobar;
+    `}
+    fun test_me is extern import Test::foo `{
+        int i;
+        for(i = 0; i < 2000; ++i) {
+            printf("%d\n", i);
+            Test_foo(recv, new_String_from_cstring("asdf"));
+        }
+    `}
+    fun foo(bar : String) do
+        print bar
+    end
+end
+var t = new Test.create_me
+t.test_me