| <<<Back 1 day (to 2018/09/05) | 20180906 |
tor8 | mojca (for the logs): just remove the offending line. | 09:33.17 |
sebras | Robin_Watts: I have a few jni commits (perhaps you only have time to review security stuff?) on sebras/master that me and tor8 discussed earlier today. do they seem reasonable to you? | 17:08.28 |
Robin_Watts | sebras: I can look. | 17:10.21 |
| which ones in particular? or all of them? | 17:13.45 |
sebras | Robin_Watts: all. | 17:14.01 |
avih | tor8: do you plan to push the getopt fix? it's broken everywhere except debian | 17:33.56 |
sebras | avih: I dbout that tor8 will be back until tomorrow. I'm sure he read your messages already though. | 17:35.49 |
avih | i'd think the same | 17:36.09 |
sebras | Robin_Watts: I testcompiles this in the latest android-viewer-mini and the final apk runs fine. | 17:39.25 |
Robin_Watts | sebras: Why walk(walker) ? Surely walker.walk() is more java-ish ? | 17:40.52 |
sebras | Robin_Watts: to be similar to that of Text and Path | 17:41.26 |
Robin_Watts | ok, so presumably there is a reason there too. | 17:41.50 |
sebras | Perhaps we could flip them all around and do new TextWalker(text).walk() | 17:42.47 |
Robin_Watts | (new BlockWalker()).walk.getBlocks(); has an appeal to it. | 17:43.03 |
sebras | I can see how walk would be a good verb for a Walker, yes. however the Walker would at least need a reference to the thing it walks in the constructor. | 17:44.24 |
Robin_Watts | oh, wait... | 17:44.34 |
| Walkers are HOW to walk a path. | 17:44.55 |
| Walkers are HOW to walk an object. | 17:45.00 |
| that is, they say what to do at each step. | 17:45.13 |
| So, no, what is there is right, I think. | 17:46.15 |
| First one, lgtm. | 17:50.13 |
sebras | Robin_Watts: ehm yes. | 17:50.29 |
| Robin_Watts: perhaps it should be modelled after EventListeners or something like that. | 17:50.44 |
Robin_Watts | Second one... we're defining java constants for com_artifex_mupdf_fitz_StructuredText_SELECT_CHARS etc to be 0,1,2 | 17:51.52 |
| and then praying they are the same values in the fitz call. | 17:52.12 |
| Are there #defines (or enums) for those values in the fitz api? | 17:52.28 |
sebras | did I lose the addition to check_enums() in mupdf_native.c? | 17:52.55 |
Robin_Watts | http://git.ghostscript.com/?p=user/sebras/mupdf.git;a=commitdiff;h=69790b1bd81642539a9eb0004818e7fce98d46b6 | 17:53.13 |
| Can't see it. | 17:53.15 |
sebras | Found them in 62d3d8ca0e406e1a916ebcc8288d17d8058236af :( | 17:55.00 |
Robin_Watts | sebras: Devices were purposely not abstract. | 17:56.13 |
sebras | Robin_Watts: I know, but that caused they all to diverge in implementation | 17:56.51 |
Robin_Watts | I wanted J Random Java programmer to be able to implement a device as easily as possible, just by implementing the methods he needed. | 17:56.52 |
| Yeah. | 17:57.02 |
| I can't see a way that allows both. | 17:57.12 |
sebras | Robin_Watts: if we need to support that we can add JRandomDevice which implements all functions as empty and J. Random can have his case inherit from that. | 17:57.31 |
Robin_Watts | EmptyDevice | 17:57.47 |
sebras | tor8 suggested NullDevice or NoopDevice, but yeah. | 17:58.00 |
Robin_Watts | Yeah, NullDevice would work. | 17:58.14 |
sebras | Robin_Watts: becaue the color management stuff had changed the interfaces and the Device subclasses were never updated properly I'd vote for slapping us on the wrists. we deserve it. | 17:59.11 |
| NoInterfaceCheckingDevice... | 17:59.31 |
Robin_Watts | sebras: Yeah. | 17:59.38 |
| what's the difference between a fully abstract class and an interface? | 18:00.19 |
| We could have DeviceInterface for what we currently call Device (i.e. the fully abstract thing in your example). | 18:01.05 |
| and then Device be what we've been talking about as being NullDevice. | 18:01.21 |
| all our devices would implement DeviceInterface. | 18:01.39 |
| I bet that wouldn't work with the type checking. | 18:01.47 |
| NullDevice seems like a sensible way to go. | 18:02.04 |
sebras | Robin_Watts: a Device interface cannot have the long pointer. | 18:02.43 |
Robin_Watts | Ah. that'd be it. | 18:02.59 |
| changing _LINEJOIN_ to be _LINE_JOIN_ in the name of "improvement" seems bad to me when the fitz equivalents are _LINEJOIN_ | 18:07.21 |
| Otherwise, everything lgtm. | 18:07.58 |
sebras | Robin_Watts: I did that due to tor8. | 18:08.01 |
| Robin_Watts: so that completes sebras/master? | 18:13.44 |
| Robin_Watts: I'll skip pushing until tomorrow when tor8 is back. | 18:14.56 |
Robin_Watts | sebras: Yup. | 18:15.56 |
sebras | Robin_Watts: thanks. | 18:17.05 |
| Robin_Watts: can I ask why gprof-doc.c supplies -sPostRenderProfile to gswin32c.exe when gs does not support that? | 18:46.00 |
| when trying gproof today I get: | 18:46.32 |
| | ./base/gsicc_manage.c:1840: gsicc_verify_device_profiles(): Post render profile not supported by device | 18:46.32 |
| | ./base/gsicc_manage.c:1990: gsicc_set_device_profile(): Error in device profiles | 18:46.35 |
| without supplying -sPostRenderProfile gs is successful in rendering some output though. | 18:47.08 |
Robin_Watts | sebras: That would be a question for mvrhel_laptop I think. | 18:47.16 |
mvrhel_laptop | gs does support -sPostRenderProfile | 18:51.25 |
sebras | mvrhel_laptop: if I remove -sPostRenderProfile I can get gs to produce output, but with it I see "Post render profile not supported by device" and yes I did copygs/iccprofiles/*.icc to my local directory before running the command. | 18:51.28 |
mvrhel_laptop | ah. so that is a recent bug | 18:51.43 |
| when I fixed a few issues related to which device support this option | 18:51.59 |
| I forgot about gproof | 18:52.17 |
sebras | mvrhel_laptop: aha. :) | 18:52.23 |
mvrhel_laptop | so let me fix that and commit it to gs | 18:52.31 |
| give me a few minutes | 18:52.46 |
| sebras: ok gs updated and gproof should work with -sPostRenderProfile now | 19:08.42 |
sebras | mvrhel_laptop: one step further, but now it triggers an assert in gs for me instead. | 19:13.05 |
mvrhel_laptop | ha | 19:13.15 |
sebras | gswin32c.exe: ./lcms2mt/src/cmsxform.c:1608: cmsCloneTransformChangingFormats: Assertion `(oldXform != ((void *)0) && oldXform->core != ((void *)0))' failed. | 19:13.21 |
mvrhel_laptop | oh interesting | 19:13.34 |
| how are you doing this call exactly? | 19:13.45 |
| what is the command line for gs and that are the files | 19:13.59 |
| can you give me all of that and I can see what I can do | 19:14.08 |
sebras | I can cut mupdf out of the picture because I can trigger the assert by running the same comamnd line that mupdf is putting into system(). | 19:15.18 |
| mvrhel_laptop: the file is boids3.pdf which is on casper | 19:15.33 |
| ./gswin32c.exe -sDEVICE=gprf -sOutputICCProfile=default_cmyk.icc -sPostRenderProfile=srgb.icc -dSAFER -dFitPage -o "/tmp/fileS3U6up" -dFirstPage=1 -dLastPage=1 -I%rom%Resource/Init/ -g421x595 "boids3.pdf" | 19:15.58 |
| default_cmyk.icc and srgb.icc are also on casper, but I doubt they have changed. | 19:16.50 |
mvrhel_laptop | ok thanks. I will look at this right after lunch if that is fine | 19:18.24 |
sebras | mvrhel_laptop: can you check if you can reproduce it? | 19:20.58 |
| mvrhel_laptop: because I need to go to bed. :) | 19:21.06 |
mvrhel_laptop | ok let me get the file first | 19:35.56 |
| ok got file | 19:37.18 |
| sebras: yes I do get the assert | 19:40.11 |
| I will look at if from here | 19:40.20 |
| oh I bet there is some more bit rot in gprf | 19:42.07 |
sebras | mvrhel_laptop: looks like it. :) | 19:42.26 |
| mvrhel_laptop: ok. I'll go to bed now. | 19:42.32 |
mvrhel_laptop | goodnight sebras | 19:42.37 |
sebras | gn | 19:42.42 |
| Forward 1 day (to 2018/09/07)>>> | |